Sidecar 设计模式
在系统设计时,边车模式通过给应用程序添加边车的方式来拓展应用程序现有的功能,分离通用的业务逻辑,比如日志记录、流量控制、服务注册和发现、限流熔断等功能。通过添加边车实现,微服务只需要专注实现业务逻辑即可,实现了控制和逻辑的分离与解耦。
边车模式中的边车,实际上就是一个 Agent,微服务的通信可以通过 Agent 代理完成。在部署时,需要同时启动 Agent,Agent 会处理服务注册、服务发现、日志和服务监控等逻辑。这样在开发时,就可以忽略这些和对外业务逻辑本身没有关联的功能,实现更好的内聚和解耦。
应用边车模式解耦了服务治理和对外的业务逻辑,这一点和 API 网关比较像,但是边车模式控制的粒度更细,可以直接接管服务实例,合理扩展边车的功能,能够实现服务的横向管理,提升开发效率。
Service Mesh 可以认为是边车模式的进一步扩展,提供了以下功能:
管理服务注册和发现
提供限流和降级功能
前置的负载均衡
服务熔断功能
日志和服务运行状态监控
管理微服务和上层容器的通信
Service Mesh 有哪些特点
使用 Sidecar 或者 Service Mesh,都可以认为是在原有的系统之上抽象了一层新的设计来实现。计算机领域有这么一句话:没有什么系统问题不是抽象一层解决不了的,如果有,那就再抽象一层。
服务网格实现的功能和 API 网关类似,都可以以一个切面的形式,进行一些横向功能的实现,比如流量控制、访问控制、日志和监控等功能。
服务网格和 API 网关主要的区别是部署方式不同,在整体系统架构中的位置不一样。
API 网关通常是独立部署,通过单独的系统提供服务,为了实现高可用,还会通过网关集群等来管理;而服务网格通常是集成在应用容器内的,服务网格离应用本身更近,相比 API 网关,和应用交互的链路更短,所以可以实现更细粒度的应用管理,也体现了 Sidecar 边车的设计思想。
标签:网关,服务,功能,Agent,边车,API,ServiceMesh From: https://www.cnblogs.com/jiaozg/p/17236034.html