Skip to content

Courier 是基于 Kafka 的一款企业级消息总线服务,可发送、消费、监控消息,实现了跨系统的消息通信,并提供了 Java 客户端,支持异构系统接入。

Notifications You must be signed in to change notification settings

studeyang/courier

Repository files navigation

01 简介

Courier 是基于 Kafka 的企业级消息总线,可发送、消费、监控消息,实现了跨系统的消息通信,并提供了 Java 客户端,支持异构系统接入。

02 架构

2.1 生产消费

生产消费

2.2 消息管理中心

消息管理中心

2.3 部署架构

部署架构

03 快速开始

3.1 发送一条消息

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);
}

3.2 接收一条消息

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启动成功。

image-20201113101624074

3. 定义一个消息接收器

@Component
@EventHandler(topic = "user", consumerGroup = "user")
public class UserMessageHandler {
 
    public void handle(UserCreated userCreated) {
        System.out.println("user created: " + userCreated);
    }

}
  • @EventHandler:表示该类是个消息处理器;
  • topic:订阅topicuser的消息;
  • consumerGroup:消费组;

About

Courier 是基于 Kafka 的一款企业级消息总线服务,可发送、消费、监控消息,实现了跨系统的消息通信,并提供了 Java 客户端,支持异构系统接入。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published