SpringCloud是一个微服务解决方案,包含了很多帮助开发者搭建微服务架构的组件。我们来谈谈SpringCloud中有哪些组件,以及每个组件的作用。主要问题的核心是用过X60的小伙伴。效果如何?我在12、13年写企业私有云PaaS平台系列文章的时候,已经提出了业务能力组件化、组件服务化的微服务架构思想,但实际应用效果并不理想。

Spring Cloud微服务架构中,都有哪些组件?它们合是做什么用的?

Spring 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-


文章TAG:微组件用着怎么样  Cloud  组件  架构  服务  
下一篇