`
JFires
  • 浏览: 42992 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

4.2传输连接器

阅读更多

4.2传输连接器

为了交换信息,生产者和消费者必须连接到代理器。客户端到代理器的连接是通过传输连接器来实现的。ActiveMQ提供了一些客户端协议,可以用来交换信息。ActiveMQ用户对连接的要求是多种多样的。一些用户关注性能,一些用户关注安全或其它指标。ActiveMQ尝试满足所有这些要求,并对每一种使用场景提供一种连接器。

    在这一节,你将学会在ActiveMQ配置文件中配置传输连接器,然后修改股票投资例子来演示这些连接器。接下来的章节,我们将讨论网络连接器可用协议,并介绍内嵌代理器和虚拟机协议。这两个概念使得代理器可以在你的应用中运行,这个主题将在第七章继续讨论。

 

4.2.1配置传输连接器

对于代理器来说,传输连接器是用来接受和监听客户端连接的。如果你看一看ActiveMQ演示例子的配置文件(conf/activemq-demo.xml),你会看到类似如下的配置:

    <transportConnectors>
        <transportConnector name="openwire" uri="tcp://localhost:61616"
             discoveryUri="multicast://default"/>
         <transportConnector name="ssl" uri="ssl://localhost:61617"/>
         <transportConnector name="stomp" uri="stomp://localhost:61613"/>
         <transportConnector name="xmpp" uri="xmpp://localhost:61222"/>
      </transportConnectors>

你可以看到传输连接器定义在<transportConnectors>元素之间。你通过<transport-Connector>元素定义特定的连接器。ActiveMQ可以不同的端口上设置不同协议的连接器。一个连接器必须有自己唯一的名字和URI属性。在这个例子中,URI定义了网络协议和可选参数,通过它们,ActiveMQ将被曝露出来给客户端连接。discoveryUri属性是可选的,这个属性将在4.3.1节讲解。

    上面的片段定义了4个传输连接器。当你通过使用这样的配置文件启动ActiveMQ,你将看到如下日志:

INFO TransportServerThreadSupport - Listening for connections at:
tcp://localhost:61616

INFO TransportConnector - Connector openwire Started
INFO TransportServerThreadSupport - Listening for connections at:
ssl://localhost:61617
INFO TransportConnector - Connector ssl Started
INFO TransportServerThreadSupport - Listening for connections at:
stomp://localhost:61613
INFO TransportConnector - Connector stomp Started
INFO TransportServerThreadSupport - Listening for connections at:
xmpp://localhost:61222
INFO TransportConnector - Connector xmpp Started

 

从客户端角度,传输连接器是一个连接,通过它可以向代理器发送和接收消息。发送和接收消息的内容放在第七章。下面的代码展示了java应用如何使用传输连接器URIs。

ActiveMQConnectionFactory factory =
    new ActiveMQConnectionFactory("tcp://localhost:61616 ");
Connection connection = factory.createConnection();
connection.start();
Session session =
    connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

我们可以看到,在配置文件里定义的URI被客户端用来创建连接。在这个例子中,TCP传输URI将被使用。

注:我们可以在客户端和服务器端是用URI的query部分。通常地,这些参数对于客户端和服务器端都有用,但其中的一些只能用在某一部分。所以,在使用这些特定查询参数前请先查看文档说明。

理解了基本的传输连接器配置之后,我们应该了解ActiveMQ提供了哪些类型的传输连接器。不过在我们讲解特定传输连接器之前,我们先修改股票投资例子,让它使用不同的传输连接器。

 

4.2.2修改股票投资例子

第三章引入了一个股票投资例子,它用ActiveMQ来发布和消费股票交易消息。当时,我们使用标准的连接器URI,因为我们想让这个例子看起来尽量简单。这一章,我们将介绍所有的协议并同意股票投资例子来使用它们。所以,我们要修改该例子,让它使用任意的协议工作。

    列表4.1是main()一个修改后的版本。

Listing 4.1 Modifying stock portfolio publisher to support various connector URIs



 前面的代码保证连接器URI作为第一个参数被传递,并且剩下的参数是额外的目标的名称。现在,生产者可以通过下面的命令来运行:

$ mvn exec:java -Dexec.mainClass=org.apache.activemq.book.ch4.Publisher \
-Dexec.args="tcp://localhost:61616 CSCO ORCL"

...
Sending: {price=65.713356601409, stock=JAVA, offer=65.779069958011,
up=true}
on destination: topic://STOCKS.JAVA
Sending: {price=66.071605671946, stock=JAVA, offer=66.137677277617,
up=true}
on destination: topic://STOCKS.JAVA
Sending: {price=65.929035001620, stock=JAVA, offer=65.994964036622,
up=false}
on destination: topic://STOCKS.JAVA
...

注意到现在有三个参数被传送给生产者。我们也可以用相同的方法来修改消费者。在下面的列表中,被修改后的消费者把第一个参数作为URI来使用。

Listing 4.2 Modifying stock portfolio consumer to support various connector URIs



 为了达到和第三章相同的功能,你必须提供一个额外的URI参数。下面的例子展示了如何做:

$ mvn exec:java -Dexec.mainClass=org.apache.activemq.book.ch4.Consumer \
-Dexec.args="tcp://localhost:61616 CSCO ORCL"

...
ORCL 65.71 65.78 up
ORCL 66.07 66.14 up
ORCL 65.93 65.99 down
CSCO 23.30 23.33 up
...

注意,消息在生产者和消费者之间的流动是和原始例子一样。通过这些修改,现在这个例子可以使用各种协议运行了。现在我们应该深入到特定的连接器里面了。下面的部分你将看到你通过网络连接代理器有什么选择。

  • 大小: 51.2 KB
  • 大小: 36.2 KB
0
1
分享到:
评论

相关推荐

    黑莓桌面管理器4.2

    **黑莓桌面管理器4.2详解** 黑莓桌面管理器4.2是一款专为Blackberry OS 5.0及以下版本设计的管理工具,它为用户提供了与黑莓手机进行高效交互的平台。这款软件以其简洁的界面和易于操作的特点,深受黑莓用户的喜爱...

    各种常见PCB直插连接器

    13. 5556-2P和L6.2-4P对接连接器:4.2mm和6.2mm间距的对插连接器,适用于多种电压和电流条件,具有良好的绝缘和接触电阻性能。 14. CF-3P条形连接器:6.35mm间距的连接器,适用于需要较大间距和稳定性的应用。 在...

    蓝牙4.2协议 Core_v4.2

    蓝牙4.2协议是在2014年12月发布,是当时最新的一代蓝牙技术标准,该版本提供了更好的数据传输速率、隐私保护以及与互联网的更好连接能力。 在提到蓝牙4.2核心协议时,核心指的是蓝牙技术核心规范(Bluetooth Core ...

    BLE_4.2核心规范

    蓝牙4.2的协议栈包括物理层(PHY)、链路层(LL)、主机控制器接口(HCI)、逻辑链路控制与适配协议(L2CAP)、属性协议(ATT)和GATT,以及应用层。每一层都有其特定的功能和责任,共同保证了蓝牙设备间的高效、...

    MDB协议 4.2中文完整版

    - **连接器规格**: 明确了用于连接设备的物理接口的类型和规格。 - **示例原理图**: 提供了实现硬件连接的具体示例。 ##### 5. 硬币接受者/变换者 - **VMC/外围通信规范**: 描述了自动售货机控制单元 (VMC) 与硬币...

    蓝牙内核协议_v4.2_蓝牙4.2协议_蓝牙内核_蓝牙协议_

    在《蓝牙内核协议_v4.2.pdf》这份文档中,读者可以深入理解蓝牙4.2的规范细节,包括物理层(PHY)、链路层(LINK Layer)、主机控制器接口(HCI)、逻辑链路控制和适应协议(L2CAP)、属性协议(GATT)以及安全管理(SMP)等核心...

    连接器、线缆选型及其组件设计规范...pdf

    4.2章节详细讨论了欧式连接器,首先概述了其特性,如体积、接插方式、额定电流和电压等,然后给出了选型步骤和考虑因素,包括环境条件、机械寿命、电磁兼容性等。4.3章节对2MM连接器进行了介绍,包括其特性(如小型...

    IAR EW430 V4.2版本下的仿真器驱动

    仿真器驱动在嵌入式开发中起着至关重要的作用,它是连接计算机与目标硬件的桥梁,使得开发者能够在PC上对MSP430微控制器进行程序的编译、下载和调试。在IAR EW4.2环境下,驱动程序通常包含了必要的USB驱动和通信协议...

    EduKit2410下Wince4.2系统映像下载说明

    - 将实验子板S3C2410插到主板连接器上,并进行必要的跳线设置。 - 连接仿真器到实验平台。 - **编译与烧写过程**: - 使用EmbestIDE打开NBOOT_EDUKIT2410.pjf工程文件,并编译生成EduKit2410_nboot.bin文件。 -...

    传输管理器1

    类型定义进一步扩展了基础类型,例如定义特定的结构体或类,以适应传输管理器的特定需求,如文件传输任务对象、网络连接状态对象等。 综上所述,传输管理器1是一个综合性的网络数据传输工具,其设计涵盖了数据处理...

    sysmex_希森美康的Laboman4.2模拟仪器串口通讯的安装说明

    安装Laboman4.2后,数据流将通过TCP/IP协议进行传输,这种方式避免了传统串口连接时可能遇到的问题,并且减少了对于LIS工程师的技术依赖。 #### 三、安装步骤详解 **1. 修改IPU数据传输模式** 首先,需要从IPU...

    Bluetooth 4.2 Quick Reference Guide.pdf

    蓝牙4.2在传输速度上也有了明显的提升,数据吞吐量可以增加多达2.5倍,且增加了10倍的数据包容量。 - LE数据长度扩展:蓝牙4.2版的数据长度扩展功能使得空中固件更新可以比先前版本快250%且更加可靠。 综上所述,...

    onfi4.2 协议文档英文版

    文档的目的是为NAND闪存接口提供一个标准化的连接器设计,这有助于制造商在设计支持NAND闪存的硬件时保持兼容性,并能够利用最新的技术进步。在协议中,详细规定了连接器的物理特性、电气规范、信号定义以及操作模式...

    蓝牙4.2:不用WiFi的连接技术.docx

    ### 蓝牙4.2:不用WiFi的连接技术 #### 概述 随着无线通信技术的不断发展,蓝牙和WiFi已成为人们日常生活中不可或缺的一部分。在众多无线连接技术中,蓝牙和WiFi尤为突出。然而,当WiFi出现故障时,依赖于它的智能...

    use sse in spring4.2

    这种技术允许服务器初始化数据传输给客户端,一旦初始客户端连接建立后即可实现。SSE常用于向浏览器客户端发送消息更新或连续数据流,并且是通过一个名为EventSource的JavaScript API来实现的。客户端通过请求特定的...

    Bluetooth SIG官方协议,Bluetooth 4.2,BLE 4.2,非扫描版本。

    综上所述,Bluetooth 4.2(包括BLE 4.2)的发布带来了许多重要的改进和技术革新,特别是在数据传输速度、隐私保护、连接范围和稳定性方面。这些改进不仅提升了用户体验,也为开发人员提供了更多可能性,使得蓝牙技术...

    spring4.2+hibernate4.2+struts2.3.29整合所需jar包

    - **mysql-connector-java-5.1.31-bin.jar**:这是MySQL的Java连接器,用于连接Java应用程序到MySQL数据库。 - **jackson-mapper-asl-1.9.2.jar**:Jackson 是一个JSON处理器,用于在Java对象和JSON之间进行序列化和...

    CA-SDKv4.2(CA210 驱动)

    CA-SDKv4.2是针对CA210彩色分析仪设计的一款驱动程序,主要用于帮助用户将该设备成功地与计算机进行连接并实现数据交互。CA210是一款专业级的色彩测量工具,广泛应用于印刷、电子、纺织、化妆品等行业,以确保产品...

    Core1553BRM v4.2 Handbook

    6. **外部组件**:这部分介绍了与Core1553BRM接口的外部组件,如物理连接器、电缆和终端电阻,以及它们对总线性能的影响。 7. **MIL-STD-1553B总线概述**:这部分深入解释了MIL-STD-1553B总线的工作原理,包括其双...

Global site tag (gtag.js) - Google Analytics