微服务框架/配置中心/注册中心

一、微服务框架:
1.Dubbo
基于Java的高性能 RPC 分布式服务框架
 
2.Spring Cloud
“全家桶”,因其具备微服务架构体系中所需的各个服务组件,
比如服务注册发现(如Spring Cloud Eureka、Zookeeper、Consul)、API网关路由服务(Spring Cloud Zuul),客户端负载均衡(Spring Cloud Ribbon,Zuul默认集成了Ribbon)、服务容错保护(Spring Cloud Hystrix),消息总线 (Spring Cloud Bus)、分布式配置中心(Spring Cloud Config)、消息驱动的微服务(Spring Cloud Stream)、分布式链路跟踪服务(Spring Cloud Sleuth)。
 
3.比较
使用Dubbo构建的微服务架构就像组装电脑,各个环节的可选自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,但是如果是一个高手,这一切都不存在问题;
使用Spring Cloud就像品牌机,在Spring Source的整合下,做了大量兼容性的测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外配件时,需要对配件足够的了解。
 
二、配置中心
1.原理
a.配置实时生效:
传统的静态配置方式要想修改某个配置只能修改之后重新发布应用,要实现动态性,可以选择使用数据库或配置文件;
配置中心专门针对这个业务场景,兼顾实时性和一致性来管理动态配置。
b.配置管理流程:
配置的权限管控、灰度发布、版本管理&回滚、配置格式检验、安全配置、多环境、多集群等一系列的配置管理。
 
2.主流分布式配置中心框架:
Spring Cloud Config 依赖git,存储在git
Apollo 携程开源的配置管理中心,存储在mysql
Nacos 阿里开源,存储在mysql
 
三、注册中心
1.原理:
a.注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。
在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就这里找到服务的地址,进行调用。
服务提供者、服务消费者、注册中心
各个微服务在启动时,将自己的网络地址等信息注册到注册中心,注册中心存储这些数据。
服务消费者从注册中心查询服务提供者的地址,并通过该地址调用服务提供者的接口。
微服务网络地址发送变化(例如实例增加或IP变动等)时,会重新注册到注册中心。这样,服务消费者就无需人工修改提供者的网络地址了。
服务的注册与发现:服务注册是指微服务在启动时,将自己的信息注册到注册中心的过程;服务发现是指查询可用的微服务列表及网络地址的机制。
 
b.注册中心解决了服务之间的自动发现。
在没有注册中心时候,服务间调用需要知道被调方的地址或者代理地址。当服务更换部署地址,就不得不修改调用当中指定的地址或者修改代理配置。
而有了注册中心之后,每个服务在调用别人的时候只需要知道服务名称就好,修改地址都会通过注册中心同步过来。
 
2.主流分布式注册中心框架:
Eureka AP
Zookeeper CP
Nacos AP
 
补充:
CAP原则:指的是在一个分布式系统中,
一致性(Consistency) 写操作之后的读操作,必须返回该值
可用性(Availability) 只要收到用户的请求,服务器就必须给出回应。
分区容错性(Partition tolerance) 大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区,区间通信可能失败
这三个要素最多只能同时实现两点,不可能三者兼顾。
 
四、API网关路由服务
1.作用
主要是限流、认证鉴权(过滤器)、路由转发
路由转发:路由id(注册服务的id)、uri路径、判定器、过滤器,可以写在配置文件中,或者存在表中
 
2.技术
nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务;
Spring Cloud Zuul 是Netflix出品的一个基于JVM路由和服务端的负载均衡器;
Spring Cloud gateway 是spring出品的基于spring的网关项目,集成断路器,路径重写,性能比Zuul好;
 
五、客户端负载均衡
ribbo
 

热门相关:怨妇·淫娃·疯杀手   甜蜜婚令:首长的影后娇妻   北宋大丈夫   四爷又被福晋套路了   驭房之术