Cloud微服务架构中

更新时间:02-10 教程 由 迟暮。 分享

Cloud微服务架构中?

Spring Cloud就是一套微服务的解决方案,它包含了众多的组件帮助开发人员完成微服务架构的搭建,下面说说Spring Cloud中有哪些组件,以及各个组件充当了角色。

Eureka:服务注册中心;在传统的架构中,A系统调用B系统的接口,要知道B接口的地址(或B系统负载均衡的地址),通常这个地址是配置在A系统中的;而在微服务的架构中,一个大项目会被拆分成N多个比较小的应用,让A系统去记录每个外部服务的地址是不现实的;这时候就需要有一个地方,保存每个服务的信息,这样才能让应用彼此知道对方;这个就是注册中心。比如A应用在启动的时候,想注册中心发送服务名称、IP、端口号等信息;B应用要用A应用的服务,就去注册中心上面查找,A应用的X服务地址是什么。现在Spring宣布Eureka2.x不在进行维护,大家可以选择已经比较稳定的Eureka1或者其他的组件,例如Consul。

Fegin:是一个声明式的Web服务客户端,它使得客户端代码的开发变得更加容易。比如这样:

Ribbon:客户端的负载均衡;我们经常用的Nginx是服务端的负载均衡,请求到达Nginx之后,由Nginx进行请求分发;而客户端的负载均衡,是客户端有了服务端的地址列表后,基于负载均衡算法,自动地帮助客户端请求服务;Ribbon是要和注册中心配合使用。

Zuul:主要用于路由和过滤,我们主要用它来做API Gateway;不过要注意,Zuul 1已经停止更新了,不支持 Websockets 和长连接,Zuul 2在2016年宣称在开发中,但是尚未发布稳定版本,并且未来也不打算开源 Websockets的支持;Spring也新起了一个项目Spring Cloud Gateway;不过从我的经验看,网关这个东西可以自己搞,我们现在的网关是基于Nginx做的,不过很多功能是需要自己开发的,当然性能可是杠杠的。

Hystrix:熔断器;如果一个服务响应非常慢,那么调用方就要等待,在微服务架构中,经常会有A调B调C调D这样的调用链路,如果一个系统响应变慢,那么可能会导致整个系统的崩溃;Hystrix正是为了防止此类问题发生;当某个服务错误率超过一定阈值时,Hystrix可以自动或者手动跳闸,停止请求该服务。

Sleuth+ZipKin:以往的系统,更多的是A系统调用B系统,而现在可能面对这A->B->C->D,而在这种情况下,如果没有链路跟踪的方案,那么查找和定位问题就会非常困难;这时候可以使用Sleuth来做服务之间调用提供链路追踪;使用Sleuth的时候,也可以和zipkin做集成,将搜集到的信息发送到zipkin,利用zipkin进行数据的存储和展示。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

声明:关于《Cloud微服务架构中》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2201941.html