游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

微服务的痛用实际经历告诉你它有多坑(三)

  我们在前面已经说了微服务的六个痛点:(1)微服务的职责划分之痛;(2)微服务的粒度拆分之痛;(3)没人知道系统整体架构全貌之痛;(4)重复代码过多之痛;(5)服务器资源耗费更多之痛;(6)分布式事务之痛。你的项目真的适合微服务架构吗?微服务架构有哪些痛呢?(一)微服务的痛:用实际经历告诉你它有多坑(二)
  在这里我们继续来聊其他的痛点:一、服务之间的依赖
  在设计类时,我们往往需要遵循类与类之间不可循环依赖的原则,因此最终设计出来的类关系类似下图所示的层次分明的结构。
  如果我们把依赖关系转移到微服务,结果会怎么样呢?我们先举个例子看看。
  比如商品系统针对不同门店类型设置不同价格时需要调用门店系统中的类型,这时商品就依赖了门店;同时因门店中存在商品库存,门店也就依赖了商品系统的商品信息,从而形成了循环依赖。
  再比如最底层的财务系统,从理论上讲,它不需要依赖其他系统。而实际上刚好相反,它必须依赖订单信息,知道费用由什么订单产生,同时它还需要依赖会员信息和门店信息,知道是谁付的钱和谁收的钱。
  因此,随着需求越来越多,服务之间的依赖就变成下面这种架构了。
  通过上图,我们发现服务之间的依赖可谓是你中有我,我中有你。
  那这种地狱般的依赖一般会出现什么问题呢?场景1:
  重构2个服务后,我们就需要在测试过程中评估哪些服务会受影响?
  因为前一段时间线上环境已经出现了2次一级故障,所以CTO强烈要求我们此次务必认真评估影响面,不能再出现类似问题。
  于是一个leader提出方案:先根据重构的代码找到受影响的接口,然后根据接口找到所有调用这些接口的上游代码,再找到那些调用上游接口的接口,以此类推。
  由于该方案分析成本过高,且一旦出现任何遗漏就会前功尽弃,因此直接被CEO否决了。
  最终我们提出了一个较合理的方案:根据全链路日记系统中的服务间依赖,找到这2个服务的所有上游服务及上游的上游服务。
  通过这个方案评估后,我们发现服务重构后,大半的微服务受到了影响,于是一堆人不得不陪着通宵达旦做回归测试,那几天重构服务的Leader也都低着头走。场景2:
  有了之前的教训,后续遇到新的重构需求时,重构的人就学乖了,直接把原来的服务abcServiceV1写成新服务abcServiceV2。此时新的代码直接调用V2版本,而旧的代码还是继续调用V1版本,等有时间再下架abcServiceV1,这样就不用一堆人陪着加班了。
  后面大家纷纷照搬这个方案,使得V1、V2的形式越来越流行,服务数量出现暴涨。而且在实际开发工作中,开发人员很少在后期下架旧版服务,最终导致服务数量越来越多且新旧版本并存,维护起来更痛苦了。
  以上就是服务之间的依赖导致的问题了,而关于这类问题的解决思路我们放在后面专门来说二、联调的痛苦
  以往,我们的需求排期是这样的:需求评审时间开发完成时间测试完成时间上线时间。
  迁移到微服务后,需求排期表活生生地增加了2个环节:需求评审时间接口设计时间开发完成时间联调完成时间测试完成时间上线时间。
  在这种变化下,每次遇到比较紧急的需求时,我们都会额外问一句:接口文档好了吗?联调怎么样了?
  为什么我们这么在意联调?因为在一个软件项目中,影响项目排期的往往不是技术问题而是第三方依赖问题,一旦涉及沟通、协调等问题就会特别耗时间。
  这里,我们举一个例子简单说明下。有一次,我们正对门店系统进行小的需求改动,此时需要商品系统研发人员配合提供一个简单的接口,而商品系统的开发人员说,我们正在忙另外一个项目,周二抽空提供这个接口。
  听了商品系统开发人员的番话,我们简单评估了一下上线时间,周二拿到接口,周三进行联调,周四、周五测试2天,应该周五晚上就可以上线了。于是,我们与业务人员进行了相关反馈。
  可是等我们把门店的功能设计好后,因商品系统的开发人员开展的项目临时修改了一个紧急需求,要求周二务必通宵搞定,为此,他们无法在周二这天给到我们接口,最终门店周五上线的计划也就被延误了。
  而这种事情在实际开发过程中发生的频率比较高,并不是单个事件。
  下面,我们再举一个例子说明下。有一次,我们正在做一个涉及30个服务的大项目。周五完成所有需求评审后,我们的首要目标是对接口文档。
  因为接口文档是由各个项目组根据实际需求汇总各自需要提供的接口数,总计300多个接口,以至于这个过程我们花了整整两周时间。
  对完接口文档后,十几个项目组之间又开始对接口联调时间,这个过程又整整花了三天时间。
  不过,对完接口后,各自开发功能的速度就很快了,那次我们用了2周就把功能开发完了。
  说到这可能你想问,对完接口后,在实际开发过程中接口还会修改吗?我的答案是肯定会,而且增加、修改、删除接口都有可能。但是对完接口后,至少可以保证我们在大概一致的方向上前进,如果确实需要调整,修改的也只是一些小细节,并不会影响开发进度。
  功能设计完后,就需要进行联调了,而这个过程往往最耗时,因为我们需要耗费大量的时间在沟通上,先通过下面这段对话感受下。调用方:addXXX的接口怎么样了?
  被调用方:好了,你可以调调看。
  调用方:不行啊,你看返回了404。
  被调用方:哎呀,环境部署错了,稍等一下。
  调用方:赶紧的。
  被调用方:好的。
  被调用方:好了。
  这时,调用方在联调时发现需要增加一个字段,就说,addXXX的接口需要增加一个修改时间字段,你帮我加一下。
  可以,不过我正忙着另外一个项目,要不明天给你?
  别啊,今天必须联调完。
  那我晚上赶一赶,9点给你成不?
  好吧。
  所以,在做项目时我们最怕的就是协调时间,因为它不可控。毕竟每个开发人员的需求优先级都不一样,除非所有相关项目组的第一优先级都相同,不然协调时间会是一件很头疼的事情。
  而且这个大项目共包含300多个接口,也就是说300多个接口都需要协调,这就使得联调的时间一点不比开发功能的时间少。三、部署上的难题
  使用单体式架构时,每个开发人员都想在本地把整个系统部署完后再调试,此时部署方式非常简单。可是迁移到微服务后,每个项目动不动就涉及十几个微服务。这时,如果让开发人员将这十几个微服务在本地部署完后再联调,根本无法实现。且不说内存不够,就算内存够,任何一个开发人员都不可能熟悉十几个微服务的部署。
  为此,我们专门弄了1套测试环境给开发人员进行联调,这样开发人员就可以将本地正在开发的服务接入联调环境,类似下图所示架构:
  可是,这种架构时不时会出现下面这三种问题。1。联调环境的数据缺漏非常大
  因为联调接入的服务是本地开发过程中的服务,即数据是开发数据,所以单个服务中的数据不具备完整性。
  而且因为是开发环境,上下游服务之间还没有调通,也就是说上下游的单据也不一致、不完整,不是出现订单少了收款单的情况,就是出现准入少了审批单的情况。2。经常调用服务错误
  时不时会有人发出这样的抱怨:甲:这个接口怎么有问题啊?你看,A字段和B字段都缺失了。
  乙:怎么会呢?我明明加上去了啊?
  甲:你是不是忘记部署了?还是部署失败了?
  乙:我看看。
  甲:我去,你是不是调用了六子的服务?问一下六子。
  过了一会儿,乙过来说:还真是,他刚好在接入这个服务,我找他去。3。联调环境极度不稳定
  因为开发人员时不时需要对联调中的服务进行部署,或者将不稳定的开发服务接入联调环境,再加上前面提及单个服务中的数据不具备完整性,因此,如果想在联调环境下走完完整的流程,这根本不太可能。为此,我们只能将联调环境用作接口间的局部联调。
  这就是联调环境难以部署带来的痛点,使得我们花了太多时间在协调问题上。于是我们在想,有没有一个办法可以简单地创建一套相对独立的测试环境呢?那后面我们就根据这些痛点来对应聊聊解决方案。四、总结
  可能你想问,关于微服务的优势我们只讲了5点,而微服务的痛点足足讲了9点,我们为什么还要使用微服务?
  如果使用单体式架构的话,随着业务的复杂化,将会出现无论怎么加人都无法迭代的情况。而如果使用微服务,虽然它存在一堆问题,但是至少可以通过加人的方式保持迭代。
  对于这些痛点,如果你有更好的解决方案,欢迎留言讨论。
  感兴趣的朋友欢迎关注微信公众号:服务端技术精选
  个人博客:http:jiangyi。cool

英特尔元宇宙需要将计算能力提升一千倍澎湃财讯美东时间12月15日,外媒《TheVerge》报道称英特尔发布了第一个相关元宇宙的声明。英特尔表示抽象地看好元宇宙的可能性,但认为有一个关键问题还没有解决:几乎没……小米新机获得认证,2430mAh双电芯,MIX4或将至在很早之前就有相关爆料称小米MIX4将会在今年下半年发布,但配置和手机的外观设计却是今年才开始爆料的。现在基本可以确定小米MIX4系列是一款搭载屏下摄像的手机。从之前曝光的渲染……蓝血人热播徐冬冬吻戏太多吻到嘴软日前,根据热门IP卫斯理改编而成的科幻悬疑网剧《冒险王卫斯理之蓝血人》正在爱奇艺热播,90后小青衣徐冬冬饰演的腹黑御姐云萱有别于其在成名作《余罪》中大嫂沈嘉文温柔的反派设定,该……我的保姆手册官宣吕佳容演娱圈女魔头蓝予嫣近日,AI青春偶像电视剧《我的保姆手册》正式官宣曝光主演阵容,人气小花郑爽携手内地实力派女演员吕佳容搭档泰国神哥英迪帕塔尼联袂出演,华丽阵容,强强联手,将颠覆线上线下观众的视觉……什么牌子的学习机好?首先非常感谢在这里能为你解答这个问题,让我带领你们一起走进这个问题,现在让我们一起探讨一下。学习机是学生群体中比较普遍使用的一种便携式学习设备,随着科学技术的发展,学习机……初相见最悲惨女人孙怡爱而不得吕佳容为爱沦落《初相见》最悲惨女人孙怡爱而不得吕佳容为爱沦落女子为爱可以奋不顾身,我们在太多的影视剧中见到了痴情女的故事,也在她们身上看到了太多的无私和勇敢,下面就来盘点下民国大剧《人……楷旋长相守拍戏是一件齐心协力的事,花锦绣对命运不服输星关系6月3日讯电视剧《长相守》的剧情目前已逐渐进入佳境,楷旋饰演的花锦绣本性刚强而善良,但却不断遭受旁人的利用,在连夫人和柳言生的打压下,所有原本美好的渴望皆成泡影,而在原非……陌陌馨哥哥拍戏了!恋爱百科全书开机现场身材高挑吸睛星关系6月2日讯6月1日,由青春考拉影业与热度影视联合出品,青年演员王新乔,谢乙峤阳,冯希瑶,邵雅馨主演的都市情感喜剧《恋爱百科全书》在苏州举行开机仪式并正式开机。邵雅馨在剧中……长相守开启超前点映于小彤老年妆大胆突破引关注星关系6月1日讯古装大剧《长相守》将于今晚(6月1日)20:00开启超前点映,掀起今夏第一波刷剧狂欢。《长相守》由吴锦源执导,于小彤、毛晓慧、关智斌、楷旋主演,讲述了千余年前的……三叉戟开播热议不断陈建斌领衔中年男团由马珂担任制片人,刘海波执导,沈嵘、吕铮担任编剧,实力派演员陈建斌、董勇、郝平领衔主演,何杜娟、徐绍瑛、胡可、王骁主演,巫刚、陶红、赵子琪、丁勇岱、侯岩松特别出演的《三叉戟》于……高晓攀率众主播边玩边演直播互动剧导演我太难了持续高能由全能艺人高晓攀跨界担任虎牙学院校长、新生代主持人闫学新、史晨枫共同主持的全网首档直播互动剧《导演!我太难了》第二季目前已开播至第3期。节目凭借其观众实时弹幕互动的新鲜概念、主……商用自动洗碗机的类别1、揭盖式洗碗机:适合酒吧和规模较小的餐馆。2、篮传式洗碗机:也称为单通道式洗碗机,适合酒店、单位食堂使用。:根据喷淋机的缸数区分单缸单喷淋、单缸双喷淋,双缸单喷淋,双缸……
想KO却被KO,一文告诉你为何说小米K40游戏版不如real前两天,红米正式了首款游戏手机红米K40游戏增强版。对于这款手机,红米官方多次表示不仅是游戏手机,更是可以用于当主力机使用的手机。但要想当主力机,就需要综合素质全面,而非只有游……从3499元跌到598元,为什么中兴手表手机没人买?说起手机行业的技术创新,中兴公司真的不落后于华为、小米或OV。无论是旗下红魔游戏手机的内置风扇设计,还是旗下努比亚开创的柔性腕机(也就是是手表手机),都融入了非常前卫的设计元素……网友称有手机软件开屏广告摇一摇即进入工信部回应加大手机软件广告治理力度(建议回复)近日,河北石家庄市网友邹先生在人民网领导留言板反映,有些手机软件开屏广告是摇一摇进入的,如果手机没拿稳,轻微摇晃一下,就会进入广告,建……30家港股公司回购腾讯控股回购2。01亿港元证券时报数据宝统计显示,1月14日有30家香港上市公司进行了股份回购,合计回购3935。50万股,回购金额3。54亿港元。腾讯控股回购数量43。00万股,回购金额2。01……亚马逊SCVCVE各自的优劣首先我们要有一个概念,知道SC、VC、VE、分别是什么,简单一点,SC就是第三方卖家,目前我们大多数都是SC,VC是亚马逊的供应商,VE是美国本土企业供应商入驻,有这么个概念过……东方基金李瑞智能化爆发前夜一场汽车革命正在酝酿在今年年初的震荡过后,新能源汽车能否继续强势?众多投资人心中打了个问号。在东方基金绝对收益部副总经理李瑞看来,进入2022,整个汽车领域的投资主题发生了清晰而深刻的变化,新的机……中国信通院2021年全年国内手机市场总体出货量累计3。51亿央广网北京1月18日消息中国信息通信研究院今日发布2021年12月和全年国内手机市场出货量数据。数据显示,2021年12月,国内手机市场出货量3340。1万部,同比增长25。6……元宇宙概念上市公司部分龙头企业简介捷成股份:公司主要从事音视频技术业务、影视内容与版权运营业务。中科创达:公司是全球领先的智能操作系统产品和技术提供商。公司以智能操作系统技术为核心,……电商人一天是怎么度过的?京东店铺的运营计划(ELENAMILEVA)一、运营规划1、店铺上线及日常管理(1)确定店铺的整体风格,做好各个区域的美工工作(2)细化买家须知内容,尽……不用网线也能发出WiFi信号,蒲公英R300A4G工业路由器WiFi在我们现代人的生活中已经是必不可少的东西了,但以往我们在没有宽带线路、也没有路由器的环境下,想要发出WiFi信号,只有拿出手机,开启手机热点。这种方式虽然是能够解决出差……手机的CPU会因为使用久了老化吗?性能会不会慢慢变差?手机cpu和电脑cpu一样,都是由数亿乃至数十亿个晶体管构成,它们有自身的额定工作频率,这个频率可不是随便定的,厂商会保证在稳定和性能之间取一个平衡点并经过严格的测试,可以说只……ipad是买WiFi版的好,还是买4G版的好?本行业问题,我来回答。ipad是买WIFI版,还是买4G版的问题,主要看你使用ipad是干什么用,而且也要考虑到你在什么地方使用这个ipad。WIFI版本的ipad只能在……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网