网易首页 > 网易号 > 正文 申请入驻

微服务设计、拆分原则

0
分享至

一 前言

微服务是一种架构风格。一个大型的复杂软件应用,由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好的完成该任务。那么关于微服务的设计原则有哪些呢?如下:

  • AKF 拆分原则

  • 前后端分离原则

  • 无状态服务

  • RestFul 的通信风格

二 AKF 拆分原则

有句挺流行的话:没有什么事是一顿烧烤解决不了的,如果有,那就两顿....。这跟我们之前设计可扩展的系统架构的理念很相像,通过加机器就可以解决容量和可用性问题 。( 如果一台不行那就两台) 。这个理念在当前也得到了广泛的认可!对于一个规模迅速增长的系统而言,容量和性能问题当然是首当其冲的。

但是随着现在业务的更迭不穷以及功能模块的不断拓展,许多系统在设计的时候并没有充分考虑到这一点,所以如果架构重设,必然会导致财力跟人力的浪费。对此,《可扩展的艺术》一书提出了一个更加系统的可扩展模型—— AKF 可扩展立方(Scalability Cube)。这个立方体中沿着三个坐标轴设置分别为:X、Y、Z。

Y 轴(功能) —— 关注应用中功能划分,基于不同的业务拆分

  • X 轴(水平扩展) —— 关注水平扩展,也就是”加机器解决问题”

  • Z 轴(数据分区) —— 关注服务和数据的优先级划分,如按地域划分

  • 2.1 Y 轴(功能)

    Y 轴扩展会将庞大的整体应用拆分为多个服务。每个服务实现一组相关的功能,如订单管理、客户管理等。在工程上常见的方案是 服务化架构(SOA) 。比如对于一个电子商务平台,我们可以拆分成不同的服务,组成下面这样的架构:

    但通过观察上图容易发现,当服务数量增多时,服务调用关系变得复杂。为系统添加一个新功能,要调用的服务数也变得不可控,由此引发了服务管理上的混乱。所以,一般情况下,需要采用服务注册的机制形成服务网关来进行服务治理。系统的架构将变成下图所示:

    X 轴扩展与我们前面朴素理念是一致的,通过绝对平等地复制服务与数据,以解决容量和可用性的问题。其实就是将微服务运行多个实例,做集群加负载均衡的模式。为了提升单个服务的可用性和容量, 对每一个服务进行 X 轴扩展划分

    Z 轴扩展通常是指基于请求者或用户独特的需求,进行系统划分,并使得划分出来的子系统是相互隔离但又是完整的。以生产汽车的工厂来举例:福特公司为了发展在中国的业务,或者利用中国的廉价劳动力,在中国建立一个完整的子工厂,与美国工厂一样,负责完整的汽车生产。这就是一种 Z 轴扩展。

    工程领域常见的 Z 轴扩展有以下两种方案:

    1.单元化架构

    在分布式服务设计领域,一个单元(Cell)就是满足某个分区所有业务操作的自包含闭环。如上面我们说到的 Y 轴扩展的 SOA 架构,客户端对服务端节点的选择一般是随机的,但是,如果在此加上 Z 轴扩展,那服务节点的选择将不再是随机的了,而是每个单元自成一体。如下图:

    2.数据分区

    为了性能数据安全上的考虑,我们将一个完整的数据集按一定的维度划分出不同的子集。一个分区(Shard),就是是整体数据集的一个子集。比如用尾号来划分用户,那同样尾号的那部分用户就可以认为是一个分区。数据分区为一般包括以下几种数据划分的方式:

    • 数据类型(如:业务类型)

    • 数据范围(如:时间段,用户 ID)

    • 数据热度(如:用户活跃度,商品热度)

    • 按读写分(如:商品描述,商品库存)

    举个例子:比如美团,滴滴遍布全国,各个城市的业务进展不太一样,所以可以根据城市来进行数据分区。

    三 前后端分离原则

    这个我们应该很常见,前端做前端的事情,后端做后端的业务模块,分工更加明确。

    那么前后段分离有什么好处呢?

    这种分离方式有几个好处:

    • 前后端技术分离,可以由各自的专家来对各自的领域进行优化,这样前段的用户体验优化效果更好。

    • 分离模式下,前后端交互界面更清晰,就剩下了接口模型,后端的接口简洁明了,更容易维护。

    • 前端多渠道集成场景更容易实现,后端服务无需变更,采用统一的数据和模型,可以支持多个前端:例如:微信 h5 前端、PC 前端、安卓前端、IOS 前端。

    四 无状态服务

    什么是状态?

    如果一个数据需要被多个服务共享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个“状态”数据的服务被称为有状态服务,反之称为无状态服务。更好的说明见下图:

    场景说明:例如我们以前在本地内存中建立的数据缓存、Session 缓存,到现在的微服务架构中就应该把这些数据迁移到分布式缓存中存储,让业务服务变成一个无状态的计算节点。

    迁移后,就可以做到按需动态伸缩,微服务应用在运行时动态增删节点,就不再需要考虑缓存数据如何同步的问题。这样对于业务的拓展起到了至关重要的作用

    五 RestFul通讯风格

    作为一个原则来讲本来应该是个“无状态通信原则”,在这里我们直接推荐一个实践优选的 Restful 通信风格 ,因为他有很多好处:

    • 无状态协议 HTTP,具备先天优势,扩展能力很强。例如需要安全加密,有现成的成熟方案 HTTPS 即可。

    • JSON 报文序列化,轻量简单,人与机器均可读,学习成本低,搜索引擎友好。

    • 语言无关,各大热门语言都提供成熟的 Restful API 框架,相对其他的一些 RPC 框架生态更完善。

    特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

    Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

    相关推荐
    热点推荐
    如果在家突发脑梗,黄金自救“5步骤”,奉劝你每个都要记在心里

    如果在家突发脑梗,黄金自救“5步骤”,奉劝你每个都要记在心里

    爆炸营养彭鑫蕊
    2025-09-12 16:27:58
    来就是打破纪录的,孙兴慜对圣何塞地震进球洛杉矶队史第三快

    来就是打破纪录的,孙兴慜对圣何塞地震进球洛杉矶队史第三快

    懂球帝
    2025-09-14 10:32:50
    德国男篮黄金一代上线!2.24亿王牌进化,三叉戟联手冲冠

    德国男篮黄金一代上线!2.24亿王牌进化,三叉戟联手冲冠

    李喜林篮球绝杀
    2025-09-13 22:29:28
    中国开始反制,美国芯片成了烫手山芋,比尔盖茨说的话太准了

    中国开始反制,美国芯片成了烫手山芋,比尔盖茨说的话太准了

    一个有灵魂的作者
    2025-09-14 16:14:32
    王菲也没想到,离婚26年,窦唯给自己上了生动一课,窦靖童没说错

    王菲也没想到,离婚26年,窦唯给自己上了生动一课,窦靖童没说错

    查尔菲的笔记
    2025-09-14 11:02:01
    上海45岁二胎妈妈找工作!尝试了这些临时工作后,她感叹……

    上海45岁二胎妈妈找工作!尝试了这些临时工作后,她感叹……

    新民晚报
    2025-09-14 14:19:46
    商务部连发三份公告,拉开中美芯片大战大反攻的序幕

    商务部连发三份公告,拉开中美芯片大战大反攻的序幕

    蓝色海边
    2025-09-14 16:22:23
    令韩国人震惊的中国酸奶世界…

    令韩国人震惊的中国酸奶世界…

    奋斗在韩国
    2025-09-13 19:06:56
    网球名宿对阿尔卡拉兹美网夺冠后的前景表示担忧:别成为行尸走肉

    网球名宿对阿尔卡拉兹美网夺冠后的前景表示担忧:别成为行尸走肉

    搏击江湖
    2025-09-14 20:30:23
    淋浴玻璃隔断“正退出”中国家庭?看年轻人的做法,那叫一个高级

    淋浴玻璃隔断“正退出”中国家庭?看年轻人的做法,那叫一个高级

    装修秀
    2025-09-04 10:40:03
    2025年全球最佳神作,没有之一!

    2025年全球最佳神作,没有之一!

    落雪电影
    2025-09-12 11:30:04
    不明飞行物划过山东夜空,地面发射导弹成功拦截

    不明飞行物划过山东夜空,地面发射导弹成功拦截

    头条爆料007
    2025-09-13 19:18:04
    全球不足6000只,2017年在浙江村民家冷库就有4只,冰冻堆成小山

    全球不足6000只,2017年在浙江村民家冷库就有4只,冰冻堆成小山

    霁寒飘雪
    2025-08-30 09:08:43
    引火上身?胖东来站台西贝遭打脸,亲自承认有隔夜菜,罗永浩说对

    引火上身?胖东来站台西贝遭打脸,亲自承认有隔夜菜,罗永浩说对

    法老不说教
    2025-09-12 22:03:34
    曼城vs曼联:多纳鲁马首秀,福登首发,谢什科、乌加特出战

    曼城vs曼联:多纳鲁马首秀,福登首发,谢什科、乌加特出战

    懂球帝
    2025-09-14 22:20:09
    最新世界排名:王楚钦夺冠重返第1,第3也换人了!高承睿暴跌10位

    最新世界排名:王楚钦夺冠重返第1,第3也换人了!高承睿暴跌10位

    求球不落谛
    2025-09-14 21:43:26
    黄秋生在台湾省混不下去,做节目高喊:我祖宗是欧洲英国人!

    黄秋生在台湾省混不下去,做节目高喊:我祖宗是欧洲英国人!

    柏林观察
    2025-09-14 15:28:39
    28岁女子被砸死,家属索赔200多万

    28岁女子被砸死,家属索赔200多万

    南方都市报
    2025-09-13 22:19:51
    41岁郭碧婷在南昌商场打电玩,扎着麻花辫像少女,皮肤白到发光

    41岁郭碧婷在南昌商场打电玩,扎着麻花辫像少女,皮肤白到发光

    巷子里的历史
    2025-09-14 12:36:06
    15:0!全票通过,中俄美三国罕见一致,对以色列的惩罚,到此为止

    15:0!全票通过,中俄美三国罕见一致,对以色列的惩罚,到此为止

    博览历史
    2025-09-13 14:08:55
    2025-09-15 00:28:49
    IT架构师联盟 incentive-icons
    IT架构师联盟
    IT架构实战分享
    795文章数 7668关注度
    往期回顾 全部

    科技要闻

    L3级车型要来了!辅助驾驶迎重大利好

    头条要闻

    王毅表态:中国是负责任大国 中方不参与、不策划战争

    头条要闻

    王毅表态:中国是负责任大国 中方不参与、不策划战争

    体育要闻

    利物浦1-0绝杀十人伯恩利 萨拉赫95分钟点射

    娱乐要闻

    花泽香菜官宣离婚 结束与老公5年婚姻

    财经要闻

    西贝贾国龙,“错”得离谱

    汽车要闻

    混动狂潮 835马力V12 阿斯顿·马丁的最后浪漫

    态度原创

    游戏
    艺术
    手机
    亲子
    房产

    梦幻西游群雄精锐勇武决赛:神都偏爱卫冕,船坚炮利复仇德云皓子

    艺术要闻

    故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

    手机要闻

    澎湃OS再次公布进展通报:7大问题已解决,你遇到了吗?

    亲子要闻

    星宝语言井喷实操教程:强化物清单制作

    房产要闻

    「世界冠军×人居升阶」白鹅潭CLD封面,实力馥见人生新高度!

    无障碍浏览 进入关怀版