编辑点评:
疯狂Spring Cloud微服务架构实战以Spring Cloud为基础,深入讲解微服务开发的相关框架,包括服务管理框架Eureka、负载均衡框架Ribbon、服务客户端Feign、容错框架Hystrix、消息框架Stream等
作者简介
杨恩雄
从事十多年Java EE企业应用开发,曾任中企动力系统设计师、中企开源项目经理、数码辰星科技公司项目经理,参与过多个企业级项目的设计与架构工作,曾负责辰星“电影票网络销售系统”的整体架构,精通Activiti.
Drools,ESB等开源技术,在SOA、Saas、大数据应用、互联网系统架构方面有着丰富的经验,曾出版《疯狂Java实战演义 疯狂工作流讲义X疯狂Spring Cloud微服务架构实战》等书籍。
架构要求
从前面的架构演进可知,应用中的每一个点都有可能成为系统的问题点。随着互联网应用的普及,在大数据、高并发的环境下,系统架构需要面对更为严苛的挑战,我们需要
一套新的架构,它起码应能满足以下要求。
高性能:这是应用程序的基本要求。
独立性:其中一个模块出现bug或者其他问题,不可以影响其他模块或者整个应用。
容易扩展:应用中的每一个节点都可以根据实际需要进行扩展。
便于管理:对于各个模块的资源,可以轻松进行管理、升级,减少维护成本。状态监控与警报:对整个应用程序进行监控,当某一个节点出现问题时,能及时发出警报。
为了能解决遇到的问题、达到以上的架构要求,我们开始研究Spring Cloud.
Spring Cloud与Netfix
Spring Cloud并不是一个具体的框架,大家可以把它理解为一个工具箱,它提供的各类工具,可以帮助我们快速构建分布式系统。
Spring Cloud的各个项目基于Spring Boot,将Netfix的多个框架进行封装,并且通过自动配置的方式将这些框架绑定到Spring的环境中,从而简化了这些框架的使用。由于Spring Boot的简便,使得我们在使用Spring Cloud时,很容易将Netlix各个框架整合进项目中。Spring Cloud下的Spring Cloud Netlix模块,主要封装了Netlix的以下项目。
Eureka:基于REST服务的分布式中间件,主要用于服务管理。
Hystrix:容错框架,通过添加延迟阈值以及容错的逻辑,帮助我们控制分布式系统间组件的交互。
Feign:一个REST客户端,目的是为了简化Web Service客户端的开发。
Ribbon:负载均衡框架,在微服务集群中为各个客户端的通信提供支持,它主要实现中间层应用程序的负载均衡。
Zul:为微服务集群提供代理、过滤、路由等功能
Comments