首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微服务选型

微服务选型

作者头像
高性能架构探索
发布2021-04-13 15:42:07
发布2021-04-13 15:42:07
5290
举报
文章被收录于专栏:技术随笔心得技术随笔心得

众所周知,微服务是一个以业务功能为主的设计概念,每一个服务都有自己的业务功能。

微服务,从其概念来看,就是一个个单一(这块依赖于自己的实现)业务功能实现的服务,特点是功能单一简单,业务耦合度低,服务之间调用支持多种方式(http、tcp),某个微服务的故障不至于影响整个服务集群。

微服务架构逻辑图(图片来自于网络)

与微服务相对的,是集中式服务或者单体服务(本文中将均以集中式服务来表述)。所谓的集中式服务,是将某业务的所有功能,均放在一个server中来实现,这样的好处是:

1、开发简单直接,集中式管理

2、基本不会重复开发

3、功能都在本地,没有分布式的管理开销和调用开销

当然,他的缺点也很明显:

1、开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断

2、代码维护难:代码功能耦合在一起,新人不知道何从下手

3、部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长

4、稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉

5、扩展性不够:无法满足高并发情况下的业务需求

微服务架构的优点:

1、将集中式服务的功能,拆分为多个微服务,这样将一个复杂的业务功能,拆分为多个简单的业务功能

2、微服务单独部署,不至于影响其他微服务

3、每个服务单独部署,这样可以将CPU密集型与非CPU密集型的服务混合部署,这样一定程度上节省了部署成本

微服务架构的缺点:

1、分布式部署,各个业务以http或者RPC方式进行调用,一定程度上增加了调用的复杂性(相比于集中式服务的进程内函数堆栈调用)

2、服务之间协议的选型,比如某个服务因为业务需要,增加了某些字段,那么对应的跟该服务相关的业务服务都需要进行协议更新

3、需要较好的策略部署和高度自动化水平

4、对于人员较少的部门,如果选用微服务方式,可能会增加维护成本,所以需要更好的了解业务知识,以便能够正确的进行微服务功能设计

笔者从事于互联网行业,负责过推荐引擎,广告引擎等,基本都是以微服务方式来实现,比如阿里妈妈,快手等广告后台架构,均以微服务方式来实现。

后续,微服务将作为某一个系列,介绍如何实现一个高性能的引擎,跟随笔者一起探索。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高性能架构探索 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档