服务注册中心
1.Eureka
http://docs.springcloud.cn/user-guide/eureka/
停更不停用,Spring-Cloud Euraka是Spring Cloud集合中一个组件,它是对Euraka的集成,用于服务注册和发现。Eureka是Netflix中的一个开源框架。
2.Zookeeper
zookeeper是一个高性能、开源的分布式应用协调服务,它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如实现同步(分布式锁)、配置管理、集群管理。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端使用Java语言编写,并且提供了Java和C语言的客户端。
3.Consul
Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式”,内置了服务注册与发现框架。
4.Nacos
https://nacos.io/zh-cn/docs/quick-start.html
服务调用
1.Ribbon
http://docs.springcloud.cn/user-guide/ribbon/
- Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。
2.LoadBalancer
负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负载均衡。
3.Feign
https://www.springcloud.cc/spring-cloud-greenwich.html
已停更,Feign是Spring Cloud组件中一个轻量级RESTful的HTTP服务客户端,Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。Feign的使用方式是:使用Feign的注解定义接口,调用接口,就可以调用服务注册中心的服务。
4.OpenFeign
https://www.springcloud.cc/spring-cloud-greenwich.html
penFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解,如@RequesMapping等等。
OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,
并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。
断路器
1.Hystrix(豪猪哥)停更
https://www.springcloud.cc/spring-cloud-greenwich.html
中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力。本文所说的Hystrix是Netflix开源的一款容错框架,同样具有自我保护能力。为了实现容错和自我保护。
2.Resilience4j
https://camel.apache.org/components/3.14.x/others/resilience4j.html
Resilience4j是Spring Cloud Greewich版推荐的容错方案。由于Netflix对Hystrix停止了更新,所以Resilience4j可能会成为今后流行的容错解决方案。Resilience4j专为Java8以及函数式编程而设计。
3.Sentinel
https://sentinelguard.io/zh-cn/
sentinel是面向分布式服务框架的轻量级流量控制框架,主要以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来维护系统的稳定性.
服务网关
1.Zull
https://www.springcloud.cc/spring-cloud-greenwich.html
Zuul是Spring Cloud全家桶中的微服务API网关。
所有从设备或网站来的请求都会经过Zuul到达后端的Netflix应用程序。作为一个边界性质的应用程序,Zuul提供了动态路由、监控、弹性负载和安全功能
2.Zull2
https://github.com/dashprateek/zuul2-sample
3.Gateway
https://www.springcloud.cc/spring-cloud-greenwich.html
Spring Cloud Gateway 可以看做是一个 Zuul 1.x 的升级版和代替品,比 Zuul 2 更早的使用 Netty 实现异步 IO,从而实现了一个简单、比 Zuul 1.x 更高效的、与 Spring Cloud 紧密配合的 API 网关。
服务配置
1.Config
https://www.springcloud.cc/spring-cloud-greenwich.html
Spring Cloud Config项目是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client通过接口获取数据、并依据此数据初始化自己的应用。
2.Apollo
https://gitee.com/angelinfo/apollo#https://gitee.com/nobodyiam/apollo
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。
3.Nacos
https://nacos.io/zh-cn/docs/quick-start.html
服务总线
1.Bus
https://www.springcloud.cc/spring-cloud-greenwich.html
2.Nacos