首页 > 其他分享 >rabbitmq

rabbitmq

时间:2022-11-29 19:36:45浏览次数:38  
标签:String SimpleSender private class rabbitmq public

title: rabbitmq
date: 2022-11-29 19:02:37
tags:

使用

pom

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

加配置

spring:
  rabbitmq:
    host: 192.168.1.160
    port: 5672
    virtual-host: /mall
    username: mall
    password: mall
    publisher-confirms: true #消息发送到交换器确认
    publisher-returns: true #消息发送到队列确认

设置Vitual Hosts
img

添加配置类

  1. 队列
  2. 生产者sender
  3. 消费者eeceiver
@Configuration
public class SimpleRabbitConfig {
    @Bean
    public Queue hello() {
        return new Queue("simple.hello");
    }
    @Bean
    public SimpleSender simpleSender(){
        return new SimpleSender();
    }

    @Bean
    public SimpleReceiver simpleReceiver(){
        return new SimpleReceiver();
    }

}

生产者

public class SimpleSender {

    private static final Logger LOGGER = LoggerFactory.getLogger(SimpleSender.class);

    @Autowired
    private RabbitTemplate template;

    private static final String queueName = "simple.hello";

    public void send() {
        String message = "Hello World!";
        this.template.convertAndSend(queueName, message);
        LOGGER.info(" [x] Sent '{}'", message);
    }

}

消费者

@RabbitListener(queues = "simple.hello")
public class SimpleReceiver {

    private static final Logger LOGGER = LoggerFactory.getLogger(SimpleReceiver.class);

    @RabbitHandler
    public void receive(String in) {
        LOGGER.info(" [x] Received '{}'", in);
    }
}

其他地方使用时调用生产者的send方法即可
例如controller中

@Controller
public class RabbitController {
    @Autowired
    private SimpleSender simpleSender;


    @RequestMapping(value = "/simple", method = RequestMethod.GET)
    @ResponseBody
    public String simpleTest() throws InterruptedException {
        for(int i=0;i<10;i++){
            simpleSender.send();
            Thread.sleep(1000);
        }
        return "ok";
    }
}

五种模式

简单模式

一个生产者,一个消费者,一个队列
img
上面那个例子就是简单模式

标签:String,SimpleSender,private,class,rabbitmq,public
From: https://www.cnblogs.com/hslxy/p/16936446.html

相关文章

  • Rabbitmq #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue ‘
    #method<channel.close>(reply-code=404,reply-text=NOT_FOUND-noqueue‘myQueueDirect‘invhost‘/‘是因为消息发布者queueDeclare方法中传递的exclusive参数传......
  • RabbitMQ帮助类
    一、RabbitMQHelper///<summary>///RabbitMQHelper的摘要说明///</summary>publicclassRabbitMQHelper{//主机privatere......
  • RabbitMQ基础
    1.初识MQ1.1.同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。是你却不能跟多个人同时通话。......
  • Linux 安装RabbitMq
    1、下载Erlang和Rabbithttps://d28dx6y1hfq314.cloudfront.net/828/1039/el/8/package_files/2279064.rpm?t=1669605802_12ad3355a4114c22e9b151acfe4484891078938eh......
  • RabbitMQ 消息队列
    消息队列经过前面的学习,我们已经了解了我们之前的技术在分布式环境下的应用,接着我们来看最后一章的内容。那么,什么是消息队列呢?我们之前如果需要进行远程调用,那么一般......
  • python使用rabbitMQ
    python使用rabbitMQ 生产者消费者模型-------生产者-------------importpikaimportrandom#创建凭证credentials=pika.PlainCredentials('guest','guest')#新......
  • rabbitMQ--基本概念
    MQ的概念优点:1.应用解耦,提升系统容错性和可维护性 图中,假如不加入MQ,如果库存系统宕机,则会导致订单系统宕机,从而导致整个分布式宕机。 2.异步提速,提高系统的吞吐......
  • 《ASP.NET Core技术内幕与项目实战》精简集-DDD准备5.5:集成事件RabbitMQ
     本节内容,部分为补充内容,部分涉及到9.3.10-9.3.12(P335-342)。主要NuGet包:RabbitMQ.Client 微服务间,跨进程的事件发布和订阅,需要借助第三方服务器作为事件总线,目前常......
  • 微服务之RabbitMQ
    同步通讯和异步通讯  微服务基于Feign的调用就属于同步方式,存在一些问题        异步调用方案异步调用常见实现就是事件驱动模式优势一:服务解......
  • [Bug0061] RabbitMQ 报错 An unexpected connection driver error occured
    问题Java项目连接RabbitMQ报错Anunexpectedconnectiondrivererroroccured场景集成RabbitMQ的开源项目启动报错原因yml中端口配置错误,也是小白很容易犯错之一,配......