当前位置: 首页 > news >正文

RabbitMQ简单消息发送

RabbitMQ简单消息发送

简单代码实现RabbitMQ消息发送

需要的依赖

        <!--rabbitmq--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><version>x.x.x</version></dependency>

消息发送示例

import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.Connection;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.io.IOException;
import java.util.concurrent.TimeoutException;@Slf4j
public class RabbitMQConfig2 {private static  String addresses = "localhost:5672";private static String username = "xxx";private static String password = "xxx";public static   void testSendMessage() throws IOException, TimeoutException {System.out.println("发送消息");// 1.建立连接CachingConnectionFactory factory = new CachingConnectionFactory();factory.setAddresses(addresses);factory.setUsername(username);factory.setPassword(password);factory.setVirtualHost("/");// 1.2.建立连接Connection connection = factory.createConnection();// 2.创建通道ChannelChannel channel = connection.createChannel(true);// 3.创建队列/*声明队列参数1:队列的名称 queueName参数2:队列是否支持持久化 false:不持久化处理参数3:队列是否排它:是否允许其它的connection下的channel连接参数4:是否空闲时自动删除,当最后一个consumer(消费者)断开之后,队列将自动删除。参数5:参数是rabbitmq的一个扩展,功能非常强大,基本是AMPQ中没有的。*/String queueName = "queue1";channel.queueDeclare(queueName, false, false, false, null);// 4.发送消息String message = "hello, rabbitmq!";/*发送消息:参数1:exchange 交换机 没有就设置为 "" 值就可以了参数2:routingKey 路由的key 现在没有设置key,直接使用队列的名字queueName参数3:发送数据到队列的时候,是否要带一些参数。直接赋值null即可参数4:body 向队列中发送的消息数据*/channel.basicPublish("", queueName, null, message.getBytes());System.out.println("发送消息成功:【" + message + "】");// 5.关闭通道和连接channel.close();connection.close();}}
http://www.lqws.cn/news/592579.html

相关文章:

  • Node.js与Express框架的深度整合
  • beego打包发布到Centos系统及国产麒麟系统完整教程
  • react-数据Mock实现——json-server
  • 飞算 JavaAI 开发助手:深度学习驱动下的 Java 全链路智能开发新范式
  • 发票PDF处理工具,智能识别合并一步到位
  • Foundation 5 安装使用教程
  • 【Unity实战】UI按钮回调管理:职责分离与持久化策略
  • 基于 Vue + RuoYi 架构设计的商城Web/小程序实训课程
  • 网络基础知识与代理配置
  • Java 大视界 -- Java 大数据在智能交通共享单车智能调度与停放管理中的应用(329)
  • 数字雨动画背景
  • 深入剖析AI大模型:TensorFlow
  • 浅谈「线性代数的本质」 - 系列合集
  • 系统思考力量与实践
  • 从数据资产识别与防泄密看零信任产品
  • 什么叫单通
  • .Net 使用OpenAI开源离线语音识别模型Whisper
  • CppCon 2018 学习:EFFECTIVE REPLACEMENT OF DYNAMIC POLYMORPHISM WITH std::variant
  • Helix Toolkit 在 WPF 中加载带贴图素材的模型
  • 《全程软件测试》第1章
  • 坚石ET ARM加密狗复制模拟介绍
  • 23.安卓逆向2-r0capture搭配Wireshark方式抓包
  • Nuxt 3 中实现跨组件通信方式总结:使用 Pinia、Provide/Inject 或 Props
  • 设计模式-命令模式
  • 昆泰芯3D霍尔磁传感器芯片在汽车零部件中的应用
  • OpenCV-Python Tutorial : A Candy from Official Main Page(二)
  • 使用FFmpeg+SDL2读取本地摄像头并渲染
  • 07 Springboot+netty+mqtt服务端实现【重构】
  • php-mqtt/client 发布、订阅
  • 学习threejs,使用自定义GLSL 着色器,生成艺术作品