ActiveMQ

124 阅读2分钟

1. 什么是ActiveMQ?

答:是一种分布式消息中间件,APACHE出品,历史悠久,实现JMS规范。

2. 什么是JMS?

答:定义了两个应用程序或者分布式系统发送消息的API,与具体实现平台无关,即JAVA MESSAGE SERVICE。还定义一系列相关术语。

术语英文术语中文
ConnectionFactory连接工厂
Connection连接
Session会话
Destination目的地
MessageProducer消息生产者
MessageConsumer消息消费者
Message消息
Broker消息中间件事例(例如ActiveMQ)

JMS定义了两种消息模型:

  • 1)点对点Point-to-point,即一条消息对应一个生产者和一个消费者。
  • 2)发布订阅Publish/Subscribe,生产者发布topic,多个订阅了该topic的消费者都可以获取该消息。

JMS定义了消息结构,包括消息头,消息属性和消息体。

  • 1) 消息头定义了消息的识别和消息的路由。
  • 2) 消息属性是除了1)之外开发者定义的业务属性。
  • 3) 消息体是具体的消息内容。

3. ActiveMQ中给消费者队列设置consumer.exclusive=true属性后,多个消费者可以平均消费?

答:否,只有一个独占消费者可以进行消费。

4. ActiveMQ如何发送分组消息,和关闭分组?

  1. 分组消息是通过producer在message中设置对应的JMSXGroupID。然后broker去寻找包含有该ID的消费者中的一位。只要该消费者还存活着,则这个分组里面的消息就会一直发送给他。

message.setStringProperty("JMSXGroupID", "GroupA");

  1. 关闭分组,只需要在序列中设置结束符号-1即可。

message.setIntProperty("JMSXGroupSeq", -1);

5. ActiveMQ默认的持久化方式是?

答:KahaDB

6. ActiveMQ启动以后默认占用的端口有?

答:因为支持了不同的协议,不同协议占用不同的端口号,例如61616,5672,1883等



作者:bernierayxu
链接:www.jianshu.com/p/11c0fabaf…
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。