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

4.1理解连接器URIs

阅读更多

第二部分:配置标准ActiveMQ组件

使用ActiveMQ看起来很简单直接:启动它,发送消息,接收消息。但是你没有看到隐藏在这些步骤后面的细节。理解这些细节和自定义配置需要更多的例子来说明。虽然ActiveMQ提供了大量的配置选项,但是理解一些核心的选项对于大多数应用是很必要的。

    第二部分深入到ActiveMQ关键的配置选项,包括连接,消息持久化,安全。这三个主题是你使用ActiveMQ最先遇到的问题,所以率先理解它们很重要。

 

第4章:连接到ActiveMQ

本章内容:

  • ActiveMQ连接器URIs的描述和演示
  • 客户端如何使用传输连接器连接ActiveMQ
  • 如何使用网络连接器创建一个集群ActiveMQ消息代理器

ActiveMQ等JMS代理器的目的是为客户端应用提供一个交互的架构。所以,ActiveMQ提供连接器(connectors)。连接器提供客户端到代理器的交互(使用transport connectors),和代理器间的交互(使用network connectors)。ActiveMQ允许客户端使用各种协议进行连接,同时也运行代理器间通过连接通道来形成复杂的连接器网络。

    这章我们先解释连接器URIs,它们是用来指明代理器的地址的。之后,我们介绍传输连接器(transport connectors)以及有哪些协议可以用来连接ActiveMQ代理器。

注意:

我们这里会用到连接器(connector)和协议(protocol)两个概念。协议是一个通用的概念,而连接器是ActiveMQ特定的一个东西。每个ActiveMQ连接器,实现一个特定的协议,并用它来作为自己的名字。对于下面将的内容要注意我们是在讨论某个协议还是在讨论一个特定的ActiveMQ连接器。

 

我们先解释如果配置传输连接器。然后,我们修改股票投资的例子,使之使用各种不同的连接器,并演示该例子。看完该例子后,我们移到特定的连接器,讨论的传输连接器将包括TCP,SSL和HTTP。接下来,我们将介绍使用VM协议的嵌入式代理器。

    最后讨论的是使用网络连接器进行ActiveMQ集群的一些基本概念。我们将演示如果通过static协议创建静态的网络连接器,以及客户端如何通过failover协议稳定地连接到这些网络连接器上面。使用multicast和disvovery协议的动态连接器也会被讨论。这一节只是介绍网络连接器的一些基本的概念和协议,更多的内容将放到第10章。

 

4.1理解连接器URIs

在讨论连接器细节和它们在ActiveMQ架构的角色之前,理解连接器URIs很重要。统一资源定位符(Uniform resource identifiers),作为一个概念,并不新,而且你可能已经多次使用过它们而没有意识到而已。URIs第一次被引入来定位资源是在万维网(World Wide Web)。规范(http://mng.bz/8iPP)对URI的定义是:一个用来标识抽象或物理资源的简洁的字符串。因为URI的简单和灵活,它已经很多互联网服务使用。Web URLs和email地址就是我们日常用的URI的两个例子。

    我们不去深入讨论URIs,不过必须简要地讲一下URI的结构。这对于了解为什么ActiveMQ使用URI来定位连接器很有帮助。

    基本地,每个URI都遵循下面的格式:

<scheme>:<scheme-specific-part>

考虑下面的URI:

mailto:users@activemq.apache.org

注意使用到了mailto 协议,跟着的是一个email地址唯一地标识了我们要用到的服务和特定的资源。

    最常用的URIs是分层的URIs,它的格式如下:

<scheme>://<authority><path><?query>

这类URI被浏览器用来标识网站。有一种类型的URI叫做URL(Uniform Resource Locator)。下面是一个例子:

http://www.nabble.com/forum/NewTopic.jtp?forum=2356

这个URL使用http协议并且使用path和query元素来指定额外的参数。

    因为URIs的简单灵活,ActiveMQ使用它们来定位不同类型的各个连接器。如果你回去看第3章,你可以看到下面的URI被用来创建一个连接器。

tcp://localhost:61616

这是一个典型的分层URI,它的含义是“在本地61616端口创建一个TCP连接。”

    这类使用简单分层URI模式的连接器被叫做low-level连接器,它们被用来实现基础的网络交流协议。连接器URIs使用schema来表示当前的网络协议,path元素用来标识网络资源(通常是地址和端口),query用来指定特殊的配置参数。

图4.1显示了URI的结构。这个URI扩展了前面的例子,它还告诉所有的代理器记录所有的命令(trace=true部分)。这是TCP端口可选的一个参数。



 ActiveMQ的故障转移传输机制支持自动重连。也即是说,如果一个代理器不在线,客户端可以连到另一个代理器上。ActiveMQ通过使用复合URIs满足这种需求。在图4.2,你可以看到一个这种URI。

 

注意在scheme部分用到了static(static协议将在本章后面讨论)并且scheme-specific部分用到了一个或多个地等级URIs。当然,整个URI或者里面的低层次URI都可以包含查询参数。

注: 因为整个URI看起来比较复杂,所以用户经常会在中间插入空格以增强可读性。这是不被允许的。因为URI规范及它的Java实现都这样要求。所以请记得不要在URI中放任何空格。

现在你已经了解了ActiveMQ URI基本知识,我们接下来可以讨论ActiveMQ支持的连接器类型。本章接下来部分将讨论传输连接器和网络连接器以及如何配置它们。

 

  • 大小: 8.4 KB
  • 大小: 11.1 KB
2
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics