实战ActiveMQ集群与应用

发布 2021-04-10 16:31:28 阅读 4781

mq是一个消息中间件,比如:activemq、rabbitmq、kafka都属于mq,是mq的产品。

activemq 是apache出品,最流行的,能力强劲的开源消息总线。activemq 是一个完全支持jms1.1和j2ee 1.

4规范的 jms provider实现的消息中间件(message oriented middleware,mom),尽管jms规范出台已经是很久的事情了,但是jms在当今的j2ee应用中间仍然扮演着特殊的地位。

主要特点:1. 多种语言和协议编写客户端。

语言: j**a,c,c++,c#,ruby,perl,python,php。应用协议:

openwire,stomp rest,ws notification,xmpp,amqp。

2. 完全支持jms1.1和j2ee 1.4规范 (持久化,xa消息,事务)

3. 对spring的支持,activemq可以很容易内嵌到使用spring的系统里面去,而且也支持spring2.0的特性。

4. 通过了常见j2ee服务器(如 geronimo,jboss 4,glassfish,weblogic)的测试,其中通过jca 1.5 resource adaptors的配置,可以让activemq可以自动的部署到任何兼容j2ee 1.

4 商业服务器上。

5. 支持多种传送协议:in-vm,tcp,ssl,nio,udp,jgroups,jxta

6. 支持通过jdbc和journal提供高速的消息持久化。

7. 从设计上保证了高性能的集群,客户端-服务器,点对点。

8. 支持ajax

9. 支持与axis的整合。

10. 可以很容易得调用内嵌jms provider,进行测试。

对于消息的传递有两种类型:

1. 点对点模式,即一个生产者和一个消费者一一对应。

2. 发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。

jms定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。

· streammessage --j**a原始值的数据流。

· mapmessage--一套名称-值对。

· textmessage--一个字符串对象。

· objectmessage--一个序列化的 j**a对象。

· bytesmessage--一个字节的数据流。

基本功能:将信息以消息的形式,从一个应用程序传递到另一个或多个应用程序。

主要特点:1. 消息异步接收。

2. 消息可靠接受,确保消息在中间件可靠保存,只有接收方接收到后才删除信息,多个消息也可以组成原子事务。

消息中间件的主要应用场景:

在多个系统间进行整合和通讯的时候,通常会要求:

1. 可靠传输。

2. 异步传输,否则各个系统同步发送接收数据,互相等待,造成系统瓶颈。

比较知名的消息中间件:

ibm mqservies

bea weblogic jsm server

oracle aq

tibcoswiftmq

activemq是一款免费的j**a实现的消息中间件。

进入**activemq

点对点:发布/订阅:

工程需要添加jar包:

生产者:生产消息,发送端。

第一步:创建connectionfactory对象,需要指定服务端ip及端口号。

第二步:使用connectionfactory对象创建一个connection对象。

第三步:开启连接,调用connection对象的start方法。

第四步:使用connection对象创建一个session对象。

第五步:使用session对象创建一个destination对象(topic、queue),此处创建一个queue对象。

第六步:使用session对象创建一个producer对象。

第七步:创建一个message对象,创建一个textmessage对象。

第八步:使用producer对象发送消息。

第九步:关闭资源。

消费者:接收消息。

第一步:创建一个connectionfactory对象。

第二步:从connectionfactory对象中获得一个connection对象。

第三步:开启连接。调用connection对象的start方法。

第四步:使用connection对象创建一个session对象。

第五步:使用session对象创建一个destination对象。和发送端保持一致queue,并且队列的名称一致。

第六步:使用session对象创建一个consumer对象。

第七步:接收消息。

第八步:打印消息。

第九步:关闭资源。

使用步骤:第一步:创建connectionfactory对象,需要指定服务端ip及端口号。

第二步:使用connectionfactory对象创建一个connection对象。

第三步:开启连接,调用connection对象的start方法。

第四步:使用connection对象创建一个session对象。

第五步:使用session对象创建一个destination对象(topic、queue),此处创建一个topic对象。

第六步:使用session对象创建一个producer对象。

第七步:创建一个message对象,创建一个textmessage对象。

第八步:使用producer对象发送消息。

第九步:关闭资源。

KDJ实战与应用

一 kdj不能反应出涨幅的高低。二 kdj适用于 三 kdj高抛低吸的操作。四 注意 值大于 后的走向,若 以上没有死叉的可持有。五 可使用两次交叉,保证可靠性,在两次交叉 金叉最好在 值在 以后或附近 后 但要注意两个交叉时间越短越好,最长是一个月内。注意是金叉不是死叉。六 如果出现两个金叉第二个...

高绩效项目管理实战与应用

2天 如何理解项目管理和日常运作的区别?项目管理具有哪些精髓思想?项目管理的整体运作模式框架如何构建?如何掌握和应用项目管理过程的工具 模板 方法?如何提升跨部门协同工作的项目工作效率?如何转换项目负责人与项目成员,以及部门人员之间的角色?资深项目管理专家将对项目管理成功要点进行深入解剖,并以成功案...

周K的分析与实战应用

不少投资者都比较重视对日 方面的分析,但对于周 在 的操作中却常常并不十分留意。其实日 是对一个交易日的记录,由于变化太快,极易出现技术性陷阱。而周 反映的是一周的交易状况,短期 上出现的较大波动在周 上一般都会被过滤或烫平。因此,如果能够将日 的分析和周 的分析相结合,对操作指导的效果会更好。在实...