消息中间件
直连的坏处:直接连接的方式不利于异步传送信息和确保消息的准确到达。
消息中间件的好处:
ActiveMQ使用过程—一个轻量级消息中间件
将想要使用的消息中间件的JMS Provider加入到工程之中。这就相当于JDBC之类的连接特定平台的接口包。只有用特定的JMS Provider才能连接到特定的消息中间件。
消息生产者操作:
- 建立连接工厂类,实例化工厂类,需要传入用户名、密码、brokerurl。
- 通过工厂类建立连接。
- 通过连接建立会话,需要指定会话是否是事务类型和当消费者收到消息之后的动作。
- 通过会话建立目标队列或话题。
- 通过会话建立生产者Producer,此时要指明是队列还是话题,以及其名字。
- 通过会话产生信息。
- 通过生产者发送产生的信息到队列或话题。
消息消费者操作:
- 建立连接工厂类,实例化工厂类,需要传入用户名、密码、brokerurl。
- 通过工厂类建立连接。
- 通过连接建立会话,需要指定会话类型为非事务类型,当消费者收到消息之后的动作。
- 通过会话建立目标队列或话题。
- 通过会话建立生产者Consumer,此时要指明是队列还是话题,以及其名字。
- 通过Consumer的receive(milisecond)来阻塞的等待接收信息;或者通过设置setListener(new Listener())方法添加消息监听,来异步接收信息。异步接收的意思是当中间件没有信息的时候,消费者可以做其他的事情,当中间件存储有相应的消息的时候,中间件会调用消费者的回调函数,直接让消费者接收现存符合要求的信息。
- 当模式为订阅者模式的时候,需要所有消费者先启动订阅,这时候才能确保所有消费者都能收到相同的信息。