7、微服务通信与客户端模式实践

微服务通信与客户端模式实践

1. 事件驱动的微服务构建

在服务间通信中,以往常见的方式是一个服务直接调用一个或多个其他服务。但当我们需要对系统中的事件做出反应时,比如发送邮件、通知或更新分析存储,采用事件驱动架构更为合适。这种架构下,一个服务向代理发送消息,另一个应用消费该消息并执行操作。它具有解耦发布者和消费者的优点,还能将潜在的高成本操作从用户请求的关键路径中移除,并且具备一定的容错能力。

Apache Kafka 是一个开源的流处理平台,本质上是一个分布式事务日志架构的事件代理。简单来说,Kafka 是一个分布式事件存储,允许我们将消息发布到名为主题的类别中,其他进程可以从主题中消费消息并做出响应。

以一个虚构的消息应用为例,当用户向另一个用户发送消息时,我们希望以多种方式通知接收者。我们将修改消息服务,使其向名为 messages 的 Kafka 主题发布事件,并构建一个消费者应用来监听该主题的事件并发送通知。

以下是具体的操作步骤:
1. 准备环境 :需要运行并可访问 Kafka 和 ZooKeeper。假设 Kafka 在端口 9092 运行单个代理,ZooKeeper 在端口 2181 运行单个实例。
2. 消息生产者配置
- 添加依赖 :打开 message-service 项目,修改 build.gradle 文件,添加 spring-kafka 项目依赖:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值