软件架构

2015-03-20 19:08   来源: 互联网

本系统软件采用良好可扩展的微服务架构,功能可独立发布、配置、部署、运行和测试,支持进一步需求和功能在架构中的良好集成,

具体的技术架构图如下所示:

图片.png 

技术架构图

1. Nacos服务注册中心设计

采用Nacos作为注册中心和配置中心,Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

2. Spring Cloud Gateway网关框架

采用Spring Cloud Gateway网关控制框架,Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。

SpringCloud Gateway功能特征如下:

(1) 基于Spring Framework 5, Project Reactor 和 Spring Boot 2.0 进行构建;

(2) 动态路由:能够匹配任何请求属性;

(3) 集成 Spring Cloud 服务发现功能;

(4) 可以对路由指定 Predicate(断言)和 Filter(过滤器);

(5) 易于编写的 Predicate(断言)和 Filter(过滤器);

(6) 集成Hystrix的断路器功能;

(7) 请求限流功能;

(8) 支持路径重写。

3. Ribbon负载均衡框架

采用Ribbon解决客户端负载均衡问题,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等解决方案,Ribbon的负载均衡算法有:

(1) RoundRobinRule:轮询;

(2) RandomRule:随机;

(3) AvailabilityFilteringRule:会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问;

(4) WeightedResponseTimeRule:根据平均响应时间计算所有服务的权重,响应时间越快服务权重越大被选中的概率越高。刚启动时如果统计信息不足,则使用RoundRobinRule策略,等统计信息足够,会切换到WeightedResponseTimeRule

(5) RetryRule:先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重试,获取可用的服务;

(6) BestAvailableRule:会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务;

(7) ZoneAvoidanceRule:默认规则,复合判断server所在区域的性能和server的可用性选择服务器。

4. Hystrix延迟容错框架

采用Hystrix框架来处理分布式系统的延迟和容错情况,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。Hystrix的主要功能:

(1) 服务降级:整体资源不够了,忍痛将某些服务先关掉,带服务正常后,再开启;

(2) 服务熔断机制是应对雪崩效应的一种微服务链路保护机制,当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败就会启动熔断机制。

(3) 接近实时的监控:Hystrix提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。

 


责任编辑:介介
分享到:
0
【慎重声明】凡本站未注明来源为"大众时报网"的所有作品,均转载、编译或摘编自其它媒体,转载、编译或摘编的目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如因作品内容、版权和其他问题需要同本网联系的,请在30日内进行!
网站地图 关于我们 免责声明 投诉建议 sitemap

未经许可任何人不得复制和镜像,如有发现追究法律责任 粤ICP备2020138440号