摘要: 本篇博客是使用SpringCloud框架开发微服务时候的一篇技术分享
Spring Cloud Netflix OSS
提供了对Netflix
开源项目的集成,使我们可以以Spring Boot编程风格使用Netflix
旗下相关框架,只需要在程序里添加注解,就可以使用成熟的Netflix
组件(Eureka
、Hystrix
、Zuul
、Ribbon
、Sidecar
)
Eureka
注册服务
registry-fetch-interval-seconds:
30 去服务端获取注册信息的间隔时间
instance-info-replication-interval-seconds:
30 更新实例信息的变化到服务端的间隔时间
Feature | Consul | zookeeper | etcd | euerka |
---|---|---|---|---|
服务健康检查 | 服务状态,内存,硬盘等 | (弱)长连接,keepalive | 连接心跳 | 可配支持 |
多数据中心 | 支持 | — | — | — |
kv存储服务 | 支持 | 支持 | 支持 | — |
一致性 | raft | paxos | raft | — |
cap | ca | cp | cp | ap |
使用接口(多语言能力) | 支持http和dns | 客户端 | http/grpc | http(sidecar) |
watch支持 | 全量/支持long polling | 支持 | 支持 long polling | 支持 long polling/大部分增量 |
自身监控 | metrics | — | metrics | metrics |
安全 | acl /https | acl | https支持(弱) | — |
spring cloud集成 | 已支持 | 已支持 | 已支持 | 已支持 |
主要功能是为REST客户端实现负载均衡
application.properties
12service-provider.ribbon.listOfServers = \ http://${host}:${port} io.netflix.feign
更改为io.github.openfeign
对应依赖spring-cloud-starter-feign
–>spring-cloud-starter-openfeign
Application.java
123456789@SpringBootApplication@EnableFeignClientspublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }} feignClient.java
12345@FeignClient(value = "ms-business-task-engine-server")public interface ITaskEngineService { @RequestMapping(value = "/TaskQueue/addTaskToQueue",method = RequestMethod.POST) BaseResponse addTaskToQueue(@RequestBody List<SubTaskDTO> subTaskDTOList);} hystrix可帮助隔离每个服务,使单个服务的响应失败,避免微服务架构中因个别服务出现异常而引起级联故障蔓延。
在没有网关的时候,随着系统不断庞大,运维维护越来越复杂,接口校验逻辑的冗余越来越多,校验逻辑升级更为复杂。
路由规则与列表