AI智能总结
微众银行陈广胜 事件的产生 状态和更新事件 •金融行业:账户余额更新、市场行情更新。•零售行业:库存更新、补货通知。•医疗行业:医疗记录更新、实验室结果通知。•物流行业:库存接收、出库、盘点。•制造行业:设备启动和停止、生产线状态变更。 行为和互动事件 预约和排程事件 安全和合规事•医疗行业:预约确认、提醒和取消。•教育行业:课程安排变动、资源更新。•物流行业:货物发货通知、运输安排变动。 交易和处理事件 事件的处理 事件目标 事件源 云服务、第三方SaaS应用和自定义应用程序。 AWS Lambda、Step Functions、SNS、SQS、Kinesis Streams、HTTP/S API等。 事件存储和重放 无服务器架构 无需管理基础设施,云自动处理扩展和容错。 存档历史事件并在需要时重放。 事件驱动架构(Event-Driven Architecture, EDA) 一种软件架构模式,通过生产、检测、消费和反应事件来驱动应用程序的行为。松耦合 各个组件通过事件进行通信,不直接依赖于其他组件的实现。可以独立开发、测试和部署各个组件,提高系统的灵活性和可维护性。异步处理 事件的生产和消费是异步进行的,提高系统的响应性和吞吐量。适合处理高并发和分布式场景。扩展性 可以通过增加事件生产者和消费者的数量来扩展系统的处理能力。支持横向扩展,适应不断增长的业务需求。实时性 能够实时处理和响应事件,适用于实时数据处理和监控场景。提高系统的敏捷性和快速响应能力。容错性 通过事件溯源和事件日志,可以实现系统的容错和故障恢复。确保系统在部分组件故障时仍能正常运行。 事件驱动架构vs消息驱动架构 消息驱动 事件驱动 事件是数据变化的声明,不需要立即处理,更多用于系统间解耦和反应式编程。 消息是需要处理的任务,通常需要消费者立即处理,用于可靠的任务传输。 优点 优点 消息持久化、高可靠性、适用于需要保证消息处理顺序和可靠性的场景。 灵活的事件路由、无服务器管理、与云服务和SaaS应用集成。 示例应用 示例应用 应用状态变化通知、系统健康监控、跨服务数据同步。 任务队列处理、异步工作流、跨系统的数据传输。 EventMeshvs Service Mesh 关注点 关注点 01 01 侧重于异步通信、事件流管理和实时数据处理,适用于事件驱动架构和实时数据处理场景。 侧重于同步通信、网络流量管理和服务治理,适用于微服务架构中的服务间调用。 实现方式 02 02 通常采用消息中间件或事件总线,通过发布/订阅模式管理事件的生产和消费。 通常采用sidecar代理模式,在每个服务实例旁部署一个代理,统一管理服务间的通信和策略。 同步RPC、RESTFUL通信,服务间直接调用。通信模式 通信模式异步消息传递,事件的生产和消费解耦。 03 03 组件之间紧耦合。耦合度 耦合度组件之间松耦合。 04 04 EventMesh架构 事件路由(Event Routing) 定义:事件路由是指将事件从源传递到正确的目标或服务的过程,通常基于某些路由规则。 主要功能: •目标选择:根据事件的内容或属性,将事件传递到一个或多个指定目标。•路径决定:确定事件的传输路径,包括通过哪些中间节点或服务。•负载分配:在多个目标之间分配事件负载,优化资源利用。 事件路由(Event Routing) 事件过滤(Event Filtering) 定义:事件过滤是指根据预定义的规则或条件,从事件流中筛选出符合特定标准的事件。 主要功能: •筛选和选择:只让符合特定条件的事件通过,阻止其他事件。•条件匹配:根据事件内容、标签、时间、地理位置等条件进行匹配和过滤。•精确控制:在复杂场景中,精确控制哪些事件需要进一步处理,减少不必要的事件处理负担。 事件过滤(Event Filtering) 事件函数(Event Function) 事件函数(Event Function)是事件驱动架构中的核心组件,用于响应特定的事件并执行相应的业务逻辑。事件函数通常是无状态的、短生命周期的函数,通过事件触发执行。 定义 事件函数是指在事件驱动架构中,由特定事件触发执行的函数,用于处理事件并执行相应的操作。 主要功能•事件响应:根据接收到的事件执行相应的处理逻辑。 •无状态:事件函数通常是无状态的,每次执行不依赖于之前的执行状态。•短生命周期:事件函数的执行时间通常较短,快速响应事件。•自动伸缩:根据事件流量自动伸缩,确保高可用性和性能。 事件函数(Event Function) 数据同步(Data Transfer) 定义 事件传输是指将事件从一个系统组件或服务传递到另一个系统组件或服务的过程。它确保事件能够被其他感兴趣的组件接收到并进行处理。 主要功能 •可靠传输:确保事件不丢失,并能准确地传递到目标组件。•低延迟:尽量减少事件在传输过程中的延迟。•顺序保证:在某些场景中,保证事件按发送顺序到达。•扩展性:能够处理高并发的事件传输需求。•灵活路由:根据事件内容或属性,动态路由到不同的目标组件。 数据同步(Data Transfer) 事件存储(Event Storage) 定义 事件存储是指将事件持久化保存到存储系统中,确保事件数据在需要时可以被检索和使用。 主要功能 •持久化:将事件数据可靠地保存到存储介质中,防止数据丢失。•检索:能够高效地查询和检索历史事件。•版本控制:保存事件的不同版本,支持数据回溯和审计。•重放:能够按照时间顺序重放事件,支持系统状态的恢复和调试。•分析:支持对历史事件数据的分析,提供洞察和决策支持。 事件存储(Event Storage) 事件重放(Event Sourcing) 定义 事件重放是指从存储中读取历史事件,并按照事件发生的时间顺序重新处理这些事件,以便恢复系统状态或进行调试和分析。 主要功能 •系统恢复:通过重放事件,恢复系统到某个历史状态。•数据修复:在数据出现错误时,通过回溯事件进行数据修复。•调试与分析:通过回放事件,分析系统行为和调试问题。•审计与合规:提供事件历史记录,以满足审计和合规需求。 基于时间窗口的重放 通过定义时间窗口重放某段时间内的事件,适用于数据回溯和历史数据分析。 通过事件ID定位并重放特定事件,适用于单个事件的回放和调试。 事件重放(Event Sourcing) MQ/DB/S3 etc. 事件网格的应用场景举例 1.微服务集成 应用场景:在微服务架构中,不同的微服务之间需要进行通信和协调,EventBridge可以作为事件总线,实现微服务之间的松耦合和事件驱动的集成。示例:当用户下单时,订单服务生成一个事件,支付服务、库存服务和通知服务可以订阅并处理这个事件,从而完成支付、库存更新和发送通知等操作。 2.自动化工作流 应用场景:EventBridge可以用于构建复杂的自动化工作流,通过事件触发和调度各种任务。示例:一个事件触发数据处理管道,当新的数据上传到S3桶时,触发Lambda函数进行数据处理,然后将结果存储到数据库,并通知用户处理完成。 3.跨应用程序通信 应用场景:跨多个应用程序或服务进行通信和数据传递。示例:在不同的AWS账户或区域之间,通过EventBridge实现事件的跨账户和跨区域传递,用于数据同步和处理。 4.事件驱动的服务器无管理 应用场景:构建无服务器架构,利用EventBridge实现事件驱动的应用程序逻辑。示例:使用EventBridge触发AWS Lambda函数来处理实时事件,如IoT设备数据处理、用户活动跟踪等。 5.安全和合规性监控 应用场景:监控和响应安全事件和合规性事件。示例:利用EventBridge接收来自AWS CloudTrail的安全事件日志,并触发相应的响应措施,如发送警报、触发自动化修复流程等。 6.实时数据处理 应用场景:处理和响应实时数据流。示例:使用EventBridge接收和处理来自传感器或实时数据流的事件,并将处理结果存储或发送到其他服务。 7.跨平台集成 应用场景:实现不同平台和系统之间的集成。示例:接收来自SaaS应用程序(如Salesforce、Zendesk等)的事件,并触发在AWS上的操作。 SaaS组合式应用新趋势 “By 2024, 30% of digital commerce organizations will use packaged business capabilities (PBCs)to construct their application experiences.” Gartner 2020 什么是组合式应用(PBC)? •PBC是具有明确业务能力的多个数据模型,微服务,API应用,和事件通道的集成。•完整实现的PBC是功能完全,能独立完成业务需求,不需要外部依赖。•多个PBC以积木方式建立企业解决方案,呈现完整统一的用户体验。来源https://www.elasticpath.com/blog/what-are-packaged-business-capablities SaaS组合式应用新趋势 PBC的价值 PBC的挑战 •商业驱动的SaaS应用,真正解决每个业务问题•不锁定单一供应商,采购和开发最好的应用服务•低代码方式集成应用,敏捷上线,高效迭代•对底层技术封装,屏蔽技术实现,更容易技术更新 •应用集成缺乏统一标准 •应用协议多样化:HTTP,TCP,MQTT,AMQP等等 •应用数据模型多样化:OpenAPI,AsyncAPI SaaS组合式应用新趋势 •基于线程池的多线程并发和异步调用,提高请求并发量•针对事件生产和消费对性能的要求,独立配置线程池参数•事件消费采用负载均衡和重试机制,保证事件消费成功•对事件进行校验、过滤、路由和转换,支持高级事件处理能力•作为事件总线,通过插件化支持多种底层事件存储 EventMesh在微众银行的应用实践 EventMesh在微众的应用实践EventMesh在微众银行的应用实践 微众银行分布式多活架构依赖分布式消息总线进行通信和服务治理,经过多年实践和探索,演化出EventMesh,目前它作为分布式消息总线的重要组成部分,在云原生微服务架构下发挥更大的作用。 信创支持 应用规模 ①在5个IDC部署100多个节点②支撑10多个业务产品部,50多个子系统,日处理消息量亿级,TPS峰值达万级 ①海光X86-64②华为ARM-V8③飞腾ARM-V8 应用场景 ①事件驱动微服务调用②日志采集上报③跨网络区域流量复制④异地多活数据同步 EventMesh在华为云的应用实践EventMesh在华为云的应用实践 自定义事件源为微服务应用 EventMesh在华为云的应用实践 事件网格(EventGrid)是华为云中间件在云原生时代推出的新一代无服务器事件总线 •以EventMesh作为运行时引擎•增加了华为自需的特性,包括可视化仪表盘、高级事件过滤、事件查询跟踪、死信存储等•事件驱动方式对接华为云服务,微服务应用和SaaS应用•为华为云创造更多应用场景,丰富华为云的开发者生态 EventMesh在华为云的应用实践 EventGrid在华为云最重要的能力是通过连接各个云服务来构建 EDA(Event-driven Architectures)事件驱动架构,以达到服务间的解耦。 松 耦 合 , 完 成 服 务 间 的 解 耦处 理 结 果 无 预 期 ;一 次 对 接 , 到 处 抵 达 ;统 一 的C l o u d E v e n t s标 准低 码 化 配 置 , 上 线 周 期 更 短 EventMesh在华为云的应用实践EventMesh在华为云的应用实践 •EventGrid承接R