
前言
本书是我在踏入事件驱动型微服务世界时所希望拥有的书。它凝结了许多人的智慧,内容源自我的个人经历、与他人的讨论,以及无数与事件驱动型微服务相关的博客、图书、帖子、讲座、会议和文档。我发现,在讲到事件驱动架构时,我读过的许多作品要么仅顺带提及,要么深度不够。有些作品只涉及了此架构的某一个方面,虽然有帮助,但充其量只算“一小块拼图”。其他一些作品则显得简单且态度不屑,它们声称事件驱动系统实际上只对“一个系统直接发送异步消息给另一个系统”这样的场景有用处,可以替代同步的“请求–响应”系统。正如本书所要详细介绍的,事件驱动架构远不止如此。
我们所使用的工具深刻地塑造和影响了我们的发明。事件驱动型微服务(event-driven microservice,EDM)架构是由一系列最近才变得简单可行的技术实现的。分布式、容错、高容量和高速的事件代理支撑了本书所要介绍的架构和设计模式。这些数据解决方案基于大数据与近乎实时的事件处理需求的融合。微服务得益于容器化和计算资源获取的便利性,这使得对成千上万的微服务进行托管、伸缩和管理变得简单。
支撑事件驱动型微服务的技术对于如何思考和解决问题有着深远的影响,也深深地影响着企业和组织的结构。事件驱动型微服务改变了企业的工作方式、问题的解决方式,以及团队、人员和业务单元的沟通方式。这些工具为你提供了一种全新的做事方式,而这种方式直到最近才变得可行。
排版约定
本书使用下列排版约定。
黑体字
表示新术语或重点强调的内容。
等宽字体(constant width)
表示程序片段,以及正文中出现的变量名、函数名、数据库、数据类型、环境变量、语句和关键字等。
等宽粗体(constant width bold)
表示应该由用户输入的命令或其他文本。
等宽斜体(constant width italic)
表示应该由用户输入的值或根据上下文确定的值替换的文本。
该图标表示提示或建议。
该图标表示一般性注记。
该图标表示警告或警示。
O'Reilly在线学习平台(O'Reilly Online Learning)
40 多年来,O'Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的由专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O'Reilly 的在线学习平台让你能够按需访问现场培训课程、深入的学习路径、交互式编程环境,以及 O'Reilly 和 200 多家其他出版商提供的大量文本资源和视频资源。有关的更多信息,请访问 https://www.oreilly.com。
联系我们
请把对本书的评价和问题发给出版社。
美国:
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)
奥莱利技术咨询(北京)有限公司
O'Reilly 的每一本书都有专属网页,你可以在那儿找到本书的相关信息,包括勘误表 1、示例代码以及其他信息。本书的网页是 https://oreil.ly/building-event-driven-microservices。
1也可以通过图灵社区本书主页提交中文版勘误。——编者注
对于本书的评论和技术性问题,请发送电子邮件到 bookquestions@oreilly.com。
要了解更多 O'Reilly 图书、培训课程、会议和新闻的信息,请访问以下网站:https://www.oreilly.com。
我们在 Facebook 的地址如下:http://facebook.com/oreilly。
请关注我们的 Twitter 动态:http://twitter.com/oreillymedia。
我们的 YouTube 视频地址如下:http://www.youtube.com/oreillymedia。
致谢
我想对 Confluent 公司的员工表示敬意和感谢,他们不仅发明了 Apache Kafka,而且是最早一批真正理解事件驱动架构的人。Ben Stopford 是 Confluent 公司的首席技术专家,他为本书提供了充分且富有价值的反馈,我为此感到荣幸。K. Scott Morrison 是 PHEMI Systems 公司的首席技术官,他也为本书提供了有价值的见解、反馈和建议。我要感谢 Scott 和 Ben 为本书提供的帮助。作为最初的审校者和技术专家,他们帮助我改进想法,敦促我提升内容质量,阻止我传播错误信息,并帮助我讲好事件驱动架构的故事。
我也要感谢我的朋友 Justin Tokarchuk、Gary Graham 和 Nick Green,他们校对和编辑了我的很多草稿。跟 Scott 和 Ben 一样,他们帮我找出了草稿中的重大缺陷,给出了改进建议,并且提供了与本书内容相关的见解和个人经验。
我还要感谢 O'Reilly 的伙伴们为我提供了各种各样的帮助。在这段经历中,我与许多优秀的人共事。我要特别感谢本书的编辑 Corbin Collins,他支持我度过了许多艰难的时刻并帮助我跟上进度。在这个项目中,他是伟大的合作者,感谢他为支持我所做出的努力。
文字编辑 Rachel Monaghan 让我想起了自己的高中时代。那时,我的论文总被划上红线退回。我非常感激她的敏锐眼光和对英语的了解,是她使本书更易于阅读和理解。感谢你,Rachel。
Christopher Faucher 给予了我非常多的耐心,他为我提供了很棒的反馈,毫无怨言地容忍我在最后时刻对书的内容做出一些不寻常的改动。感谢你,Chris。
作为内容策略副总裁,Mike Loukides 是我在 O'Reilly 最早接触的一位联系人。当我带着冗长的写作提议找到他时,他耐心地与我探讨,帮我重新提炼要点和精炼内容,使之成为今天摆在你面前的这本书。我很感激他花时间与我一起工作,并推进这项工作。我已尽最大努力听从他的告诫,以避免出版一部篇幅堪比词典的著作。
致我的父母,感谢你们对我所写内容的赞赏,还要感谢你们给予我的爱和支持。我的父亲向我介绍了 Marshall McLuhan,虽然我基本上没有读过他的作品,但我深深地认同他对媒介如何影响信息的评价,这也改变了我看待和评估系统架构的方式。
最后,感谢所有支持我和本书出版工作的人。许多人通过自己的方式来支持我,包括对话、博客文章、演示文稿、开源代码、轶事、个人经历、故事和想到哪儿就说到哪儿的抱怨。谢谢你们!
撰写本书,既有让我愉快的时候,也有让我沮丧的时候。曾经有很多次,我骂自己自讨苦吃,但谢天谢地,更多的时候,我为这项工作感到欣慰。亲爱的读者,希望本书能在某种程度上帮助你学习和成长。
更多信息
扫描下方二维码,即可获取电子书相关信息及读者群通道入口。