微服务的几大常用组件简介

微服务最近几年挺火的,翻阅了一部分资料,除掉那些故弄玄虚的有的没的,目前已经落地的项目我个人觉得还是微服务是一种新的分布式的系统而已,将传统的大集中式的业务系统逐步拆分,这条技术路线不是凭空出生,是有很长的渊源,从比较早的SOA,业务逻辑代码和系统代码分离,前后端分离等等组件解合耦的方式。

目前我理解的微服务的常用组件有如下几种:

服务发现——Netflix Eureka(Nacos)

客服端负载均衡——Netflix Ribbon(Ribbon)

断路器——Netflix Hystrix(Sentinel)

服务网关——Netflix Zuul(Spring Cloud Gateway)

分布式配置——Spring Cloud Config

服务发现

一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。

断路器

断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正​​,应用程序可以尝试调用操作。

服务网关

类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。

分布式配置

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。

客户端负载均衡

这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章