作用程序员的玩具:兔子没钱。——暮雪绵豆沙
- 流量削峰。保护服务
- 逻辑解耦。中间件
- 优雅异步。
- ActiveMQ:老牌,量大就卡。
- Kafka:大量数据。
- RocketMQ:双十一的考验。
- RabbitMQ: *** 作简单,社区活跃,量大就卡。
- 生产者:产生消息
- 交换机:路由分发
- 队列:消息队列
- 消费者:消费消息
- 通道:管理连接
工作模式
- 简单模式
- 分配工作任务
- 发布订阅
- 路由
- 主题
- RPC
- 发布确认
官网下载
配置环境变量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-client5.14.0 commons-io commons-io2.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("欧了~"); //不关,等回调 }
点击运行
成功!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)