ActiveMQ

引入

5fNinNwJugdqzuM9B6-d

在springCould的盛行下,微服务架构在行业中越来越常见,它将业务分成很多模块,再一定程度上缓解了系统的耦合性,为什么说在一定程度上缓解了系统的耦合性?想想,拿一个消息推送系统来举例,消息生产方和消息接收作为两个服务来运行,正常情况下,两个服务没有任何问题,当消息生产方生产了一条消息,消息接收方可以及时的消费。但是,如果消费者挂掉了呢?,那么生产者生产的消息就是一个费消息,消费这永远也不会接收到。
对于上面提到的这种情况,消费者在一定程度上还是依赖生产者的,有方法解决吗?答案是肯定的!JavaEE规范提供了一种JMS规范,通过JMS这套规范,来引入一种中间件,将两个不是直连的模块通过一个共同的消息收发服务组件关联起来达到解耦和削峰填谷的效果。当然,生产这样的中间件并不是毫无规则的,JMS规定了一组接口,像创建、发送、读取消息等,用于支撑Java应用程序的开发。

拓展

  在此之前,先说一下JavaEE
  JavaEE是一套在使用Java进行企业级应用开发是被要求遵循的13个核心规范标准,剩余的还有
  1.JDBC
  2.JNDI
  3.EJB
  4.RMI 远程调用
  .....

JMS

ActiveMq

回归正题,说一下amq
amq是JMS其中的一个落地产品

Message

消息头

            TextMessage textMessage = session.createTextMessage()
            
            textMessage.setJMSDeliveryMode(); //消息是否持久化 
            DeliveryMode.PERSISTENT 持久  DeliveryMode.NON_PERSISTENT 非持久
            
            textMessage.setJMSDestination(); //目的地
            
            textMessage.setJMSExpiration();  //消息过期时间
            
            textMessage.setJMSPriority(); //优先级 1-9个级别
            
            textMessage.setJMSMessageID(); //消息唯一识别标识

消息体

extMessage textMessage = session.createTextMessage()  //text类型的属性
MapMessage mapMessage = session.createMapMessage();   //map类型消息
  • api发送和接收
  • 高可用
  • 持久化
  • 延时发送+定时投递
  • 签收机制
  • 集群和容错
  • Spring 整合
  1. 可以解决什么问题
    利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
    通过提供消息传递和消息排队模型在分布式环境下提供应用解耦,弹性收缩。冗余存储,流量削峰,异步通信,数据同步等功能。

发送者把消息发送给消息服务器。消息服务器将消息存放在若干队列/主题中,在合适的时候,消息服务器会将消息发给接受者。在这个过程中,发送和接受是异步的,也就是发送无需等待。而且发送者和接受者的生命周期也没有必然关系。
尤其是在pub/订阅sub模式下,也可以完成一对多的通信,即让一个消息有多个接受者。

activemq 命令

启动   
bin目录下   ./activemq start
关闭
bin目录下  ./activemq stop 
查询进程
ps -ef | grep active   //按名称查
netstat -anp | grep 61616  //按端口查询

ltcp6       0      0 :::61616                :::*                    LISTEN      14192/java   

lsof -i:61616  //另外一种用端口查询
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    14192 root  130u  IPv6 19957339      0t0  TCP *:61616 (LISTEN)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值