当前位置: 首页 > news >正文

太原网站免费制作温州专门做网站

太原网站免费制作,温州专门做网站,电脑课做网站所需的软件,苏州建筑网1.Token 1.1 Token透传#xff08;不推荐#xff09; 刚开始接触微服务时网上给的方案大都数是通过透传Token做鉴权#xff0c;但我认为这种方式不是很妥当。接着往下看#xff1a; 这种方式通过透传Token使得各微服务都能获取到当前登录人信息#xff0c;在代码编写上确…1.Token 1.1 Token透传不推荐 刚开始接触微服务时网上给的方案大都数是通过透传Token做鉴权但我认为这种方式不是很妥当。接着往下看 这种方式通过透传Token使得各微服务都能获取到当前登录人信息在代码编写上确实可能会方便但我认为这不是一种很好的设计方式。 原因一内部API与外部API混合在一起不太好区分。原因二内部调用的微服务API因该具备无状态性质这样才能保证方法的原子性以提高代码复用率。 换句话说B服务提供API时不因该关心当前是否为登录状态登录状态应该由路由中的第一个服务校验维护在调用后续服务时应该显示的传入相关参数。比如以下场景 场景一用户签到添加积分场景二后台管理员给用户手动添加积分场景三分布式调度批量增加用户积分 根据需求积分服务提供了一个给用户添加积分的API如果你的API是通过获取的当前登录用户ID增加的积分那么面对场景二时你需要重新编写一个给用户添加积分的API因为当前登录的是后台管理员而不是用户代码复用率较低。 1.2 不透传数据显示的提供入参推荐 路由到达的第一个服务已经对Token进行了解析认证并将userId显示的传递给了后续服务后续服务不需要再对token进行解析认证。根据1.1的三个场景只需要提供一个入参包含userId的API保证了函数的原子性提供代码复用率。 注意: 提供的API不能暴露给外网我们需要在路径上做区分避免外网非法访问内部API。我们可以订好内部调用API路径规则如/api/inside/** 。在网关层拒绝内部调用API请求的访问。 2.统一授权 统一授权是指 将API鉴权集中在应用网关上 2.1 Fegin内部调用方式 Spring Cloud Gateway Fegin内部调用集中在Gateway上做统一认证鉴权鉴权后在请求头中添加鉴权后的信息转发给后续服务如userId等 缺点 A服务调用B服务时B服务需要写一个内部调用的Controller接口A服务才能通过Fegin调用到B服务增加了代码量这里的设计方案是内部调用与外部调用Controller是分开的 2.2 Dubbo内部调用方式 Spring Cloud Gateway Dubbo内部调用集中在Gateway上做统一认证鉴权鉴权后在请求头中添加鉴权后的信息转发给后续服务如userId等 优点 与第一种相比不需要额外编写一个Controller接口只有本地service与远程DubboService的区别代码更简洁。 缺点 项目技术栈略微增加了复杂度。 2.3 Spring Boot Web Dubbo内部调用方式 这里的设计方案直接去掉了Gateway直接使用了一个Spring Boot Web项目来代替Gateway。但需要注意的是应该将Web项目的容器换成Undertow因为Tomcat是阻塞式的容器不换也不是不行但吞吐量可能会少一下Undertow是非阻塞式的容器可以与Gateway到达相同的效果。 非阻塞式当请求为线程进入阻塞状态时当前线程会被挂起当前的计算资源会去做别的事情当被挂起的线程收到响应时才会被继续执行压榨CPU用更少的资源做更多的事情但并不会提升性能 因为去掉了Gateway我们需要将所有服务的Controller集成到Web应用然后在这个Web应用上做统一认证授权。如果将所有代码写到Web应用中这样可能不合适我们可以选择每个服务创建一个Controller模块Web网关服务只有一个启动类通过依赖的方式集成所有服务的Controller。 优点 简化了项目结构所有服务只有service代码。性能压测时不用考虑Gateway的线程池使用情况业务服务只需要考虑Dubbo线程池的使用情况。 缺点 没办法通过配置中心动态调整路由。比如说增加了一个服务Gateway可以不重启通过配置中心增加路由配置即可。 3. 非统一授权 非统一授权不在应用网关上集成鉴权网关只有单一的路由转发业务。各位服务都有自己的鉴权方式当然也可以通过jar包的方式统一各服务的鉴权方式。 3.1 常规模式 通过编写通用的鉴权模块各服务集成该模块。该模块具备以下功能 JWT Token解析权限校验拦截缓存本地缓存\Redis缓存 这种模式更适合大型项目团队可能各微服务都由一个项目组负责。各服务维护自己的权限规则这里指的是权限规则数据规则是统一的 该模式下由于应用网关比较轻量级不再涉及复杂的鉴权流程使得项目部署可以更灵活当我们使用K8S部署项目时我们可以将应用网关替换成K8S中的Ingress网关。 我们先看常规模式部署在K8S中完整的链路: 当用户访问时会先到达K8S Ingress网关通过应用网关Service的负载均衡调用应用网关应用网关需要通过注册中心获取服务注册列表通过服务注册列表负载均衡到后续服务。 3.2 与K8S集成 我们再来看看将应用网关替换成K8S中的Ingress网关的完整链路 这里不仅只是去掉了应用网关同时我们通过K8S Service 负载均衡的能力去掉了注册中心。减少了我们部署微服务时还要额外搭建一套注册中心。同时减少了一层没必要的转发。 至于K8S中的Service大家可以理解成一个本地的host假域名比如我们在K8S给商品创建一个Service名称为goods-svc。那么我们可以通过goods-svc直连。如 http://goods-svc:8080/api/goods/info/10001dubbo://goods-svc:20880 Fegin具体代码 FeignClient(name user-service, url http://goods-svc:8080) public interface UserServiceClient {GetMapping(/users/{id})User getUserById(PathVariable(id) Long id); }Dubbo具体代码 Reference(url dubbo://goods-svc:20880) private DemoService demoService;方案没有对错不知道大家是如何设计的可以多交流交流。
http://www.zqtcl.cn/news/507263/

相关文章:

  • 怎么做网站设计商城型网站开发网站建设
  • 建设网站目录帮别人做网站要投资吗
  • 网站meta 优化建议桥梁建设设计网站
  • 网站建设 甘肃wordpress rss去掉
  • 网站安全检测大连网龙建站优化推广
  • 人才网官方网站公众号排名优化软件
  • 淘宝返利网站建设软件开发哪里学好
  • 烟台网站制作公司如何注册国外网站
  • discuz企业网站网站可以做音频线吗
  • 怎样制作网站教程哪家好制作网页的的网站
  • 网站没有织梦后台无锡seo公司网站
  • 哈尔滨住房和城乡建设厅网站公司网站建设 费用入账
  • 网站图片缩略图t恤图案设计网站
  • 对招聘网站页面设计做建议网站流量 转化率
  • 怎么样做网站注册量郴州市北湖区
  • 山东企业展厅设计公司济南网站建设优化公司
  • 什么网站免费做游戏工艺品外贸订单网
  • 免费推广网站制作网站设计的技术有
  • 深圳电商网站建设高校学风建设专栏网站
  • 品牌网站建设 2蝌蚪小三网合一的网站怎么做
  • 对二次网站开发的认识wordpress修改图片大小
  • 电商网站项目建设个人网站空间收费
  • 官方网站制作思路樟木头东莞网站建设
  • 怎么寻找做有益做网站的客户大连网站推广
  • 湖南网站开发企业excel网站建设
  • 安康网站建设技巧腾讯建设网站视频下载
  • 如何能让企业做网站的打算中企动力做网站贵吗
  • wordpress 空间常州seo
  • 网站负责人备案采集照具体要求湛江网吧
  • 长春建站模板制作php网站空间购买