事件驱动微服务与通信数据合同全解析
1. 事件驱动微服务基础
1.1 单一事实来源
在事件驱动的微服务架构中,持久且不可变的日志为单一事实来源提供了存储机制。事件代理成为服务消费和生产数据的唯一位置,确保每个消费者都能获得相同的数据副本。采用事件代理作为单一事实来源需要组织进行文化转变。以往团队可能直接编写 SQL 查询来访问单体应用数据库中的数据,现在则必须将单体应用的数据发布到事件代理。管理单体应用的开发人员要确保所产生的数据完全准确,因为事件流与单体应用数据库之间的任何不一致都将被视为生产团队的失败。数据消费者不再直接与单体应用耦合,而是直接从事件流中消费数据。
1.2 大规模管理微服务
随着微服务数量的增加,管理难度也会不断增大。每个微服务都需要特定的计算资源、数据存储、配置、环境变量等。容器化和虚拟化以及相关的管理系统是实现大规模管理微服务的常见方法。
- 容器化 :容器通过共享内核模型利用现有的主机操作系统,将应用程序相互隔离。它能提供虚拟机的大部分优点,成本却低得多,启动时间快,资源开销小。但容器化应用必须能在主机操作系统上运行,且由于容器共享主机操作系统的访问权限,安全是一个主要问题。
- 虚拟化 :虚拟机提供了完全隔离的环境,每个实例都有独立的操作系统和虚拟化硬件。虽然安全性更高,但历史上成本较高,启动时间慢,系统占用空间大。不过,目前有一些举措正在使虚拟机更便宜、更高效,如 Google 的 gVisor、Amazon 的 Firecracker 和 Kata Containers 等。
超级会员免费看
订阅专栏 解锁全文
169万+

被折叠的 条评论
为什么被折叠?



