天天快看点丨微服务 - 拆分微服务的问题和拆分方法
概述
现在被谈论最多的就是微服务和中台系统,我个人的理解是微服务或者是中台好不好,主要看实际的业务场景,架构的变迁往往需要耗费很大的学习成本和时间成本,所以更改架构的时候要三思而后行,适合自己特别重要。
(资料图)
由单体到多应用的演变
从我入职开始,公司已经从单体走向了垂直拆分,比如单库查询,Redis、Es、MongoDB已经在系统中广泛应用,中途也遇到了些调用混乱的问题,我们在之前的MVC中加入了一个Service层做了一次数据聚合层,并且一直良好运行了很久,峰值请求大概在百万级左右,在寒暑假的时候会稍微多一点。
在开始微服务之前其实我心里有自己的方案,团队比较小,其实没有必要进行微服务的拆分,如果非要拆分在原基础上把yaf换成Swoole模式的,就能得到性能和成本之间的平衡,但是没有得到采纳,其实略有遗憾,在团队里没有话语权,是一件没有办法能解决的问题。
在这里多说一句,微服务并不是解决高并发的问题,微服务是一种架构思想,再了解微服务的过程中,也走了不少弯路,网上有很多Java实现的微服务,Go语言的,Rust的,甚至还有python的,其实单纯从语言层面来说,语言的性能正在缩小,技术人要有自己的思考,不能麻木跟风。
拆分微服务遇到的问题
微服务我就不说了,在这里写写那些设计的要素和一定能遇到的坑。
比如我们的业务是阅读App,里面的核心是作品,但是作品的详情页会集中展示评论、用户、章节需要的数据信息,之前都同一个Service层,这是第一个需要思考的问题。
拆分颗粒度:拆分微服务最难的点在于怎么把握服务于服务之间的颗粒度,这个很难把握,如果拆大了,只是改了个名字,换汤不换药,拆小了聚合数据又会存在问题,这中间的过程真是让人抓狂。
下面我说说当时遇到的问题,拆分的日子真是让人抓狂:
1.服务划分过细,服务关系复杂,服务划分过细,单个复杂度就会下降,但是整个系统的复杂度就会上升上来,因为微服务把系统内的复杂度转移为了系统间的复杂度。
2.服务数量太多,团队效率急剧下降,这里的误区是微字就意味着拆分的很细。
3.没有自动化支撑,无法快读交付,现在极客时间里有GitOps,可以看这个,写的很好。
4.没有服务治理,微服务达到一定数量,后台管理混乱。
5.以前一条sql搞定的事情,现在需要从多个服务里获取,在一定程度上提升了开发难度。
拆分微服务方法梳理
从网上梳理了一些拆分微服务的方法论,希望对你有一些参考的价值:
1.纵向拆分和横向拆分
从业务维度进行拆分,标准是按照业务的关联程度来决定,关联比较密切的业务适合拆分成一个微服务,而功能相对比较独立的业务适合拆分为一个微服务。从公共且独立功能维度拆分,标准是按照是否有公共的被多个其他服务调用,且依赖的资源独立不与其他业务耦合。2.拆分微服务还是综合考虑的因素
业务逻辑基础设施建设(自动化测试、自动化部署、服务监控,服务发现、配置中心等等),决定成败的往往是基础设施建设,和业务无关。将系统中的模块按照稳定性来划分,将已经成熟的和改动不大的归类为稳定的服务。3.按照业务颗粒度划分,分出了2种可能。
按照粗颗粒度划分:作品、用户、评论、消息按照细颗粒度:作品、用户、有声、评论、动态、客服IM、综合等等就很多很多了。拆分原则
3个火枪手原则:一个微服务由三个人开发,在进行微服务架构时,根据团队规模来划分数量也是合理的。
AFK拆分原则:
X轴,水平复制,多加载几个应用实例,以集群加负载均衡的模式进行拆分Y轴,微服务经常采用的按业务逻辑划分Z轴,按照数据进行划分康威定律
第一定律:组织沟通方式会通过系统设计表达出来,人月神话中总结出了随着人员的增加沟通成本呈指数增长的规律,沟通成本n(n-1)/2
第二定律:时间再多一件事情也不可能做的完美,但总有时间做完一件事情。第三定律:线型系统和线型组织架构间具有潜在的异质同态特种第四定律:大的系统组织总是比小系统更倾向于分解其他原则:
人与人的沟通是非常复杂的,一个人的沟通精力是有限的,所以当问题太复杂需要很多人解决的时候,我们需要做拆分来达成对沟通效率的管理。组织内人与人的沟通方式决定了他们参与的系统设计,管理者可以通过不同的拆分方式带来不同的团队间沟通方式,从而影响系统设计如果子系统是内聚的,和外部的沟通边界是明确的,能降低沟通成本,对应的设计也会更加合理高效复杂的系统需要通过容错弹性的方式持续优化,不要指望一个大而全的设计或架构,好的架构和设计都是慢慢迭代出来的标签:
相关文章
等我老了,才不要穿这“2种”土里土气的裤子,另外3条更时髦 环球微动态
谁也没有办法阻止时间的流逝,我们能做到的就是在有限的时间内尽情展现自己的魅力。不过很多女人上了年纪之
四川:一季度GDP同比增长3.8% 社会消费品零售总额同比增4.3%
4月21日,四川省人民政府新闻办召开2023年一季度四川经济形势新闻发布会。根据地区生产总值统一核算结果,2
每日热点:济宁市全力打造一流营商环境,为人才安心立业营造最优生态
齐鲁网·闪电新闻4月21日讯4月21日,济宁市政府新闻办组织召开贯彻“济宁市人才科技创新发展大会”精神主题
每日快看:卢尼季后赛单场至少9进攻板+9助攻 NBA历史第4位!
直播吧4月21日讯 NBA季后赛首轮G3,勇士主场114-97战胜国王,总比分扳回一城,目前1-2。本场比赛,勇士中
@广州人,4月这项运动人人有份,快为你心爱的“TA”行动起来!
4月是全国第35个“爱国卫生月”,4月22日是“广州市爱国卫生日”。今年活动主题是“宜居靓家园,健康新生活
贵航股份(600523):4月21日北向资金减持1.86万股
4月21日北向资金减持1 86万股贵航股份。近5个交易日中,获北向资金减持的有3天,累计净减持36 06万股。近20
中国黄金:一季度净利润3亿元 同比增长19.13%
中国黄金披露年报,2022年实现营业收入471 24亿元,同比下降7 16%;净利润7 65亿元,同比下降3 66%;基
世界今热点:V观财报|凌钢股份刻意打压股价?投资者“要举报”,公司回应
中新经纬4月21日电21日上午,凌钢股份称公司从未干预过股票市场价格。事情的缘由是有网友在投资者互动平台
天天热议:江山欧派(603208):江山欧派关于召开2022年度暨2023年第一季度业绩说明会
证券代码:603208证券简称:江山欧派公告编号:2023-018债券代码:113625债券简称:江山转债
iphone4s越狱后安装软件(iphone4s越狱后)
iPhone4S越狱后添加Cydia源码的方法如下:提示:这个教程是iPad通用的。1 在手机桌面上找到Cydia的图标
【当前独家】国网范县供电公司:“三聚焦三强化”提升监督工作质效
□谷武民梁丽敏为充分发挥监督保障执行、促进完善发展作用,国网范县供电公司纪委认真学习贯彻落实上级文件
科大讯飞2022年营收增长至188亿元,认知大模型“星火”将于5月6日发布
4月20日晚,科大讯飞(002230 SZ)发布2022年报及2023年一季报,2022年科大讯飞实现营业收入188 2亿元,同
股票行情快报:赛托生物(300583)4月21日主力资金净卖出291.65万元
截至2023年4月21日收盘,赛托生物(300583)报收于24 02元,下跌2 32%,换手率0 74%,成交量7711 0手,成交额1868 16万元。
世界消息!股票行情快报:智云股份(300097)4月21日主力资金净卖出103.63万元
截至2023年4月21日收盘,智云股份(300097)报收于5 15元,下跌3 74%,换手率1 64%,成交量4 44万手,成交额2307 59万元。
邱亮平:埃安今年目标50万辆 HyperGT远超Modle3-世界速读
邱亮平:埃安今年目标50万辆HyperGT远超Modle3,埃安,邱亮平,网易汽车,昊铂,hypergt,智能化,modle3
当前时讯:银河电子(002519.SZ):拟1.4亿元出售嘉盛电源100%股权
格隆汇4月20日丨银河电子(002519)(002519 SZ)公布,鉴于嘉盛电源近几年实际经营业绩持续下滑,产品市场竞争
AutoCAD2022怎么设置文字方向 CAD文字方向设置教程
AutoCAD2022是一款非常专业的制图软件,那有很多用户表示自己不知道怎么通过这款软件设置文字方向,下面就
全球最资讯丨电科网安(002268):计提资产减值准备1.14亿元
4月21日,电科网安公告显示,于2023年4月19日召开第七届董事会第三十六次会议、第七届监事会第二十四次会议