Java教程

记项目中的微服务治理中间件

本文主要是介绍记项目中的微服务治理中间件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

     项目原来是一个非常庞大的系统SRM---供应商全生命周期管理系统,在以前还在用oracle软件包的时候因为复杂所以迁移使用java开发的web项目,介于项目越来越庞大且微服务大行其道,所以决定进行解耦---将原来的各个模块做成一个单独的

子系统。各子系统使用的也是微服务的开源框架---springBoot,前台使用的是vue,数据库使用的pgsql,以此文章记录项目使用的框架中间件。

     网关:原来的系统进行解耦但终究属于一个系统的不同模块,所以还是需要有一个统一的网关进行跨域,这边使用的网关是产品spring cloud gateway,同时拓展了sso,jwt,路由规则配置,在这边,网关最基础的功能是代理,最核心的能力是

认证、鉴权、跨域,能帮助前端调用后台服务的跨域问题。

    服务注册/发现:服务注册采用的是spring cloud netflix的开源组件euraka,eureka是一种采用C-S架构也就是客户端-服务端。服务端作为服务注册中心,各微服务使用客户端通过配置连接到服务端,进行负载注册、注销,更新应用实例信息,并维持心跳连接把应用信息注册或者更新到应用中心,在服务调用时服务发现、负载均衡提供基础数据。

    服务熔断:服务熔断采用的Netflix的开源组件Hystrix,是一个帮助分布式系统交互超时处理和容错的类库。

    服务限流:RateLimiter限流组件是使用Sentinel实现的限流功能,它有两种限流模式,一种是线程池模式,一种是QPS模式。可以通过配置文件设置参数flowcontrol.grade进行配置使用的模式。使用线程池模式进行限流时,系统后台会将固定的线程数量来接收即将到来的请求,当工作线程达到阈值时,后面的请求将会受到限制,执行对应的拒绝策略,选择排队或者直接拒绝。QPS模式,主要是限制每处理的请求数量,如果一秒内的请求数量达到阈值,则会对后面的请求进行限制。

    负载均衡:客户端负载均衡使用的是Netflix ribbon,具体实现是引入ribbon客户端的引用会有一个服务地址列表,在发送请求时通过负载均衡算法选择一个服务器/端口访问,从而实现客户端的负载均衡。

这篇关于记项目中的微服务治理中间件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!