赞
踩
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。
每一个微服务专注于单一功能
在一个单块系统中,只要修改了一行代码,就需要对整个系统进行重新的构建、测试,然后将整个系统进行部署。而微服务则可以对一个微服务进行部署。
在微服务架构中,可以通过组合已有的微服务以达到功能重用的目的。
技术选型是去中心化的,在一个大型系统中,不同的功能具有不同的特点,并且不同的团队可能具备不同的技术能力。因为微服务间松耦合,不同的微服务可以选择不同的技术栈进行开发。
故障会被隔离在单个服务中
每个服务可以根据实际需求独立进行扩展
* | Nacos | Eureka | Consul | Zookeeper |
---|---|---|---|---|
* | Nacos | Eureka | Consul | Zookeeper |
一致性协议 | CP+AP | AP | CP | CP |
健康检查 | TCP/HTTP/MYSQL/Client Beat | Client Beat | TCP/HTTP/gRPC/Cmd | Keep Alive |
负载均衡策略/权重 | metadata/Selector | Ribbon | Fabio | — |
雪崩保护 | 有 | 有 | 无 | 无 |
自动注销实例 | 支持 | 支持 | 不支持 | 支持 |
访问协议 | HTTP/DNS | HTTP | HTTP/DNS | TCP |
监听支持 | 支持 | 支持 | 支持 | 支持 |
多数据中心 | 支持 | 支持 | 支持 | 不支持 |
跨注册中心同步 | 支持 | 不支持 | 支持 | 不支持 |
SpringCloud集成 | 支持 | 支持 | 支持 | 不支持 |
Dubbo集成 | 支持 | 不支持 | 不支持 | 支持 |
K8S集成 | 支持 | 不支持 | 支持 | 不支持 |
nacos介绍 :https://nacos.io/zh-cn/docs/what-is-nacos.html
注意: Eureka 1.X目前停止维护
- 服务间调用,如果使用cloud的eureka作为注册中心,那么可以使用fegin,否则弃用
- feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,通常我们在进行远程调用的时候,如果是通过http,那么我们可以使用spring提供的httptemplate,然后自己组装参数这些,比较麻烦和复杂,而使用fegin时我们可以
- 只写一个interface,然后就像调用本地方法一下,使用接口方法,由fegin去帮助我们转换和发起http请求。大大简化开发的复杂度。
- fegin底层自动集成了eureka(注册中心,强制使用),ribbon(客户端负载均衡,默认就是轮询,可以配置),hystrix(熔断器,可以不用),ribbon和hystrix我们都可以预留,后期如果需要的时候,可以直接启用就行了。(谢金润提供)
参考文献:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。