浅谈微服务架构选型

本文探讨了微服务架构的两种主要类型:基于Framework(如SpringCloud)和基于Service Mesh(如Istio)。Framework通过集成服务发现、负载均衡等功能简化实现,但可能需要依赖特定框架。Service Mesh则通过sidecar代理实现服务间通讯,降低服务代码依赖,便于运营升级,但可能增加延迟。对于新项目,若能接受额外延迟,建议考虑Service Mesh。
摘要由CSDN通过智能技术生成

微服务架构类型

微服务方面的开源框架很多,很多提供的功能很类似,难免给大家带来选择困难。本文基于最近的选型心得浅谈一下微服务的架构选型。
目前主流的微服务架构分为两大类,基于Framework的微服务架构和service mesh。两者各有优缺点,下面针对这两类架构进行对比。

基于Framework的微服务架构

此类架构采用一个微服务framework来支持微服务架构中的共通关注点,包括服务发现,load balancing, circuit break, tracing. 此类framework可以简化微服务的实现,把共通的处理放在framework层进行处理。代表性的框架有SpringCloud。

基于service mesh的微服务架构

service mesh架构的核心思想是把微服务架构中的共通关注点抽象为infrastructure层,接管服务和服务之间的通讯。在service mesh架构中service 实例不直接处理service和service直接的通讯,而是通过sidecar proxy进行。多个sidecar proxy互相连接可以处理网状的service互联的场景,进一步简化service的实现。代表性的框架有Istio.

两大架构的区别

两大架构都比较全面的支持微服务架构中的关注点,简化服务的开发。两者是通过不同的方式解决微服务架构中的关注点。

SpringCloud通过framework来实现微服务架构中的关注点,服务的开发相对比较方便。不利点:服务的实现代码需要依赖framework。framework的升级会比较麻烦,可能会需要修改服务的实现代码。

Service mesh通过和service独立的sidecar proxy进程来支持微服务架构中的关注点,服务本身只需关注服务的业务逻辑实现,服务本身的代码不依赖sidecar proxy,sidecar proxy的逻辑对serice透明,可以独立升级框架和服务的实现,可以比较好的分离服务开发和服务运营的关注点。不利点:sidecar proxy和service之间通过local host通讯,增加了latency。

架构选型推荐

对于已有服务已经采用SpringCloud之类实现的系统,建议继续采用原框架。
对于新开发的系统,如果评估latency开销对系统影响不大的情况下建议采用Service mesh。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值