1.JMS:java的消息服务,JMS的客户端之间可以通过JMS服务进行异步消息传输
(1)P2P模式(点对点):希望发送的每个消息
被成功处理。
(2)Pub/Sub:发布订阅模型
客户端将消息发送到主题,系统将这些消息传递给多个订阅者
使用场景:发送的消息可以不被做任何处理、被一个消息处理、可以被多个消费者处理
2.消息的消费
可以通过两种方式
同步:receive在能够接受到消息之前(或超时之前)一直阻塞
异步:消息到达之后,系统自动调用监听器的onMessage方法
3.JMS编程模型
(1)ConnectionFactory
创建Connection对象的工厂,分别有QueueConnectionFactory和TopicConnectionFactory两种,可通过JNDI查找ConnetionFactory对象
(2)Destination
消息生产者的消息发送目标或消息消费者的消息来源,某个队列或主题。包括两种类型的对象:Queue、Topic可以通过JNDI来查找Destination.
(3)Connection
表示在客户端和JMS系统之间建立的连接,产生一个或多个Session,包括QueueSession和TopicSession.
(4)Session
操作消息的接口,可通过session创建生产者、消费者、消息等。提供事务功能,也包括两种
(5)由Session创建,发送到Destination,调用(send或publish方法)发送消息
(6)消息消费者
由Session创建,接收被发送到Destination的消息,两种类型:QueueReceiver和TopicSubscriber。可分别通过session的createReceiver(Queue)或createSubscriber(Topic)来创建。当然,也可以session的creatDurableSubscriber方法来创建持久化的订阅者。
(7)MessageListener
消息监听器,如果注册了,一旦消息到达,自动调用监听器的onMessage()的方法。
4.企业系统的好坏
消息灵活性、松耦合、异步性
二、消息中间件
1.ActiveMQ:一款开源的JMS具体实现,一个易于使用的消息中间件
2.用途和优点
(1)数据从一个应用程序传送到另一个应用程序,软件的一个模块传送到另一个页面。
(2)负责建立网络通信的通道,进行数据可靠传送
(3)保证数据不重发,不丢失
(4)跨平台操作,为不同操作系统上的软件集成提供数据传送服务
3.MQ
消息队列,一个消息的接受和转发的容器
4.cmd命令
cmd安装命令:start xxx
netstat –aon:列出所有端口的情况
netstat -aon|findstr"端口号":查看被占用端口对应的PID
tasklist|findstr"PID":查看哪个进程或者程序占用了这个PID对应的端口,或直接在任务管理器中查看
taskkill /f /t /im程序名 :或直接在任务器中结束这个进程
5.使用场景
(1)多个项目之间集成
跨平台、多语言、多项目
(2)降低系统间模块的耦合度,解耦
软件扩展性
(3)系统前后端分离
前后端隔离,屏蔽高安全区
6.运行
(1)浏览器中输入http://localhost:8161/admin/(账号密码都是admin)
(2)Eclipse中运行发送者
7.Spring和ActiveMQ整合的完整实例