Chris Richardson 微服务系列之「事件驱动型微服务」

Chris Richardson 在微服务架构领域的研究非常新颖,我们为大家精选了三篇微服务架构系列文章进行翻译,本文为该系列第一篇:「事件驱动型微服务」。

Chris Richardson 是谁?

640Chris Richardson,是世界著名的软件大师,经典技术著作《 POJOS IN ACTION 》一书的作者,也是 cloudfoundry.com 最初的创始人,他的研究领域包括 Spring、Scala、微服务架构设计、NoSQL 数据库、分布式数据管理、事件驱动的应用编程等。Chris Richardson 与 Martin Fowler、Sam Newman、Adrian Cockcroft 等并称为 世界十大软件架构师。Chris 与家人居住在美国加州奥克兰市的海滨小镇,他定期为企业提供微服务设计培训和实战项目的架构咨询服务。

微服务加速企业创新进程

为了保持竞争优势,企业必须有更快的创新速度。软件是创新的基础,企业需要显著提高软件的开发和部署效率。

1

不仅要部署云端服务,运用灵活策略,还必须用微服务来取代笨重不堪的大型软件应用。

微服务面临的问题:分布式数据管理

2

在开发微服务的过程中,分布式数据管理是必须解决的问题。每个微服务都有其私有的数据库,有时是关系型数据库(SQL),有时是非关系型数据库(NoSQL)。

开发企业事务往往牵涉到多个服务,要想对其进行整体升级优化并非易事。同样,在多个服务之间进行数据查询也很有挑战。

解决之道:事件驱动架构

对于大多数应用而言,要实现微服务和管理分布数据,都需要采用事件驱动架构。在事件驱动架构中,某个服务在发生重要事情的时候,比如,升级了一个业务对象,会发布一个事件,而其他服务订阅这些事件。作为对事件的回应,接收事件的服务通常会更新自身的状态,或许会发布更多事件,让其他服务进行更新。

你可以用事件驱动的方式来保证事务的一致性,并同步更新相关的具体视图。

1)运用事件驱动保证事务的一致性

7

你可以运用事件来跨越多服务并达到事务的一致性。ACID 事务将被多步的事件驱动的终期一致工作流取代。在每一步中,服务更新其数据,然后发布新的事件,触发下一步骤。

2)通过事件更新具体视图

4

你可以运用事件来更新同步一个或多个具体视图,每个视图都对特定的一系列查询进行优化处理。服务通过订阅系统记录更新时发布的事件,来更新同步这些具体视图。

挑战

如君所见,事件驱动架构能解决微服务内在的分布式数据管理问题,但实现事件驱动架构并不容易。欲了解其中的挑战和解决办法?请听下次分解! 

想要与大师面对面吗?想要了解微服务领域最前沿的动态吗?

DaoCloud 现联手世界著名软件大师 Chris Richardson 为您现场布道微服务架构,助力企业应用的成功转型。我们为您推荐由 Chris Richardson 和《 Docker 源码分析》一书的作者孙宏亮共同讲授的 微服务架构及容器技术高端系列课程。

报名链接:http://form.mikecrm.com/f.php?t=dUJI3G

Leave a Reply

Your email address will not be published. Required fields are marked *