Courier 是基于 Kafka 的企业级消息总线,可发送、消费、监控消息,实现了跨系统的消息通信,并提供了 Java 客户端,支持异构系统接入。
1. 引入 courier-core 依赖
<dependency>
<groupId>io.github.studeyang</groupId>
<artifactId>courier-core</artifactId>
<optional>true</optional>
<!-- 版本由dependencies工程管理 -->
</dependency>
2. 定义一条消息
@Data
@Topic(name = "user")
public class UserCreated extends Event {
private String name;
private Integer age;
private Date createdAt;
}
3. 发送这条消息
public void sendMessage() {
Event event = new UserCreated();
EventPublisher.publish(event);
}
1. 引入 courier-spring-boot-starter 依赖
<dependency>
<groupId>io.github.studeyang</groupId>
<artifactId>courier-spring-boot-starter</artifactId>
<!-- 版本由dependencies工程管理 -->
</dependency>
2. 启动类添加 @EnableMessage
@EnableMessage
@SpringBootApplication
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
}
启动后, 出现banner, 意味着courier启动成功。
3. 定义一个消息接收器
@Component
@EventHandler(topic = "user", consumerGroup = "user")
public class UserMessageHandler {
public void handle(UserCreated userCreated) {
System.out.println("user created: " + userCreated);
}
}
@EventHandler
:表示该类是个消息处理器;topic
:订阅topic
为user
的消息;consumerGroup
:消费组;