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