JMS-ActiveMQ
来源:互联网 发布:mac上能玩的网游 编辑:程序博客网 时间:2024/06/05 15:14
昨天用了一天时间了解了一下JMS(Java Message Service,Java消息服务)嗯嗯感觉这东西感觉蛮好玩的。
JMS是什么鬼呢?
JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程中的所有数据结构和交互流程。
噢?(不明白??喝杯奶茶!)
就是说,大家可以把JMS理解成Java平台上的一个标准或者说是一个协议。该标准或协议制定了两个应用程序之间,或分布式系统中如何发送消息,进行异步通信的规则。这样子就好理解多了~
ActiveMQ又是什么鬼
噢?
那ActiveMQ又是什么鬼,为啥标题写成JMS-ActiveMQ,两者有什么关系吗?哈哈!你别说,两者可真有关系。
JMS通常用于企业级应用的消息传递,主要以Point-to-Point(P2P)、Publish/Subscribe(Pub/Sub)两种通讯模式进行消息传递。而ActiveMQ则是一个JMS的实现, 是Apache出品的开源消息总线,其中MQ(Message Queue,消息队列)表示的是,该实现是一种应用程序对应用程序的通信方法,是面向消息中间件(MOM)的最终实现,是真正的服务提供者。
MQ实现的通讯方法正是上面所提及的P2P、Pub/Sub通讯机制,至于怎么实现的呢?我们来看看这两个通讯模式的模式图:
- P2P(1对1通讯):
每个消息都被发送者发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到他们被消费或超时。
P2P特点:
每个消息只有一个消费者,意思就是说,消息一旦被消费,消息就不再在存在于消息队列中。
发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列。
- Pub/Sub(1对N通讯,N>=0):
发布者(发送消息方)将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。
Pub/Sub特点:
1对N通讯。
发布者和订阅者之间有时间上的依赖性。就是说没有发布者就是没有订阅者。
java具体实现
说这么多,光懂理论没啥用,还不如实践一下~。
前面我们讨论过JMS只是服务接口,并没有给予实现,实现JMS接口的消息中间节成正是ActiveMQ。
JMS编程:
JMS-ActiveMQ VS WebSocket
噢?
了解过WebSocket的朋友肯定会问,JMS-ActiveMQ与WebSocket有什么不同呀。大家都能实现某种通讯功能。
WebSocket协议实时通信技术原理:
http://blog.csdn.net/for_anmin/article/details/78549226
从概念来说,WebSocket是 HTML5的一种传输协议,实时,全双工通信,长连接,实现前台向后台,后台向前台发出请求。ActiveMQ是消息中间件,主要实现是队列,用于处理消息,用于跨平台、分布式或跨应用进行消息通讯。但是。。。(But…),ActiveMQ 5.9版后支持基于AMQP、MQTT、OpenWire、Stomp,WS这5种协议的通讯,其中WS既是WebSocket。就是说,我们可以通过Web端进行Java的跨平台或跨应用通讯了。
备注:
跨平台/跨应用:不同OS的电脑只要配备Java的运行环境(JVM)即可实现跨平台。
啊噶啦哇呀!吃饭时间,放下奶茶~
- JMS ActiveMQ
- JMS ActiveMQ
- JMS ActiveMQ
- JMS activeMQ
- JMS------ActiveMQ
- JMS activeMQ
- JMS-ActiveMQ
- Jms---ActiveMQ学习笔记
- jms activeMQ 应用
- jms activeMQ 应用
- [JMS] ActiveMQ -- 入门
- JMS-ActiveMQ入门
- activeMQ-JMS备忘录
- ActiveMq实现JMS
- Spring+ActiveMQ JMS實現
- JMS ActiveMQ研究文档
- activeMQ+JMS笔记
- jms+spring+activemq配置
- 【解决】字节输入流汉语乱码问题
- MySQL数据类型-字符串类型
- jarsperreports生成PDF中文不显示问题
- 在GridView在添加最后一行的总计一列,怎么把6个零变成3个零,在后台处理
- Java 的深拷贝和浅拷贝
- JMS-ActiveMQ
- Android总结之style(样式)和Theme(主题)
- Elevator
- 关于Android 5.0以上截屏API MediaProjection的使用方式总结
- 我的感受
- linux iptables实现单机多ip出口ip负载均衡(宽带叠加)
- CSS选择器
- Android7.0 PowerManagerService(4) Power按键流程
- java.lang.AssertionError: UNIMPLEMENTED