springcloud组件集成
包括eureka(注册中心)、Hystrix(熔断器)、ribbon(客户端负载均衡)、zuul(网关、访问过滤功能)、feign(服务调用组件)
eureka(注册中心)
Eureka 是一个服务注册和发现的组件,各个微服务启动时,将自己的网络地址等信息注册到Eureka,服务提供者将自己的信息如服务名,服务ip告知服务注册中心。
Hystrix(熔断器)
Hystrix 主要作用
1.服务隔离和服务熔断
2.服务降级、限流和快速失败
3.请求合并和请求缓存
4.自带单体和集群监控
ribbon(客户端负载均衡)
主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单地说,就是在配置文件中列出Load Balancer后面所有机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法
zuul(网关、路由、访问过滤功能)
作为边缘服务应用程序,Zuul 旨在支持动态路由、监控、弹性和安全性。
Zuul 使用一系列不同类型的过滤器,使我们能够快速灵活地将功能应用到我们的边缘服务。这些过滤器帮助我们执行以下功能:
1.身份验证和安全性:确定每个资源的身份验证要求并拒绝不满足要求的请求。
2.洞察力和监控: 在边缘跟踪有意义的数据和统计数据,以便为我们提供准确的生产视图。
3.动态路由: 根据需要将请求动态路由到不同的后端集群。
4.压力测试: 逐渐增加集群的流量以衡量性能。
5.减载: 为每种类型的请求分配容量并丢弃超出限制的请求。
6.静态响应处理: 直接在边缘构建一些响应,而不是将它们转发到内部集群
feign(服务调用组件)
我们只需要像调用方法一样调用它就可以完成服务请求及相关处理。Feign整合了Ribbon和Hystrix,可以让我们不再需要显式地使用这两个组件。
Feign具有如下特性:
1.支持可插拔的HTTP编码器和解码器;
2.支持Hystrix和它的Fallback;
3.支持Ribbon的负载均衡;
4.支持HTTP请求和响应的压缩。
有点像我们springmvc模式的Controller层的RequestMapping映射。这Feign是用@FeignClient来映射服务的。
这里就不写代码了!