各大mq入门
JMS
javaEE中定义的"java消息服务(JMS)"定义了java中访问消息中间件的接口,JMS只是一套接口,并没有给予实现,各大厂商和开源组织都对JMS实现了不同的产品,这些产品包括Apache的ActiveMQ,阿里的RocketMQ,IBM的MQseries,Spring Source的RabbitMQ等等,都是遵循JMS规范
JMS规范,术语,常见接口
Provider(Message Provider)Producer:生产者(消息的发送方)
Consumer(Message Consumer):消费者(消息的接收方)
PTP:Point To Point:即点对点的消息模型(一对一发布)
Pub/Sub: Publish/Subscribe,即发布/订阅的消息模型(一对多发布)
Queue:队列
Topic:主题
ConnectionFactory:连接工厂,JMS用它创建连接
Connection:JMS Consumer到JMS Provider 的连接
连接代表了应用程序和消息服务器之间的通信链路,在获得了连接工厂以后,就可以创建一个与jms提供者的连接,根据不同的连接类型,连接允许用户创建会话,以及发送和接收队列和主题到目标
Destination:消息的目的地
目标是一个包装了消息目标标识符的【被管对象】,消息目标是指消息发布和接收的地点,或者是队列,或者是主题,JMS管理员创建这些对象,然后用户通过jndi发现他们,和连接工厂一样,管理员可以创建两种类型的目标,点对点模型queue,以及发布者/订阅者模型的Topic
Session:会话,内部维护一个发哦是那个或者接收消息的线程
表示一个单线程的上下文,用于发送和接收消息,由于会话是单线程的,所以消息是连续的,也就是说消息是按照发送的顺序一个一个接收的,会话的好处是它支持事务,如果用户选择了事务支持,会话上下文将保存一组消息,直到事务被提交才发送这些消息在提交事务之前,用户可以使用回滚操作取消这些消息,一个会话允许用户创建消息生产者来发送消息,创建消息,消费者来接受消息
message:消息
是在消费者和生产者之间传送的对象,也就是说从一个应用程序送到另一个应用程序,一个消息主要有三个部分,消息头(必须):包含用于试别和消息寻找路由的操作设置,一组消息属性(可选):包括额外的属性,支持其他提供者和用户的兼容,可以创建定制的字段和过滤器(消息选择器)一个消息体(可选):允许用户创建物种类型的消息(文本消息TextMessage, 映射消息MapMessage,字节消息ByteMessage,流消息StreamMessage,对象消息ObjectMessage)
activeMQ
安装
ActiveMQ是一个Java编写的程序,可以在官网中直接下载Zip压缩包,只要配置好JDK,解压即用