[b]SpringCloud分布式开发五大组件:[/b]
服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config
[b]一、Eureka[/b]
由两个组件组成:Eureka服务器和Eureka客户端
Eureka Client:负责将这个服务的信息注册到Eureka Server中
Eureka Server:注册中心,里面有一个注册表,保存了各个服务所在的机器和端口号
[img]http://dl2.iteye.com/upload/attachment/0131/1690/5aa5db27-1d80-3486-ae5e-a9312e5032a7.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0131/1665/8805f406-9ffe-312e-acca-b6c7adff07e3.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0131/4779/01119fc4-d34e-3f51-a9cd-f42d7373816e.png[/img]
[b]二、Ribbon[/b]
主要提供客户侧的软件负载均衡算法。
Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略:
简单轮询负载均衡
加权响应时间负载均衡
区域感知轮询负载均衡
随机负载均衡
[img]http://dl2.iteye.com/upload/attachment/0131/4773/88ec6461-3b2a-33f0-830e-eb1eee4c2220.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0131/4775/f60b321d-574a-3186-8760-4732727eab29.png[/img]
[b]三、Hystrix[/b]
断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正,应用程序可以尝试调用操作。
[img]http://dl2.iteye.com/upload/attachment/0131/4777/594f7801-1b1b-3d72-9c01-c8679e260744.png[/img]
[b]四、Zuul[/b]
是一个网关组件。提供动态路由,监控,弹性,安全等边缘服务的框架。
[img]http://dl2.iteye.com/upload/attachment/0131/4771/4beef36c-49fb-34cb-b791-bbade59eb3f5.png[/img]
[b]五、Spring Cloud Config[/b]
远程配置服务,这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。
远程配置是每个都必不可少的中间件,远程配置的特点一般需要:多节点主备、配置化、动态修改、配置本地化缓存、动态修改的实时推送等。
config允许配置文件放在git上或者svn上,和spring boot的集成非常容易。
[img]http://dl2.iteye.com/upload/attachment/0131/1698/92967046-3ea7-3f73-947a-9823de047af1.png[/img]
[b]六、总结[/b]
Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里
Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台
Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题
Zuul:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务
[img]http://dl2.iteye.com/upload/attachment/0131/4781/9106fc19-06cc-35ce-913b-0f416a81fe71.png[/img]
服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config
[b]一、Eureka[/b]
由两个组件组成:Eureka服务器和Eureka客户端
Eureka Client:负责将这个服务的信息注册到Eureka Server中
Eureka Server:注册中心,里面有一个注册表,保存了各个服务所在的机器和端口号
[img]http://dl2.iteye.com/upload/attachment/0131/1690/5aa5db27-1d80-3486-ae5e-a9312e5032a7.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0131/1665/8805f406-9ffe-312e-acca-b6c7adff07e3.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0131/4779/01119fc4-d34e-3f51-a9cd-f42d7373816e.png[/img]
[b]二、Ribbon[/b]
主要提供客户侧的软件负载均衡算法。
Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略:
简单轮询负载均衡
加权响应时间负载均衡
区域感知轮询负载均衡
随机负载均衡
[img]http://dl2.iteye.com/upload/attachment/0131/4773/88ec6461-3b2a-33f0-830e-eb1eee4c2220.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0131/4775/f60b321d-574a-3186-8760-4732727eab29.png[/img]
[b]三、Hystrix[/b]
断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正,应用程序可以尝试调用操作。
[img]http://dl2.iteye.com/upload/attachment/0131/4777/594f7801-1b1b-3d72-9c01-c8679e260744.png[/img]
[b]四、Zuul[/b]
是一个网关组件。提供动态路由,监控,弹性,安全等边缘服务的框架。
[img]http://dl2.iteye.com/upload/attachment/0131/4771/4beef36c-49fb-34cb-b791-bbade59eb3f5.png[/img]
[b]五、Spring Cloud Config[/b]
远程配置服务,这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。
远程配置是每个都必不可少的中间件,远程配置的特点一般需要:多节点主备、配置化、动态修改、配置本地化缓存、动态修改的实时推送等。
config允许配置文件放在git上或者svn上,和spring boot的集成非常容易。
[img]http://dl2.iteye.com/upload/attachment/0131/1698/92967046-3ea7-3f73-947a-9823de047af1.png[/img]
[b]六、总结[/b]
Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里
Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台
Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题
Zuul:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务
[img]http://dl2.iteye.com/upload/attachment/0131/4781/9106fc19-06cc-35ce-913b-0f416a81fe71.png[/img]