1. jmsAPI可以分为三类:公共api,点对点api和发布/订阅api。
  2. RPC(远程过程调用)试图模仿在一个进程中运行的某个系统的行为。在调用一个远程过程时,调用者将被阻塞,知道该过程完成并将控制权返回给调用者。从开发者的角度看,这种同步模型使得该系统好像运行在一个进程中。RPC的问题是耦合太严重。
  3. 一个massage可以分为消息头,消息属性和消息体(有效负载)三部分。

消息头是有一些设定好的key开发者可以set值,消息属性是key和value都需要开发者设定不过有一些约定好的key。

  1. 何时使用点对点消息传送模型:

a. 指定某个消息只能消费一次时
b. 提供异构系统的互操作,比如:java应用和.NET应用直接的RPC调用。

  1. 动态队列和受管队列:动态队列是通过api创建的队列,受管队列是在JMS提供的配置文件或管理工具中定义的队列。
  2. 点对点的消息传送模型中有一个QueueBrowser对象中包含了一些队列的信息可以用于分析。
  3. 持久订阅者和非持久订阅者。非持久订阅者如果推送消息的时候不是活动的则将丢失该条消息。持久则不会丢失。
  4. 持久性消息是指jms中间件会收到消息会先持久化在通知生产者消息接受成功。非持久性消息收到消息后就会通知生产者至于要不要持久化再说。非持久化消息如果已经通知生成这接受成功且消息未被消费前jms中间件挂掉会丢失消息。
  5. 消息确认的三种模式AUTO_ACKNOWLEDGE,DUPS_OK_ACKNOLEDGE,CLINET_ACKNOLEDGE
  6. 消息组合确认,同一组消息要么全被消费掉要么都么消费掉。
  7. 事务性消息:多条消息要么全部发送成功要么全部发送失败
  8. kafka只支pull的方式消费,不支持push。