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如何发送分组消息,和关闭分组?
- 分组消息是通过producer在message中设置对应的JMSXGroupID。然后broker去寻找包含有该ID的消费者中的一位。只要该消费者还存活着,则这个分组里面的消息就会一直发送给他。
message.setStringProperty("JMSXGroupID", "GroupA");
- 关闭分组,只需要在序列中设置结束符号-1即可。
message.setIntProperty("JMSXGroupSeq", -1);
5. ActiveMQ默认的持久化方式是?
答:KahaDB
6. ActiveMQ启动以后默认占用的端口有?
答:因为支持了不同的协议,不同协议占用不同的端口号,例如61616,5672,1883等
作者:bernierayxu
链接:www.jianshu.com/p/11c0fabaf…
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。