事件驱动型微服务架构的实践 2024-毕成功.docx

事件驱动型微服务架构的实践 2024-毕成功.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

事件驱动型

微服务架构的实践

华泰证券/毕成功

CONTENTS

01

02

经典微服务架构的问题

TheproblemsoftraditionalMS-Arch

事件驱动型架构的方案

ThedesignsofEDA

03

04

事件驱动型架构的问题

TheproblemsofEDA

总结和推荐建议

Summaryandrecommands

01经典微服务架构的问题

这真的是银弹吗?

耦合问题

上下游服务强依赖

服务的稳定性差

要降级处理地方的太多

调用链长

稳定性进一步下降

接口性能下降

数据库依然是中心节点

数据库的稳定性影响大

数据库是整体瓶颈,难扩展

接口膨胀问题

数据操作的场景多调用关系复杂

不同场景技术选型的权衡

金融交易场景低延迟

金融交易场景

低延迟

高稳定性

复杂业务的易维护

高吞吐

VS易扩容快速开发

VS

......

......

02事件驱动型架构的方案

模块化和简单性是软件工程的基石。

——蒂姆·伯纳斯·李

EDA主要特征

服务之间的关系发生变更转变一:异步化

无需同步等待

支持一对多

上下游依赖调用链长

上下游依赖调用链长

转变二:数据自治

自主订阅,本地保存

本地数据调用

{避免了本质上是对数据依赖的解耦!DB依赖接口膨胀

{

避免了

本质上是对数据依赖的解耦!

有状态变更事件的类型与特征

有状态变更

无状态变更

tradeDataQuery

trade

Data

Query

Command

Data驱动不用RPC?

Data驱动

不用RPC?

Request驱动

数据:存哪里

命令对数据的影响模式一:本地缓存

l数据读取加速

l避免对上游的依赖

模式二:旁路集中存储

l获取未缓存的数据

l内存状态的恢复

模式三:可选快照文件

天然的CQRS(CommandQuery

天然的CQRS

(CommandQueryResponsibilitySegregation)

数据:存储结构

流水append-onlymode物化(materialization)upsert

流水

append-onlymode

Data1(v1)Data2(v1)Data3(v1)Data1(v2)Data2(v2)Data1(v3)Data1(v2)Data2(v1)

Data1(v1)Data2(v1)Data3(v1)Data1(v2)Data2(v2)Data1(v3)

Data1(v2)Data2(v1)Data3(v1)

Data1(v2)Data2(v2)Data3(v1)

Data1(v2)Data2(v2)Data3(v1)Data4(v1)

Data1

Data2

Data4

Data1Data2Data1

Data1(v1)Data2(v1)Data3(v1)

用于历史回放用于查询或快速恢复

用于历史回放

数据:怎么获取

原则:用统一的方式获取上游数据,不论是query还是sub(非OLAP场景)

推论一:数据获取都采用SQL描述

l总线的订阅分发模式不支持SQL,需要改造

lquery就是对历史数据的sub

但query历史数据比sub会多一个范围条件推论二:sub和query用同一个SQL

但query历史数据比sub会多一个范围条件

lquery与sub的能力对等,query需要阉割

可用性:内存状态的异常恢复

qs(queryandsubscribe)

即组合查询和订阅的逻辑实现原子语义,用于服务重启后的内存状态恢复。

方式一:从流水恢复

query要增加范围条件

与sub的逻辑完全一致

方式二:从快照恢复

query条件要映射到对应的快照文件

query的数据要定制处理逻辑

可用性:有状态服务的高可用

同步消费复用回放恢复的逻辑

优势:

?主备独立、无交互,运行延迟最低

劣势:

?要保证两边执行的一致性,有些情况只能串行,一方面对开发有侵入性,另外限制了并发能力

?难以对账机制,问题难发现,也难做补偿

?主备切换需依赖总线能力支持

状态同步数据库主备复制的逻辑

优势:

文档评论(0)

4A方案 + 关注
实名认证
服务提供商

擅长策划,|商业地产|住房地产|暖场活动|美陈|圈层活动|嘉年华|市集|生活节|文化节|团建拓展|客户答谢会

1亿VIP精品文档

相关文档