-
消息代理 message broker
- 发送者,发送后,有消息代理接管。
- 消息代理 保证消息 传递到 指定的 目的地。
-
目的地 destination
异步消息 两种形式
- 队列 queue 和 主题 topic
-
点对点 消息通信,
-
发布/订阅式 publish / subscribe
-
JMS java Message Service
- Active MQ
- hornet Q
AMQP Advanced Message Queuing Protocol
- 高级 消息 队列 协议
- 兼容 JMS,跨平台
- Rabbit Mq
- 是消息服务器,有 mqtt插件
Mqtt Message Queuing Telemetry Transport
- 消息 队列 遥测 传输
- 小设备 设计
docker pull wnameless/oracle-xe-11g docker pull cloudesire/activemq ocker run -d -p 61616:61616 -p 8161:8161 cloudesire/activemq # 61616 是消息代理端口
http://192.168.44.146:8161/ 管理员账号密码为:admin/admminpom引入 和配置
org.springframework spring-jms//内嵌到程序里:引入 activemq-broker org.apache.activemq activemq-client
@EnableJms //默认开启
spring.activemq.broker-url=tcp://192.168.31.183:61616消息定义 和 目的地
public class Msg implements MessageCreator{ @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage("测试消息"); } }
@SpringBootApplication public class Ch934Application implements CommandLineRunner{ //1 @Autowired JmsTemplate jmsTemplate; //2 @Override public void run(String... args) throws Exception { jmsTemplate.send("my-destination", new Msg()); //3 } }接收消息
@Component public class Receiver { @JmsListener(destination = "my-destination") //1 public void receiveMessage(String message) { System.out.println("接受到: <" + message + ">"); } }AMQP
- RabbitMQ
docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:3-management http://192.168.44.146:15672 guest/guest引入Mq
org.springframework.boot spring-boot-starter-amqp
spring.rabbitmq.host=192.168.44.146定义队列 发送消息
@SpringBootApplication public class Ch935Application implements CommandLineRunner{ @Autowired RabbitTemplate rabbitTemplate; //1 public static void main(String[] args) { SpringApplication.run(Ch935Application.class, args); } @Bean //2 public Queue wiselyQueue(){ return new Queue("my-queue"); } @Override public void run(String... args) throws Exception { rabbitTemplate.convertAndSend("my-queue", "来自RabbitMQ的问候"); //3 } }接收消息
@Component public class Receiver { @RabbitListener(queues = "my-queue") public void receiveMessage(String message) throws Exception { System.out.println("Received <" + message + ">"); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)