一. Eureka服务注册中心
实现服务注册发现功能,故障转移;
Eureka Server和Eureka Client;
服务启动后,会在Server端进行注册,加入服务注册表,存储服务的信息;
Eureka Client是一个java客户端,默认使用轮询的负载均衡;
配置:name,url
@EnableEurekaServer,@EnableEurekaClient 启动服务
注入RestTemplate 使用
主机号+端口调用
传统情况下在java代码里访问restful服务,一般使用Apache的HttpClient。不过此种方法使用起来太过繁琐。spring提供了一种简单便捷的模板类来进行操作,这就是RestTemplate
二. Ribbon客户端的负载均衡
客户端负载均衡的工具
@LoadBalanced默认的轮询,还有随机连接,自定义
直接采用服务名的方式进行调用
三. Feign远程调用
基于Ribbon的另一个负载均衡的客户端框架
在接口定义要调用的服务名即可
启动类@EnableFeignClients,接口@FeignClient
四. Hystrix断路器
当其中一个服务阻塞或者异常的时候,如果有另的服务调用了它,会导致一个雪崩效应
它是一个分布式系统延迟和容器的工具,保证服务出现问题的情况下,不会导致整个服务失败。
启动类@EnableCircuitBreaker
在接口@FeignClient,加入fallback参数。定义另一个接口实现它(熔断类),作为服务降级后的快速响应
五、Zuul路由网关
对请求的路由和过滤
将外部的请求转发到具体的服务实例上
过滤功能负责对请求的处理进行干预。
zuul和Eureka整合,zuul注册Eureka里,作为Eureka服务治理下的应用,可以从Eureka获取到其他服务的消息。
@EnableZuulProxy
统一的网关配置
服务名
可以通过路径访问服务
不可通过路径访问服务
六、spring cloud config配置中心
为微服务提供了中心化的配置
七、Nacos服务注册发现
配置中心信息:服务名,url网址
@EnableDiscoveryClient
八、Sentinel 服务熔断
九、Nacos Config Profile分布式配置
在Nacos Server控制台,添加配置文件
本地项目配置文件:bootstrap.yml,对应读取服务器上的yml文件
@RefreshScope实现动态更新
十、Dubbo
Java RPC 分布式服务框架
面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
RPC 是面向过程,Restful 是面向资源
dubbo-api,provider,consumer
负载均衡:随机,轮循