JMS及ActiveMQ介绍与部署应用.pptx_第1页
JMS及ActiveMQ介绍与部署应用.pptx_第2页
JMS及ActiveMQ介绍与部署应用.pptx_第3页
JMS及ActiveMQ介绍与部署应用.pptx_第4页
JMS及ActiveMQ介绍与部署应用.pptx_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JMS及ActiveMQ介绍与部署应用,作者:王磊 2016/3/30,文档结构,JMS简单介绍 ActiveMQ介绍 ActiveMQ安装与部署 ActiveMQ开发DEMO 结束语,JMS定义,JMS英文全称为Java Message Service,翻译为Java消息服务。是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。 随着技术的发展,JMS实现厂商已经逐步支持各种类型语言的客户端访问消息服务,使JMS具有更广阔的应用前景。,JMS特点,跨语言、跨平台、跨应用 高性能(每秒数据吞吐量GB级) 实时性好(发送消息的速度快) 异步(解耦,高可靠性) 支持集群(部分厂商实现,master-slaver、broker cluster等模式),JMS应用典型场景,消耗时间和资源较多的请求,比如电商网站的下单请求,使用JMS消息队列,异步处理订单。 异构平台之间通讯,比如C#与j2ee应用间的通讯。 多应用系统间的集成、数据传递,比如电网运行系统中各应用间数据传递。,JMS体系架构,提供者:连接面向消息中间件的,JMS接口的一个实现。 客户:生产或消费基于消息的Java的应用程序或对象。 生产者:创建并发送消息的JMS客户。 消费者:接收消息的JMS客户。 消息:包括可以在JMS客户之间传递的数据的对象。 队列:一个容纳那些被发送的等待阅读的消息的区域。 主题:一种支持发送消息给多个订阅者的机制。,JMS对象模型,连接工厂(Connection Factory) 连接(Connection) 会话(Session) 目的(Destination:Queue、Topic) 生产者(Message Producer) 消费者(Message Consumer),JMS消息模型,点对点(Point-to-Point)。在点对点的消息系统中,消息分发给一个单独的使用者。点对点消息往往与队列(javax.jms.Queue)相关联。 发布/订阅(Publish/Subscribe)。发布/订阅消息系统支持一个事件驱动模型,消息生产者和消费者都参与消息的传递。生产者发布事件,而使用者订阅感兴趣的事件,并使用事件。该类型消息一般与特定的主题(javax.jms.Topic)关联。,JMS消息存储方式,NON_PERSISTENT:禁止固化消息,仅将消息放到内存中,适合消息量较少、可靠性要求不高的系统。 PERSISTENT:固化消息,将消息以文件或者数据库的方式进行固化,可有效提高可靠性,但会降低性能。,JMS消息格式,StreamMessage:Java原始值的数据流 MapMessage:键-值对 TextMessage:字符串对象(最常用) ObjectMessage:序列化的 Java对象 BytesMessage:字节流,JMS消息实体,消息头(必须):包含用于识别和为消息寻找路由的操作设置。 消息属性(可选):包含额外的属性,支持其他提供者和用户的兼容。 消息体(可选):消息具体内容。,JMS提供者实现,ActiveMQ:apache出品,开源,目前最流行,不支持超大规模。 RabbitMQ:mozilla出品,开源,不支持事务,erlang语言开发。 RocketMQ:阿里巴巴出品,部分开源,该公司内部大量使用,集群50台,日消息量百亿级。 SonicMQ:progress出品,商业,部分国内网站使用。 ZeroMQ:C语言开发,效率极高,但不成熟,开源。,ActiveMQ定义,MQ即Message Queue。Apache出品,最流行的,能力强劲的开源消息总线,是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现 已经在很多公司得到应用,社区成熟,学习文档多。,ActiveMQ特性,支持多语言和多协议 完全支持持久化、事务 支持内嵌至Spring 支持部署至JBoss、WebLogic等服务器上 支持集群 友好管理界面,测试方便,ActiveMQ下载与安装,1、到官网下载对应操作系统的压缩包,ActiveMQ下载与安装,2、将压缩包解压。Windows使用好压、360压缩、winrar等软件;Linux使用tar、unzip等指令,ActiveMQ下载与安装,3、运行主目录下bin/activemq.bat(windows),bin/activemq(linux)来启动服务。,ActiveMQ部署,Linux下注册服务并使其开机启动: 1、在activemq脚本中增加下图中白底两行注释 2、ln -snf ./bin/activemq /etc/init.d/activemq 3、chkconfig -add activemq 4、chkconfig activemq on,ActiveMQ开发DEMO,配置服务端链接类型、ip、端口,修改./conf/activemq.xml文件中的transportConnectors节点: 支持tcp,udp,nio,ssl,http,https,vm等多种协议。 统一语法:,ActiveMQ开发DEMO,配置链接用户名密码,为./conf/activemq.xml文件中节点增加如下节点:,ActiveMQ开发DEMO,配置服务端管理员密码,修改./conf/perties文件: 将权限检查设为true,修改./conf/jetty.xml文件中的如下节点:,ActiveMQ开发DEMO,输入网址http:/ip:8161/admin弹出输入框,输入刚才配置文件中admin的密码进行登录: 登录成功页面如下:,ActiveMQ开发DEMO,客户端编程通用步骤:,ActiveMQ开发DEMO,客户端配置maven依赖:,ActiveMQ开发DEMO,客户端整合进Spring,引入schema: 创建ConnectionFactory或者PooledConnectionFactory(线程安全): 创建Connection(线程安全):,ActiveMQ开发DEMO,创建消息发送者模板(线程安全,竞争session): pubSubDomain属性改为true即为topic类型消息,ActiveMQ开发DEMO,将模板注入: 在代码中执行发送: 可发送任意类型的消息,推荐发送Text类型。上面代码中的”LoanUpdate”即为消息目的地标识,拥有同样标识的消息接收客户端可以接收该消息。,ActiveMQ开发DEMO,配置消息接收监听(异步方式): 执行监听的类(实现MessageListener接口):,ActiveMQ开发DEMO,服务端最小maven依赖 如果需要数据库固化,需要引入activemq-kahadb-store等拓展包,ActiveMQ开发DEMO,将服务内嵌至Spring,随jvm启动,Active

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论