1 Star 0 Fork 1

kancy / spring-boot-starter-stream-rabbit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

spring-boot-starter-stream-rabbit

介绍

spring-boot-starter-stream-rabbit

  • 自定义消息:ChannelMessage
  • 自定义消息转换器:MessageConverter
  • 自定义异常处理器:ExceptionHandler
  • 自定义消息处理器:MessageHandler

使用说明

1. 引入依赖

<dependency>
    <groupId>com.kancy</groupId>
    <artifactId>spring-boot-starter-stream-rabbit</artifactId>
    <version>${version}</version>
</dependency>

2. 添加配置

  • 定义RabbitMq的基本内容:交换机,队列,绑定路由
#定义命名空间
stream.rabbit.project=test

#定义交换机
stream.rabbit.exchange.schedule.name=test.schedule
stream.rabbit.exchange.schedule.type=direct

#定义队列,并且绑定交换机
stream.rabbit.binding-queue.polling.name=test.schedule.polling
stream.rabbit.binding-queue.polling.exchange-name=test.schedule
stream.rabbit.binding-queue.polling.routing-key=polling

#定义队列,并且绑定交换机
stream.rabbit.binding-queue.five-seconds.name=test.schedule.five-seconds
stream.rabbit.binding-queue.five-seconds.exchange-name=test.schedule
stream.rabbit.binding-queue.five-seconds.routing-key=five-seconds
stream.rabbit.binding-queue.five-seconds.dlx-exchange-name=test.schedule
stream.rabbit.binding-queue.five-seconds.dlx-routing-key=polling
stream.rabbit.binding-queue.five-seconds.ttl=5s

#配置Rabbitmq连接信息
spring.rabbitmq.host=kancy.top
spring.rabbitmq.port=5672
spring.rabbitmq.username=root
spring.rabbitmq.password=****
spring.rabbitmq.virtual-host=/test
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.publisher-returns=true
spring.rabbitmq.template.mandatory=true
  • 定义channel
stream.rabbit:
  channel:
    polling:
      binding-key: polling
      concurrency: 2
      consumer:
        user-message:
          message-handler: user
    five-seconds:
      binding-key: five-seconds

3.自定义ChannelMessage

/**
 * PollingChannelMessage
 *
 * @author kancy
 * @date 2020/3/8 16:51
 */
@ChannelKey("polling")
public class PollingChannelMessage extends AbstractChannelMessage {

}

4.定义对应消息的处理器

/**
 * UserMessageHandler
 *
 * @author kancy
 * @date 2020/3/8 20:22
 */
@Component
public class UserMessageHandler implements MessageHandler<User> {
    private static Logger log = LoggerFactory.getLogger(UserMessageHandler.class);
    /**
     * 监听消息
     *
     * @param payload
     * @throws Exception
     */
    @Override
    public void onMessage(User payload) {
        log.info("接收信息:{}" , payload);
    }
}

5.发送消息

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {RabbitMessageChannelAutoConfiguration.class, RabbitAutoConfiguration.class, UserMessageHandler.class})
@ActiveProfiles({"test"})
public class MessageChannelServiceTests {

    @Autowired
    private MessageChannelService messageChannelService;

    @Test
    public void sendPollingChannelMessageTest(){
        ChannelMessage channelMessage = new PollingChannelMessage();
        channelMessage.setMessageType("user-message");
        channelMessage.setPayload(new User());
        messageChannelService.sendMessage(channelMessage);
    }

    @Test
    public void sendMessageTest(){
        // 手动指定channelKey
        String channelKey = "five-seconds";
        ChannelMessage channelMessage = new SimpleChannelMessage(channelKey);
        channelMessage.setMessageType("user-message");
        channelMessage.setPayload(new User());
        messageChannelService.sendMessage(channelMessage);
    }
}

空文件

简介

spring-boot-starter-stream-rabbit 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/kancy666/spring-boot-starter-stream-rabbit.git
git@gitee.com:kancy666/spring-boot-starter-stream-rabbit.git
kancy666
spring-boot-starter-stream-rabbit
spring-boot-starter-stream-rabbit
master

搜索帮助