RabbitMQ(一)废话连篇

RabbitMQ(一)废话连篇,第1张

RabbitMQ(一)废话连篇

程序员的玩具:兔子没钱。——暮雪绵豆沙

作用
  1. 流量削峰。保护服务
  2. 逻辑解耦。中间件
  3. 优雅异步。
常用MQ
  • ActiveMQ:老牌,量大就卡。
  • Kafka:大量数据。
  • RocketMQ:双十一的考验。
  • RabbitMQ: *** 作简单,社区活跃,量大就卡。
核心概念
  • 生产者:产生消息
  • 交换机:路由分发
  • 队列:消息队列
  • 消费者:消费消息
  • 通道:管理连接

工作模式

  • 简单模式
  • 分配工作任务
  • 发布订阅
  • 路由
  • 主题
  • RPC
  • 发布确认
软件安装 安装erlang

官网下载

配置环境变量

ERLANG_HOME
指向根目录,比如说:E:programserl-24.2

下载

官网下载

配置

切换到sbin目录
启用Web插件

./rabbitmq-plugins.bat enable rabbitmq_management

打开后台服务

./rabbitmq-server.bat -detached

网页地址
http://localhost:15672/#/
初始账户
guest / guest

简单模式

pom.xml


	
		com.rabbitmq
		amqp-client
		5.14.0
	
	
		commons-io
		commons-io
		2.6
	

生产者

全局常量:队列名称

private static final String queueName = "q";

获取连接

public static Connection getConn() throws Exception {
	ConnectionFactory cf = new ConnectionFactory();
	cf.setHost("localhost");
	cf.setUsername("guest");
	cf.setPassword("guest");
	return cf.newConnection();
}

发送消息

public static void main(String[] args) throws Exception {
	Connection conn = getConn();
	Channel channel = conn.createChannel();
	
	channel.queueDeclare(queueName, false, false, false, null);
	String message = "你好,沃德!";
	
	channel.basicPublish("", queueName, null, message.getBytes());
	System.out.println("欧了~");
	channel.close();
	conn.close();
}

点击运行


成功!

消费者

全局变量和获取连接:同上

消费消息

public static void main(String[] args) throws Exception {
	Connection conn = getConn();
	Channel channel = conn.createChannel();
	
	DeliverCallback deliver = (consumerTag, message) -> {
		System.out.println(new String(message.getBody()));
	};
	CancelCallback cancel = consumerTag -> {
		System.out.println("取消了~");
	};
	channel.basicConsume(queueName, true, deliver, cancel);

	System.out.println("欧了~");

	//不关,等回调
}

点击运行


成功!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5694381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存