搞定JAVA消息队列,看我用了几步
来源:互联网 发布:淘宝女装店背景图 编辑:程序博客网 时间:2024/05/24 02:21
from http://www.jianshu.com/p/942925f36490
作者:和奇谷朴链接:http://www.jianshu.com/p/942925f36490來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。近期公司项目中,听同事提起MQ、JMS,因为之前没有使用过不太了解,所以抽出半天时间学习下,了解下相关概念、功能及其用途。便于再次与人沟通时可以言之有物,后续工作中遇到了,可立马上手,提高工作效率。
学习过程分为三个步骤:
- 1 查找资料
- 2 实验实践
- 3 归纳总结
2
查找资料
推荐两篇博客,内容不错。
- 1 JMS(Java消息服务)入门教程 ,比较适合了解基本知识,包括概念、分类、用途及其原理。
- 2 消息队列MQ技术的介绍和原理,介绍了消息队列MQ的基本知识点。此处不再对技术内容进行复制粘贴,仅提供学习思路。首先用what、how、why提出自己心中感兴趣的几个问题,然后在到资料中找出想要的答案。例如:什么是Java消息服务?MQ? 为什么要有消息服务?优点是什么?消息服务是如何实现的?JSM Java Message Service, MQ Message Queue
3
实验
为了验证activeMQ跨服务器传递消息,我验证了单机部署,也验证了三机部署172.16.2.121 activeMQ http://172.16.2.121:8161/172.16.2.126 生产者 http://172.16.2.126:9080/JMSProject172.16.2.184 消费者 http://172.16.2.184:9080/JMSProject/Receive通过上面的快速阅读和详细阅读之后,已经在概念上了解了,下面通过一个实验对概念和原理进行深入的理解,了解其用途及其适用范围。
- 1 环境介绍apache-tomcat-7.0.61、apache-activemq-5.6.0、eclipse neon、jdk 1.8.0 ;
- 2 实验代码工程链接地址https://github.com/abshawn/JMSProject ,可以从此处下载代码,在本地部署查看效果。项目中的context.xml,需要更新到tomcat的conf/context.xml中。否则会提示以下两个问题
2.1) javax.naming.NameNotFoundException: Name [queue/queue0] is not bound in this Context. Unable to find [queue].这个错误的原因是未在tomcat/conf/context.xml中配置以下代码:<Resource auth="Container" brokerName="LocalActiveMQBroker" brokerURL="tcp://172.16.2.121:61616" description="JMS Connection Factory" factory="org.apache.activemq.jndi.JNDIReferenceFactory" name="queue/connectionFactory" type="org.apache.activemq.ActiveMQConnectionFactory"/> <Resource auth="Container" description="My Queue" factory="org.apache.activemq.jndi.JNDIReferenceFactory" name="queue/queue0" physicalName="TomcatQueue" type="org.apache.activemq.command.ActiveMQQueue"/>2.2) javax.jms.JMSException: Could not connect to broker URL: tcp://172.16.2.121:61616. Reason: java.net.ConnectException: Connection refused: connectCaused by: java.net.ConnectException: Connection refused: connect这个保存可能是因为为安装activeMQ或安装完未启动(可参考activeMQ安装启动教程)
- 3 实验效果截图通过activemq可以监控到消息队列的内容。
4
归纳总结
JMS “ 一个中心,两种模式,三步实现”
- 1 以 消息服务器为中心消息生产者 通过客户端发消息给消息服务器; 消息消费者通过消息服务器接收消息;
- 2 两种消息发送模型两种消息发送模型规范:点对点、发布订阅 ;
- 3 实现方法分为三步 3.1、 统一消息服务器,建立连接Connections ; 3.2 、通过连接建立队列会话session; 3.3 、准备就绪后,执行 生产者 发消息和消费者 接消息(异步)。
优点 解耦合、异步
阅读全文
0 0
- 搞定JAVA消息队列,看我用了几步
- 东方兄,我搞定了,看代码
- 几步搞定makefile文件的编写
- 几步搞定Service不被杀死
- 简单几步搞定 .net 多语言应用程序。
- 织梦程序搬家更换空间简单几步搞定
- 几步搞定Maven+Eclipse做ArcObjects二次开发
- Eclipse修改项目包名(简单几步搞定)
- 轻松几步搞定CocoaPods修复10.11不能安装问题
- 轻松几步搞定CocoaPods修复10.11不能安装问题
- 轻松几步搞定CocoaPods修复10.11不能安装问题
- 看我怎样搞定变态女上司
- 本打算考研之前深入研究C#,看情况得先搞定java了
- 卸载软件,我有法宝3步搞定
- 用iMindMap4步搞定项目管理
- 看了,我流泪了
- 看了之后让我的JAVA明白不少哦!
- 我把think in java看了几次
- caffe运行mnist出现-bash: ./examples/mnist/train_lenet.sh: usr/bin/env: bad interpreter: No such file问题解决
- 指针部分知识
- SSH spring+struts2+hibernate整合步骤
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
- gcc/g++编译优化
- 搞定JAVA消息队列,看我用了几步
- 安卓开发的两种语言比较——Java & Kotlin
- unity 选择不同的枚举在面板上显示不同的属性
- MySQL 不能添加外键:Cannot add foreign key constraint错误
- 带你深入理解STL之Set和Map
- 【银行】2015农行软开 笔试+面试 小记
- GCC 编译优化指南
- 约瑟夫环
- HDOJ 1859 最小长方形