• JMS笔记(一)


    1.jms概念

    Java Message Service为 Java程序提供一种访问企业消息系统的方法,JMS应用由JMS生产者、JMS Provider、JMS消费者构成

    1.1. 一条Message 的组成

    (1) 头(head)

    每条JMS 消息都必须具有消息头。头字段包含用于路由和识别消息的值。可以通过多种方式来设置消息头的值:

    a. 由JMS 提供者在生成或传送消息的过程中自动设置

    b. 由生产者客户机通过在创建消息生产者时指定的设置进行设置

    c. 由生产者客户机逐一对各条消息进行设置

    (2) 属性(property)

    消息可以包含称作属性的可选头字段。他们是以属性名和属性值对的形式制定的。可以将属性是为消息头得扩展,其中可以包括如下信息:创建数据的进程、数据的创建时间以及每条数据的结构。JMS提供者也可以添加影响消息处理的属性,如是否应压缩消息或如何在消息生命周期结束时废弃消息。

    (3) 主体(body)

    包含要发送给接收应用程序的内容。每个消息接口特定于它所支持的内容类型。JMS为不同类型的内容提供了他们各自的消息类型,但是所有消息都派生自Message接口。

    StreamMessage   一种主体中包含Java基元值流的消息。其填充和读取均按顺序进行。

    MapMessage     一种主体中包含一组键--值对的消息。没有定义条目顺序。

    TextMessage       一种主体中包含Java字符串的消息(例如,XML消息)。

    ObjectMessage    一种主体中包含序列化Java对象的消息。

    BytesMessage     一种主体中包含连续字节流的消息。

    1.2. 消息传递模型

     JMS支持两种消息传递模型:点对点(point-to-point,简称P2P)和发布/订阅(publish/subscribe,简称pub/sub) 

    P2P特点:

    (1)每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)

    (2)发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列

    (3)接收者在成功接收消息之后需向队列应答成功

    Pub/Sub的特点

    (1)每个消息可以有多个消费者

    (2)发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。

    (3)为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。

    2. 安装ActiveMQ

    ibm的websphere mq提供了90天的试用版,虽然项目中使用的是websphere mq,但我没有仔细研究过,本机玩玩还是选择了ActiveMQ

    http://activemq.apache.org/activemq-5130-release.html 下载5.13.0,我用的windows系统,解压进入主目录bin下,运行activemq.bat就行了,如果控制台出现java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0 这样的错误,就是jdk版本的问题,官网提供的jar使用Build-Jdk: 1.7.0_80编译,你的jdk低了,简单的办法安装jdk1.7,设置主目录环境变量

    后面会介绍activemq的使用。。。

     

     

  • 相关阅读:
    使用python发送(SMTP)qq邮件
    google hack
    python多线程爬取网页
    windows自带的颜色编辑器居中
    (转)如何在任务栏添加托盘图标
    c++ 字符串转数字或数字转字符串
    (转)null和NULL和nullptr和””区别
    Windows系统自带选择文件的对话重写和居中处理
    ANSII 与Unicode,Utf8之间的转换
    (转) Windows如何区分鼠标双击和两次单击
  • 原文地址:https://www.cnblogs.com/yhzh/p/5099132.html
Copyright © 2020-2023  润新知