范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

微服务世纪难题如何拆分单体?

  微服务架构设计中,如何拆分单体是一件非常重要且令架构师十分头疼的问题。在这篇文章中,会展现一些关于如何准备和执行单体应用程序拆分的思路和步骤说明。 概述
  单体拆分必须追求的一些目标:不仅仅是拆分,而是通过拆分获得一些收益。 如果考虑到拆分的成本和效果,可能其他一些方法(例如应用程序扩展或数据库硬件更新)可能更可取。
  要实现的另一个好处的例子可能只是应用程序现代化。 然而这里是一个或多或少正式的单体拆分方式,它试图考虑拆分的原因和目标。 当然这不是教条,你可以找到几种拆分的方法。 此迁移路线图旨在将单体应用程序迁移到微服务以此获得微服务的优势,而不会(或极小)造成应用程序不可用。 明确基准线
  由于应用程序支持性,单体应用程序可能看起来非常混乱,但这是意料之中的。 最好的情况是,期待一个带有大量调整的大型耦合分层应用程序。 无论如何,第一步是你需要收集有关当前应用程序的所有信息:需求、用例、ASR、组件、部署图等。 理解应用程序(整体)
  在大多数情况下,应用程序缺少文档,这些文档可能描述了基准线,那么你至少需要收集以下信息: 应用程序的功能模块、它们之间的关系和外部环境; API和服务接口描述; 带有模块描述的组件图就足够了。这是因为在大多数情况下,拆分将按照功能或换句话说应用程序功能执行; 部署图,显示物理硬件以及系统和软件配置。这是因为一些NRF可能会受到部署的影响(例如,故障隔离的可扩展性)。 理解数据
  为什么数据图表和潜在数据映射很重要? 在大多数情况下,微服务将与底层数据和数据库一起抽取。杂乱无章的数据可能会影响此类 NRF 的性能。 在任何情况下,它都有助于发现潜在的问题,例如数据缺乏或过多、数据混乱以及使用某些微服务进行数据抽取的边界。 理解上下文
  在某些情况下,需要抽取的功能可能已经作为单独的外部服务存在了。不需要抽取一些业务能力,只需要复用一些已经存在的外部服务。像 TTM 这样的微服务优势可以用更少的努力来实现。 理解用户
  这虽然与上下文重叠,但显示了用户/外部系统是如何使用应用程序的,以便了解使用什么功能以及如何使用,也许应用程序的某些部分已过时且未使用。
  其余关于应用程序的信息将用于做出决策并显示拆分的必要性,如何拆分以及抽取什么。 为什么要拆分单体?
  可能很难回答为什么我们需要将单体应用拆分为微服务,答案可以更加面向业务或更加面向技术。在大多数情况下,企业是看不到将单体架构重构或拆分为微服务的任何好处。 业务驱动
  乍一看,可以找到以下先决条件,但列表可能会扩大。 无论如何,业务驱动都是与增加收入和减少损失有关的,因此新的项目都只会从这两个问题中衍生出来。 缩短上市时间 降低 TCO:仅扩展必要的部分 减少损失:弹性、高可用性和容错解决方案、测试覆盖率 提供更好的用户体验
  此外,一些奇怪的却动力可能默默地出现,但不会展现出来:它很主流并且也拆散了整体。 技术驱动
  技术驱动只是扩展了业务驱动的列表,可能如下所示: 摆脱过时的技术并顺利迁移到现代/受支持的技术 降低复杂性 提高可支持性 提高测试覆盖率 可重用性 透明且可预测的变化 团队重用 微服务的优势
  下面提供了微服务的好处以及它们如何满足业务和技术需求。 当然,表格可以通过几个额外的微服务好处进行扩展,但它们大多是派生出来的,并与表格内容重叠。
  记住优势的同时,也请不要忘记缺点。
  拆分步骤1、准备
  以下是或多或少拆分单体应用的正式步骤。这些步骤可能会根据业务需求、单体状态、CI/CD 程序等进行调整。
  在建立基线时早期获得的模块/服务列表应围绕业务能力进行组织,并且可能更深一层。例如欺诈检测系统和促销服务可能需要地址。
  可以在拆分过程的中间实现期望的目标。从业务的角度来看,这可能是件好事,但从技术的角度来看,继续使用包含多个抽取服务的单体应用程序就很糟糕。 2、重构优先
  需要拆分的应用程序几乎不可能具备良好的形态。因此可能会在单体应用中执行几轮服务重构,一些服务可能正在重构中,而另一个正在抽取中。 3、典型的分层应用
  这是服务抽取的起点,此时应用程序的主要层,如控制器、应用程序服务、DAO 等,是可观察和可理解的。
  4、服务/功能边界和 API
  DDD 可能有助于定义服务边界,但我们需要从现有应用程序中提取业务功能,而不是对业务模型进行建模。只需开始将业务功能映射到现有的应用程序服务和域模型中以识别服务边界即可。
  在分层应用程序中,控制器可以描述要提取的 API。API 可能会被调整/扩展,但这里的重点是整个应用程序必须与服务一起工作,并且更改最少。更改与我们需要使用抽取功能(代理和外观)的原因和方式有关。
  5、创建服务facade
  当定义服务边界时需要改变与功能交互的方式,而不是处理一组代表业务功能的应用程序服务,我们需要在单体应用程序中创建一个外观并通过facade工作。
  换句话说,我们需要在提取服务之前获得一个松散耦合的单体。 6、重构数据
  使用数据库抽取一项服务可能会影响单体应用的多个不同服务。所以只能通过 API 访问服务数据,而不是通过数据库。因此,由于直接访问了数据,即使是一个服务的提取,也可能需要大量工作。 7、停止将新功能写入单体应用程序
  拆分到微服务和向解决方案中添加新功能着两个活动并行执行,这是一种常见的情况,因此从一开始就将新功能创建为单独的微服务是有意义的。 8、拆分
  大多数情况下,所有准备步骤都应在实际拆分之前完成。应用程序应呈现为松散耦合的单体,具有细粒度的服务、良好描述的 API 和边界以及每个服务的隔离数据(避免跨数据库共享数据)。 9、优先提取服务
  更正确的做法是不进行服务抽取,而是进行业务特征抽取。尝试按业务能力/领域对现有应用进行重组/重构/分组,每个应用可能包含多个应用服务。
  潜在的优先标准: 最常更改的服务:最小化对部署的影响。 可能被第三方服务取代的服务:只是为了让代码库更轻量级。 需要扩展的服务:优化性能。 与整个单体耦合:使代码库更轻巧且更易于理解。 服务的复杂性:收集经验、建立CI/CD流程、沟通方式等。
  清单可能会不同, 可能添加诸如将底层数据库模型从关系数据库模型更改为 NoSQL、技术更改(编程语言)、团队利用率等标准。
  结果,可以选择至少一项服务进行提取。 10、选择微服务之间的通信方式
  这不是一个非常复杂的步骤。但是我们不仅需要选择协议和序列化类型,还需要考虑云提供商的限制(即广播支持)。在大多数情况下,REST 或 gRPC 是请求-响应同步通信的首选方式。这是由于相对简单、团队经验、不同工具的支持等原因。很难想象新的或抽取的微服务使用干净的 TCP。
  基于消息的通信方式由于异步性、单向(当然可以使用"reply to"机制,但会导致服务耦合)等原因,不能被视为请求-响应的替代方案。异步适用于事件源(即发即弃),也适用于消费者构建自己的世界图景。一个例子是关于成功付款的通知将反映在订单履行系统中以组装交付和财务系统,可以使用 SQS、Kafka 或其他一些消息传递服务。 11、实施服务
  使用选定的通信方法、拥有的数据库等实现微服务。创建一个用于测试目的的服务模拟来测试单体和其他相关微服务是有意义的。 12、创建服务代理
  创建具有额外责任的服务代理。在单体应用中使用服务或使用抽取服务,暗示代理可用于与删除/抽取的微服务进行通信。
  该代理将允许在单体应用中的现有服务实现和抽取的服务之间轻松切换。可以使用canary发布方法。
  13、切换到微服务
  经过测试,在生产环境中进行测试的canary发布仅对微服务使用和从旧代码中清理单体应用有意义。
  检查是否达到了初始目标,并决定停止或继续拆分过程。在继续的情况下,你需要选择下一个特征并执行提取。 译者介绍
  朱钢,51CTO社区编辑,2019年CSDN博客专家20强,2020年腾讯云+社区优秀作者,10年一线开发经验,曾参与猎头服务网站架构设计,企业智能客服以及大型电子政务系统开发,主导某大型央企内部防泄密和电子文档安全监控系统的建设,目前在BIM头部企业从事招投标软件开发。
  原文标题:   Split the Monolith: What, When, How   ,作者:Igor Azarny
  来源:51CTO技术栈
  译者:朱钢

比尔盖茨评价苹果iTunes音乐商店邮件曝光IT之家7月10日消息外媒9to5Mac报道,苹果公司的iPod和iTunes音乐商店无疑改变了音乐产业,它使客户有可能以非常低的价格购买个别歌曲。有趣的是,2003年微软联合创始暑期档TOP10专业的千元机购机指南来了不知不觉迎来放飞自我的暑假,正是很多年轻人得到自己第一款手机的时候,我们为预算不多的年轻人工薪族和学生党整理了一份暑假千元机档位换机攻略,希望会对那些既要求品质又看重价格的购机人群最好最专业的摄影机大疆最好的专业摄影机过去,如果你想要一架无人机,你要么选择设计紧凑的DJIMavicPro,要么选择标志性的Phantom系列无人机,因为它们具有相机功能,但今天有更多的选择。要说到最华米科技再放大招,将发布自研OS,网友该不会是套壳吧?欧界报道据7月11日最新消息,国内知名智能穿戴设备品牌华米科技宣布将在7月13日举办NextBeat2021大会,主题为TheFutureofHealth(未来健康)。顾名思义,这蔡徐坤刘昊然Lisa娱乐圈三大顶流助力蓝厂新品,网友直呼买爆如果对数码圈和娱乐圈都有了解的,一定不会忘了几个月前vivoS9,作为自拍手机中的旗舰存在,vivoS9从发布开售就受到社会各界喜欢自拍人士的喜爱和追捧。而作为vivoS9的迭代升荣耀30Pro到底值不值得购买?优点缺点并存,由你自行决断哈喽大家好,我是你们的老朋友小馨,每天都会给大家更新我的原创内容,三千元价位的荣耀30Pro到底值不值得购买?今天带大家一起来看一下。荣耀30系列在轻薄上真是大下功夫,在同价位产品现金被老鼠偷走了,拼多多的底层逻辑是什么?拼多多,又叫并夕夕,在全民一片骂声中,生生地做到了八亿用户,交易额也和他的口碑远远不符。8亿人都在用的拼多多,底层逻辑到底是什么?他到底在干什么?拼多多5月26号拼多多发布了202升级5G套餐到底值不值?大流量用户有话说不如39元套餐伴随着5G基站覆盖越来越全面,很多人对于使用5G套餐已经跃跃欲试。5G的好处大家都知道,但是否适合所有人,值得仔细推敲。最近身边的朋友刚刚升级了5G套餐,128元起的套餐,只有30滴滴下架后,美团打车时隔两年更新,布局近200个城市7月11日,北青北京头条记者发现,美团打车App时隔两年再度更新,logo风格为美团黄,扩展到全国近200个城市。此外,在美团App中,也在重点推荐打车业务。记者注意到,美团打车2Commell推出LEU处理器支持PCIe4。0Commell刚刚宣布了采用英特尔最新一代TigerLakeU处理器的单板计算机(SBC),它就是可选双核赛扬6305E或四核酷睿i71185G7E处理器的LE37O。需要指出的是iPhone13手机壳曝光,惊艳颜值确认,iPhone12惭愧沦为百元机日前,微博博主老爆科技在微博上推出了即将上市的iPhone13Pro手机保护套,并将iPhone12Pro放在上面对比两款机型的尺寸。值得一提的是,由于iPhone13新机的曝光,
如何注销百度企业百家号?一注销百家号流程1电脑端登录百家号官网,进入账号中心,找到百家号设置账号设置,在百家号ID后边点击账号注销2按照提示注销协议确认百家号资产确认基础信息验证即可。重要提醒1)企业百家多款IOT设备齐聚,OPPOEncoR真无线耳机打头阵全新的OPPOEncoR真无线耳机,产品名取自Reno的R,代表为Reno手机用户提供具有定制化体验的真无线耳机。OPPOEncoR外观延续Reno对色彩的探索,结合冰透白和奶油蓝重大突破!科研人员发现硅28导热性能比普通硅高150,意义非凡广大数码爱好者朋友都知道,这两年有一个热度非常高的高频词那就是功耗,高通和联发科近年来所发布的手机处理器功耗普遍较高,由此导致手机极易发热,续航短,体验非常糟糕。以至于现在各大手机假如我获得了苹果公司1的股份,我还需要上班吗?你都有苹果1的股票了,就不要想和上班有关的事情了。截止到今天,苹果市值高达2。279万亿美元,总股本为161。85亿股,拥有其1的股份就等于有227。9亿美元,16185万股。现在热搜小米公司利润下滑超过50快手大规模封号iOS15。6发布快手打击网络招快手发布关于打击招的处罚公告,公告表示,近期,平台接到举报,发现有不法分子在直播间内隐晦发布网络招暗语及联系方式,诱导用户添加其微信QQ等社交账号进行线下交易。快手高如果让你做技术负责人,你会如何从0搭建公司后端技术栈如何您是一名创业公司的负责人,如何从0搭建公司的后端技术栈。今天要说的后台是大后台的概念,放在服务器上的东西都属于后台的东西,比如使用的框架,语言,数据库,服务,操作系统等等。整个孟晚舟回国7个月后,加拿大又以怨报德,禁用中国5G,替美国蹚道在孟晚舟回国7个月后,当地时间5月19日,加拿大政府突然发表声明称,计划禁止使用中国的华为技术和中兴通讯的5G设备。加拿大外交部长兼工业部长商鹏飞表示,已经安装华为与中兴设备的供应特斯拉总裁马斯克一语道破,美国两党都是利益集团控制的木偶马斯克近期说,共和党前总统特朗普的班子,除了特朗普不会做事外,班子成员还能做点事。而民主党拜登的班子一事无成。他说,共和党是邪恶企业和狂热宗教分子控制的政党。而民主党过度的受工会和俄媒中国成为高新技术产业翘楚据俄罗斯自由媒体网5月19日报道,英国金融时报近日刊登一则令读者震惊的新闻中国在超级计算机领域走在世界最前列。中国正在制造最先进目前无出其右的新一代超算。金融时报援引美国知名超算专比亚迪CTB电池车身一体化技术面世首搭于海豹车型新能源汽车的结构创新不断演进,空间利用愈发紧凑,电池车身一体化技术吸引多家企业追赶布局。5月20日,比亚迪发布CTB电池车身一体化技术,将搭载于海豹车型。比亚迪执行副总裁廉玉波介绍什么时候买手机最划算?这三个时间点要抓住,不花一分冤枉钱购买手机的时候,多多少少都会面临,刚买的新机没使用多久,就面临降价的尴尬问题。其实数码产品都是有生命周期的,产品还是要卖出去才能挣钱,所以在特定的时间段里购买手机,会有很大的优惠力