JMS activemq

语言是自己组织的。可能不专业,请读者见谅
有不对的地方,也欢迎大家指正

JMS有两种方式,一种是pub/sub,一种是(后续补充)
主要讨论pub/sub方式

pub/sub方式的工作流程:
首先订阅者(subscriber)向JMS容器订阅需要订阅的主题(topic),消息发布者发布消息,订阅了该主题的订阅者都能收到这个消息。(这是一对多的方式,类似于广播,个人理解),默认情况下,该消息不是持久的。即消息一发出,不管有没有人接受,都不会保存下来,即订阅者只能接收到自己订阅之后发布者发出的消息。
如果出现意外情况,订阅者突然断线了,发布者发布了一条消息,订阅者再连接上是不会收到消息的。解决这种情况的办法是订阅者中加个clientID。

JMS提供者(JMS Provider)也叫JMS服务器/容器

连接工厂Connection Factory:
是用来创建客户端到JMS容器之间JMS连接的工厂
context ctx = new InitialContext();
TopicConnectionFactory tcf = ctx.lookup("topic主题");

目的地:destinations
消息发布者发布消息的地方,即订阅者接收消息的来源地。因为目的地之注册在jms服务器的,所以我们只能通过JNDI查找。
Topic topic = (Topic)ctx.lookup("topic主题");

连接:connection
客户端与JMS提供者(容器)之间的连接
TopicConnection tc = tcf.createTopicConnection();

javax.jms.ExceptionListener

(请忽略:根据某些参数,生成clientID,向服务器注册JMS客户端)

第一种:最简单的activemq    发布者,订阅者示例


第二种:SSL 安全通道加密的


在这个过程中订阅者中添加clientID的就是解决突发情况的。clientID要保证唯一性。



自己下个activemq的包,activemq的下载连接
自己打开activemq,运行网页,观察网页中发布者,订阅者之间接收消息的情况。
和加了clientID时的情况。
加了clientID的情况要分为,运行这个主题之前,和运行这个主题之后两种情况。

代码中牵扯到的证书,怎样查看证书的相关知识,将在以后简单介绍

你可能感兴趣的:(activemq)