分布式服务之边车模式

边车模式

边车:就是在原来二轮摩托车旁边增加一个座位成了三轮摩托车,增加的一部分称为边车

边车模式:对现有的服务增加额外的功能,这些功能并不影响业务逻辑,例如增加日志,限流、熔断、服务的注册和服务发现有专门服务来实现。 像程序中的控制和业务逻辑分离(Controller 和 Service 层分离) 这样大大降低了服务之间的耦合度并提升了扩展性和降低业务的复杂性

这也符合单一职责原则,服务就是负载实现好自己的业务逻辑,一些其他的控制功能就交给其他组件来实现

边车模式(控制器)实现

1、引入jar 将和应用部署在同台机器

	优点:节省了网络请求,效率更高
	
	缺点:对服务侵入性大,不能跨语言,当jar更新时需要重新编译

2、单独一个边车服务,所有请求都经过这个控制服务,由这个服务进行分发请求,因为所有请求入口都需要经过这个服务,因此很容易实现 限流、熔断、服务注册和路由功能

	优点:对应用侵入小,跨语言,扩展性好
	
	缺点:网络请求的时延 

如何解决网络延时问题:

如果将边车服务和应用部署在同台机器,然后通过 RPC 指定127.0.0.1 进行本地通讯,这样会大大节省了通讯时延

Docker技术

对服务部署进行管理,并且对机器上的所有服务一起打包然后能快速实现扩容到另外一台机器上

Gateway 网关

网关是作为用户和服务之间的网络代理,可以起到控制作用,实现 限流、熔断、服务路由、注册和发现、监控等功能,但是网关做的事情是有限。
由于网关是中心化的,如果网关挂掉了就会导致整个服务不可用,同时保证中心服务高可用实现成本也很大,从用户到请求处理中间多了两次网络请求,对于服务内部还使用中心化的调用方式,就会大大增加了请求响应时间,从而采用去中心化,由服务调用者实现负载均衡策略,实现服务发现和路由。

你可能感兴趣的:(分布式服务那点事儿)