纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

微服务架构的数据设计模式

10月10日 莫思归投稿
  最近参与公司项目研发,在其中发现对于数据的管理存在一些小问题,根据以往经验,在这里记录下微服务数据设计模式。
  微服务架构中的服务是松耦合的,可以独立开发、部署和扩展。每个微服务都需要不同类型的数据和存储方式,也因为这样每个微服务都有自己的数据库。一、每个服务的数据库
  每个微服务都有自己的数据库,可以自由选择如何管理数据。1。1每个服务都有一个数据库的好处松耦合,各自服务可以更加专注自己的专业领域自由选择数据库类型,如MySQL等RDBMS、Cassandra等宽列数据库、MongoDB等文档数据库、Redis等键值存储和Neo4J等图形数据库。
  是否需要为每个服务使用不同的数据库服务器?这不是一个硬性要求。让我们看看我们能做些什么。1。2如果您使用的是RDMS,那么就包括以下特性:专用表每个服务拥有一组表,只能由该服务访问。专用数据库架构每个服务都有一个私有的数据库架构。专用数据库服务器每个服务都有自己的数据库服务器。1。3每个服务都有一个数据库的挑战
  需要连接多个数据库的查询以下数据模式可以克服这一挑战。事件溯源API组成命令查询职责分离(CQRS)
  跨多个数据库事务为了解决这个问题,我们可以使用Saga模式。二、事件溯源
  通过事件溯源,业务实体的状态由一系列状态变化的事件跟踪。每当业务实体的状态发生变化时,都会将新事件添加到事件列表中。由于保存事件是一个单一的操作,它本质上是原子的。通过重放事件,应用程序重建实体的当前状态。
  应用程序将事件保存在事件存储中,事件存储是事件数据库。可以使用其API从存储中添加和检索事件。事件存储也充当消息代理。服务可以通过其API订阅事件。当服务在事件存储中保存一个事件时,它会发送给所有感兴趣的订阅者。当实体有大量事件时,应用程序可以定期保存实体当前状态的快照以优化加载。应用程序查找最近的快照以及自该快照以来发生的事件以重建当前状态。这减少了要重播的事件的数量。
  2。1事件溯源的好处使用它解决了事件驱动架构的关键挑战之一,并使得在状态变化时可靠地发布事件。避免了对象关系阻抗不匹配问题,持久化事件而不是域对象。对实体提供100可靠的审计日志。允许执行确定实体在任何时间点的状态的时间查询。基于事件溯源的业务逻辑涉及交换事件的松散耦合实体。使从单体应用程序迁移到微服务架构变得容易得多。2。2事件溯源的缺点有一定学习成本,目前还是一种不太成熟的技术。查询事件存储很困难,需要一个典型的查询来重建实体状态。可能会导致低效和复杂的查询。因此,应用程序必须使用命令查询职责分离(CQRS)来实现查询。反过来,这意味着应用程序必须处理最终一致的数据。三、API组成
  您可以使用API组合模式实现从多个服务中检索数据的查询操作。在这个模式中,通过调用拥有数据的服务然后组合结果来实现查询操作。
  3。1API组合的好处
  在微服务架构中查询数据的一种便捷方式。3。2API组合的缺点
  有时,查询会导致大型数据集的低效内存连接。四、命令查询职责分离(CQRS)
  RDBMS通常用作记录事务系统和文本搜索数据库,例如用于文本搜索查询的Elasticsearch或Solr。一些应用程序通过同时写入两者来保持数据库同步。其他人定期将数据从RDBMS复制到文本搜索引擎。基于此架构构建的应用程序利用了多个数据库的优势、RDBMS的事务属性以及文本数据库的查询能力。CQRS概括了这种架构。
  微服务架构在实现查询时面临三个常见挑战。使用API组合模式检索分散在多个服务中的数据,从而导致成本高昂且效率低下的内存连接。数据以不能有效支持拥有数据的服务所需查询的格式或数据库中存储。分离关注点意味着拥有数据的服务不应该负责实现查询操作。
  这三个问题都可以通过使用CQRS模式来解决。
  CQRS的主要目标是分离或分离关注点。因此,持久数据模型分为两部分:命令端和查询端。
  创建、更新和删除操作由命令端模块和数据模型实现。查询由查询端模块和数据模型实现。通过订阅命令行发布的事件,查询端保持其数据模型与命令端同步
  4。1CQRS的好处实现高效查询实现如果您使用API组合模式来实现查询,您可能会遇到大型数据集的高成本、低效的内存连接。对于这些查询,使用预先来自连接两个或更多服务数据的CQRS视图更有效。能够有效实现多种查询通常很难使用单一持久数据模型来支持所有查询。在CQRS中,定义一个或多个视图有效地实现特定查询,消除了单个数据存储的限制。实现基于事件溯源的应用程序中查询CQRS还克服了事件溯源的一个重要限制。事件存储仅支持基于主键的查询。CQRS模式通过定义一个或多个聚合视图来解决此限制,这些视图通过订阅由事件源聚合发布的事件流来保持最新。关注点分离改进域模型和持久数据模型不支持命令和查询。CQRS将服务的命令和查询端分离为单独的代码模块和数据库模式。4。2CQRS的缺点更复杂的架构为了更新和查询视图,开发者需要编写查询端服务。应用程序可能使用不同类型的数据库,这增加了开发人员和DevOps的复杂性。处理复制延迟在从命令端发布事件到由查询端处理事件以及更新视图之间存在延迟。五、Saga模式
  使用sagas,您可以在不使用分布式事务的情况下保持微服务架构中数据的一致性。您为跨多个服务更新数据的每个命令定义一个saga。saga是一系列本地事务。本地事务使用ACID事务框架更新单个服务中的数据。
  Sagas利用补偿事务来回滚更改。假设saga的第n个交易失败。必须撤消前(n1)个事务。结果,总共(n1)个补偿事务将被启动以以相反的顺序回滚更改。5。1Saga协调
  为了实现一个saga,它需要逻辑来协调其步骤。一旦系统命令启动了一个saga,协调逻辑必须选择并指示第一个saga执行本地事务。一旦该事务完成,编排协调就会选择并调用下一个saga参与者。这个过程一直持续到传奇完成。如果本地事务失败,saga必须以相反的顺序执行补偿事务。5。2有几种方法可以构建saga的协调逻辑:
  编排:在saga的参与者之间分配决策和排序。他们主要通过交换事件进行通信。
  5。2。1基于编排的saga优势简单性当创建、更新或删除业务对象时,服务会发布事件。简单依赖关系不引入循环依赖关系。松耦合服务实现由编排器调用的API,因此它不需要知道saga参与者发布的事件。简化业务逻辑在saga编排器中,saga协调逻辑是本地化的。领域对象不知道它们所涉及的sagas。5。2。2基于编排的缺点更难理解编排将saga的实现分布在服务之间,每个服务都是独立的这就需要每个管理对每个服务都需要了解。服务之间的循环依赖saga参与者订阅彼此的事件,这通常会产生循环依赖。紧密耦合的风险saga的参与者必须订阅所有影响他们的事件。
  编排一个saga的协调逻辑应该集中在一个saga编排器类中。在saga期间,编排器向参与者发送命令消息,告诉他们应该执行哪些操作。
投诉 评论

赵雅芝的3个儿子长子45岁次子42岁,小儿子35岁,个个让她头条创作挑战赛文李培树编辑孙大圣赵雅芝已经68岁了,因为保养得当、心态好,现在的她看起来像只有三四十岁的样子,因此她被很多网友称为不老女神。与很多同时代……去当阳访长坂坡拜关陵庙游玉泉山《沈涛走中国》摄影选集江汉平原篇(9)当阳市当阳市位于江汉平原与鄂西山地接合部。三国文化、佛教文化、山水文化在此交融。长坂坡,即三国时期的古战场。三国人物赵子……A股上市公司百强市总数达4534家,北上深杭苏位居前五榜单说明:榜单以中国境内339个地级及以上城市(直辖市、副省级市、地级市、盟、地区)为研究对象,以A股上市公司数量为指标,最终得出百强市榜单。数据统计时间截止到2022年11月……中超再现少林飞腿前国脚发言惹众怒黄牌都够不上在中超第六轮,大连人对阵河南嵩山龙门的比赛中,河南队球员马兴煜在比赛第25分钟就领到红牌下场。比赛第23分钟,马兴煜在一次拼抢当中踢到了何宇鹏背部,经var提示后主裁判在……高性能双麦阵列拾音束语音降噪消回音处理芯片NR2048NR2048芯片采用先进的语音处理技术,芯片拥有8k16k频率采样,旨在嘈杂环境中改进语音通话的清晰度,以及有助于改善语音识别命令输入NR2048芯片拥有先进的双麦克风阵……微服务架构的数据设计模式最近参与公司项目研发,在其中发现对于数据的管理存在一些小问题,根据以往经验,在这里记录下微服务数据设计模式。微服务架构中的服务是松耦合的,可以独立开发、部署和扩展。每个微……一年只开一季,泰国水上列车爆红【环球时报综合报道】由于季风过后水位上升,泰国迎来乘坐漂浮列车的观光时节。据路透社7日报道,这辆水上列车由曼谷华南蓬火车站开往华富里巴沙春拉西水坝。而这条铁路也成为泰国唯……山东足协戴琳涉赌事件若有需要会调查!体育局称管不到俱乐部在山东泰山的球员戴琳涉赌事件发酵之后,有山东媒体联系到了山东体育局和山东足协,山东体育局方面表示,泰山俱乐部并非其下属单位,因此戴琳事件暂时还无法插手,山东足协方面则表示,如果……麻婆豆腐的家常做法,香辣入味,麻辣鲜嫩真下饭,上桌一会就吃光麻婆豆腐,很多人都爱吃吧,香辣好吃,营养丰富,也是川菜里面的一道特色菜之一,川菜馆必点的菜吧,那么怎么做才和饭馆一样好吃呢,下面我来教大家一起学习麻婆豆腐的家常做法吧,……五矿期货湖南衡阳市猪饲料成本指数保险期货项目完成对冲中证网讯(记者李莉)4月18日,中国证券报记者获悉,五矿期货有限公司联合中国太平洋财产保险股份有限公司湖南分公司首次在湖南衡阳开展了猪饲料成本指数保险期货项目,于2023年4月……河南老辈人待客最硬的4道菜,实惠好吃有面子,如今却遭冷落河南人老辈人待客最硬的5道菜,实惠好吃有面子,如今却遭冷落。亲爱的好朋友们,大家好,我是大厨江一舟,今天又到了,给大家分享美食的时刻了,你们准备好了吗?河南的美食文化可是……33,德布劳内传球失误,哈兰德造点马赫雷斯绝平,曼城逼平巴萨西甲豪门巴萨与英超豪门曼城迎来了一场慈善赛的较量,比赛的场地是在诺坎普球场,目的是为了给渐冻症相关组织筹集资金,以便进一步研究该种疾病,而这场比赛已经卖出了50000多张门票,……
祸从口出,巴黎教练不好当啊,加尔杰快吸取图赫尔的教训吧巴黎圣日耳曼的主教练加尔杰惹上了麻烦。作为法甲豪门的球员和主教练,言行举止必须慎之又慎。在例行的巴黎赛前发布会,好事的记者问是否会用火车替代飞机时,姆巴佩笑场了,因为法国……家里有糯米粉,可以试试这个做法,外酥里糯,鲜香又多汁前段时间,我发过一个红糖糯米小饼,有朋友问可不可以做成肉馅的。说实话,关于糯米粉的吃法,我已经出过很多食谱了,但大都是甜味的。总觉得软糯的食物还是和甜味更配。不过既然有朋……中国遍地是机遇,我们侨商不能错过图为工人在浙江侨企泰普森实业集团生产车间中忙碌。受访企业供图立春之后忙开工。中国经济的浓浓春意正向全球涌动,利好消息接踵而至,眼光敏锐的国内外侨商竞相抢抓商机浙江制……武汉坐地铁赏樱花攻略来了!三月伊始的武汉正是樱花如约绽放的季节云霞般绚烂柔美的花瓣沐浴暖阳令人心醉这个周末天气晴好踏春赏樱正当时搭乘地铁出行低碳环保方便快捷……一哥谈詹姆斯追帽那是我听过最大的一声boom那封盖很漂亮直播吧3月4日讯近日,勇士球员伊戈达拉在《ClubShayShay》播客节目中谈到了詹姆斯的追帽。伊戈达拉表示:我抢下了篮板,我开始推转换,我传给了库里,就像我们在训练中……打工人买不起iPhone14Pro,没关系,这3款骁龙8旗舰iPhone14Pro虽好,但是价格太高了,7999元的起售价也不是每一位打工人都买得起,甚至可能要付出一个月或两个月的工资,仔细想想真的划算吗?要知道现在的国产手机已经很棒了……探访平山县省文保单位沕沕水水电站旧址初秋时节,驱车驶入太行山深处,日照强烈,也能感受到山风带来的丝丝凉意。从市区开车约一个半小时,就来到了位于石家庄市平山县西南部、晋冀交界的沕沕水生态风景区,这里集自然风光、人文……除了35秒13分,剩下的全是遗憾97年进入NBA,被一支远在加拿大的球队选中,遗憾的是这支球队在98年选中了他的表哥卡特,他们把卡特当成了乔丹,而没有把他当成皮蓬。00年,他选择离开加拿大,去往家乡奥兰……雄鹿核心伤退!阿德垫脚米德尔顿太危险,强行致敬字母哥?雄鹿核心伤退!阿德垫脚米德尔顿太危险,强行致敬字母哥?北京时间10月20日,NBA揭幕战正式开打,首场比赛雄鹿主场迎战篮网,赛前雄鹿进行了总冠军戒指的颁奖仪式,拿到总冠军……研究证实孕期4种行为损伤胎儿智商,孕妈别再贪图一时享乐本文原创丨乖妈网络上流传着这样一种说法,男孩的智商完全遗传妈妈,女孩的智商则遗传父母各一半,这是真的吗?胎儿的智商水平是与生俱来的吗?针对胎儿的智商高低,国内外科学……哪来的自信?陈戌源我给自己打9分,骂我的人都将会感谢我近日,中国足协主席陈戌源接受沪媒《上观新闻》的采访,其中谈到为自己打分时,竟出人意料地给自己打了9分,敢问满分是100分吗?以下为采访内容:关于职业队中性名称……名记交易前杜兰特明确告知蔡崇信和马克斯他优先考虑去太阳直播吧2月9日讯此前据名记Woj报道,杜兰特被篮网交易至太阳,一同被交易走的还有TJ沃伦,而篮网从太阳得到了布里奇斯、卡梅隆约翰逊、克劳德、四个首轮签和一个首轮签的互换权。……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形