美文网首页
springboot常用starter⑫-rabbitmq

springboot常用starter⑫-rabbitmq

作者: 一个好汉 | 来源:发表于2021-07-16 22:33 被阅读0次

rabbitmq

RabbitMQ 是部署最广泛的开源消息代理
RabbitMQ 是一个消息代理:它接受和转发消息
您可以将其视为邮局:当您将要投递的邮件放入邮箱时,您可以确定 Mailperson 先生或女士最终会将邮件投递给您的收件人
在这个比喻中,RabbitMQ 是一个邮箱、一个邮局和一个邮递员

RabbitMQ 和邮局之间的主要区别在于它不处理纸张,而是接受、存储和转发二进制数据块 -消息
RabbitMQ可以用于开发异步接口
大名鼎鼎的RabbitMQ当然不止如此
具体可参见:
消息队列、消息代理和消息中间件的区别和联系

集成rabbitmq

  1. 首先你得有个rabbitmq 可以本地安装 也可以在docker上安装 这都随你 在docker上安装 rabbitmq
docker run -d --hostname rabbit-host --name rabbitmq -e RABBITMQ_DEFAULT_USER=hong -e RABBITMQ_DEFAULT_PASS=82576 -p 15672:15672 -p 9125:5672 rabbitmq:3-management

如果你碰到端口占用的情况 docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:9001: bind: An attempt was
made to access a socket in a way forbidden by its access permissions. 可以先通过netsh interface ipv4 show excludedportrange
protocol=tcp查看不允许你用的端口 然后你换前面那个端口就可以了

C:\WINDOWS\system32>netsh interface ipv4 show excludedportrange protocol=tcp

协议 tcp 端口排除范围

开始端口    结束端口
----------    --------
        80          80
      1024        1123
      1124        1223
      1224        1323
      1324        1423
      1524        1623
      1679        1778
      1795        1894
      4924        5023
      5041        5140
      5141        5240
      5241        5340
      5357        5357
      5358        5457
      5665        5764
      5765        5864
      8925        9024
      9025        9124
     50000       50059     *

* - 管理的端口排除。


C:\WINDOWS\system32>docker run -d --hostname rabbit-host --name rabbitmq -e RABBITMQ_DEFAULT_USER=hong -e RABBITMQ_DEFAULT_PASS=82576 -p 15672:15672 -p 9125:5672 rabbitmq:3-management
52d3204fba5811234ac56fb7b158577a9983b8dd0fc6cc42756a9de4995afaf7
  1. 加入你rabbitmq的starter
<!-- RabbitMQ;)-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
        <!-- RabbitMQ:~ -->
  1. 配置你的rabbitmq信息
# rabbitmq相关配置
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=xxx
spring.rabbitmq.password=xxx
  1. 配置rabbitmq队列
/**
 * rabbitmq 配置队列
 */
@Configuration
public class RabbitConfig {

    /**
     * 定义一个名为:hong 的队列
     * @return org.springframework.amqp.core.Queue
     */
    @Bean
    public Queue hongQueue() {
        return new Queue("hong");
    }
}
  1. 配置队列处理
/**
 * 消息队列处理
 */
@Component
@RabbitListener(queues = "hong")
public class Consumer {

    Logger log = LoggerFactory.getLogger(Consumer.class);

    /**
     * @RabbitHandler 指定消息的处理方法
     * @param message
     */
    @RabbitHandler
    public void process(String message) {
        log.info("接收的消息为: {}", message);
    }
}
  1. 启动验证

http://127.0.0.1:9000/rabbit/hello?msg=hello,rabbitmq

{"msg":"hello,rabbitmq已发送","code":"200"}

rabbit-message-rate rabbit-success-log

相关文章

网友评论

      本文标题:springboot常用starter⑫-rabbitmq

      本文链接:https://www.haomeiwen.com/subject/aopmultx.html