已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
即时聊天技术实现方案 炎炎互动数码科技有限公司 蔡鑫即时聊天技术实现方案 编写: 蔡鑫 日期: 2012年10月12日ActiveMQ 简介1. 什么是ActiveMQActiveMQ 是Apache出品,最流行的,能力强劲的开源消息中间件, 应用中引入中间件的好处是减少服务器之间的依赖关系,提高扩展性,在没有引入消息中间件的情况可能出现如下:出现服务器多依赖的情况,不方面扩展,而引入消息中间件后如从图中可以看出引入消息中间件后,每个服务器只依赖于消息中间件,而且在应用中这种依赖关系式一种弱依赖关系2. ActiveMQ 的松耦合介绍松耦合应用在分布式应用设计中更具优势;也是对分布式应用至关重要的。3. ActiveMQ 的特性n 多种语言和协议编写客户端。语言: Java、C、C+、C#、Ruby、Perl、Python、PHP。应用协议:OpenWire、Stomp REST、WS Notification、XMPP、AMQPn 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务) n 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性 n 通过了常见J2EE服务器(如 Geronimo、JBoss 4、GlassFish、WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 n 支持多种传送协议:in-VM、TCP、SSL、NIO、UDP、JGroups、JXTA n 支持通过JDBC和journal提供高速的消息持久化 n 从设计上保证了高性能的集群,客户端-服务器,点对点n 支持Ajax n 支持与Axis的整合n 可以很容易得调用内嵌JMS provider,进行测试ActiveMQ 安装和下载4. 安装n 在/download.html 下载5.4.0发行包,解压到需要安装ActiveMQ的文件夹,记为/path/to/activemq。 n unix环境activemq文件夹需要执行权限,执行如下命令 chmod -R 755 /path/to/activemq 5. 启动n window环境运行/path/to/activemq/bin/activemq.bat n unix环境运行/path/to/activemq/bin/activemq 6. 测试ActiveMQ默认使用的TCP连接端口是61616, 通过查看该端口的信息可以测试ActiveMQ是否成功启动n window环境运行 netstat -an|find 61616 n unix环境运行netstat -an|grep 61616 7. 监控ActiveMQ5.0版本默认启动时,启动了内置的jetty服务器,提供一个demo应用和用于监控ActiveMQ的admin应用。admin::8161/admin/ demo::8161/demo/ActiveMQ基础实例8. 消息生产者/通过 用户密码URL 创建接口工厂ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,tcp:/localhost:61616);/通过连接工厂创建一个新的连接Connection connection = factory.createConnection();/通过连接接口创建一个回话Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);/根据回话接口创建有关的目标接口Destination destination = session.createQueue(Mr Yan);/回话接口再根据目标接口创建一个消息生产者接口MessageProducer messageProducer = session.createProducer(destination);/调用回话创建一个文本消息Message message = session.createTextMessage(I am very happy either.);/使用消息生产者接口将消息传送至 ActiveMQ 服务器messageProducer.send(message);session.close();connection.close();9. 消息消费者/ 通过username,password,url创建连接工厂接口ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,ActiveMQConnectionFactory.DEFAULT_PASSWORD,tcp:/localhost:61616);/ 通过连接工厂创建一个新的连接接口Connection connection = factory.createConnection();connection.start();/ 通过连接接口创建一个会话接口Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);/ 会话接口创建有关主题的目标接口Destination destination = session.createQueue(Mr Liu);/ 会话接口再根据目标接口来创建一个消息消费者接口MessageConsumer consumer = session.createConsumer(destination);/ 消息消费者接收消息TextMessage message = (TextMessage)consumer.receive();if (message != null) System.out.println(收到的消息: + message.getText();session.close();connection.close();10. 消息发送流程然后调用发布接口发布消息,发布过程如下:11. 消息接收流程JMS 简介12. JMS 中的概念 JMS客户端:接收或发送消息的java系统 JMS消息体:系统间发送的消息体 JMS提供商:JMS规范实现厂商 JMS管理对象:预先配置好的用于JMS客户端的JMS对象。如ConnectionFactory跟JMS服务端的连接工厂,Destination 接收和发送消息的目标地址等 JMS Domain:JMS定义了两种域模型,一种是PTP(point-to-point)即点对点消息传输模型,一种是pub/sub(publish-subscribe)即发布订阅模型。 PTP通过一个先进先出的queue实现。很多人在这个PTP概念上有所误解,所谓点对点不是指生产者和消费者只有一个。PTP如下图所示: 我们可以看到,一个或多个生产者发送消息,消息m2先抵达了queue,然后m1也发出了,并一同存在于一个先进先出的queue里面。消费者也存在一个或多个,对queue里的消息进行消费。但消息被随机的一个消费者消费且仅消费一次。 在pub/sub消息模型中,消息被广播给所有订阅者。如下图: 13. JMS 接口JMS通用接口JMS PTP接口JMS pub/sub 接口描述ConnectionFactoryQueueConnectionFactoryTopicConnectionFactory创建与JMS服务的连接ConnectionQueueConnectionTopicConnectionJMS服务的连接,可创建SessionDestinationQueueTopic发送接收消息的目标,Queue和Topic均可视为一种DestinationSessionQueueSessionTopicSes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册会计师《审计》函证程序题库(完整版)
- 资产评估师(珠宝)案例分析与计算(带评分标准)
- 2025年河南省南阳市中考物理一模试卷含答案
- 2026四川绵阳交发大道新材料科技有限责任公司关于招聘员工1人的模拟试卷及完整答案详解(夺冠系列)
- 2026四川成都中医药大学第二附属医院工作人员招聘35人模拟试卷【考试直接用】附答案详解
- 2026山东青岛广电影视传媒集团有限公司二次招聘24人笔试题库含答案详解【预热题】
- 2026云南楚雄州永仁县教育系统选调校医1人考前冲刺试卷【研优卷】附答案详解
- 2026广东惠州市惠阳区第二批就业见习岗位招募127人模拟试卷附答案详解【预热题】
- 2026天津南开大学部分科研助理岗位招聘模拟试卷附参考答案详解(能力提升)
- 2026四川内江隆昌市市场监督管理局招聘1人模拟试卷附答案详解AB卷
- 奶茶店转让接手协议合同
- 2025年山东省春季高考语文试卷试题真题(含答案详解)
- 丙类仓库管理制度
- T/CNFAGS 2-2021三聚氰胺工业污染物排放标准
- 2024年福建省闽清县事业单位公开招聘医务工作者笔试题带答案
- 机械设备安装施工部署
- 绿色农业实践操作手册
- 延长石油社会招聘试题
- 新浙教版 九年级科学上 第一章复习
- 2024年宁夏惠安市政产业有限公司招聘笔试参考题库附带答案详解
- 《海上风电场工程岩土试验规程》(NB/T 10107-2018)
评论
0/150
提交评论