`
JFires
  • 浏览: 42993 次
  • 性别: 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
分享到:
评论

相关推荐

    sabreuri一个功能URIs操纵库

    【标题】"sabre/uri - 一个功能URIs操纵库" 【描述】"sabre/uri 是一个专门用于处理和操作统一资源标识符(URI)的PHP库。它提供了一系列的功能,使得在PHP应用程序中对URI进行创建、解析、合并以及比较等操作变得...

    rfc2079中文.txt-X.500属性类型和对象类别去掌握统一资源定位器(URIs)的定义

    ### X.500属性类型和对象类别定义统一资源定位器(URIs) #### 概述 本文档(RFC 2079)定义了一种X.500属性类型和对象类别,用于存储和管理统一资源定位器(Uniform Resource Identifiers, URIs)。URIs是一种标准...

    URIS:IG Publisher回购

    在这个过程中,开发人员需要深入理解和掌握HL7 FHIR等标准,以确保URIS-IG与之兼容,并且能够处理医疗数据的复杂性和敏感性。此外,他们还需要关注数据安全和隐私保护,因为医疗信息的保密性和完整性至关重要。 总...

    URIs:只是一个帮助我理解 C# 和 URI 处理的 repo

    URI 该任务由 Sebastián 于 2015 年 8 月 5 日星期三发送,展示了如何在小提琴的帮助下动态创建 QueryString。 用: 对于任何不是列表或类的对象(即:“对象”):object.ToQueryString().ToURL(“ ”) 以下对象是...

    haha手册

    根据提供的文件信息,本文将对《haha手册》中关于ActiveMQ的相关知识点进行详细解析,内容涵盖ActiveMQ的基础介绍、组件、连接器、通配符、客户端与代理配置、网络结构等多个方面。 ### 1. ActiveMQ简介 #### 1.1 ...

    Mule ESB 3 User Guide

    用户指南将解释如何使用现有的云连接器(例如***、Cybersource、SalesForce等)以及如何构建自定义的云连接器。 ### 开发者工具与环境配置 12. **Eclipse和IntelliJ的使用**: 描述如何在这些流行的IDE中集成Mule...

    ActiveMQ In Action

    **配置ActiveMQ**主要包括理解连接器(Connectors)、消息持久化以及安全配置等内容。 - **理解连接器**: - **连接器URIs**:用于定义ActiveMQ如何与其他系统通信的URI格式。 - **配置传输连接器**:例如TCP、...

    mule ESB 3 user guider

    Mule ESB支持多种传输协议,用户需要学会配置Mule Endpoint URIs,并理解如何通过不同的传输方式连接SaaS、社交媒体和其他电子商务平台。 6. 云连接集成: Mule Cloud Connect是Mule ESB中用于连接云服务和SaaS应用...

    大数据之Hive官方文档简要翻译(中文文档)

    - `hive.metastore.uris`:用于连接到远程元存储的URIs列表,用于实现高可用性。Hive会首先尝试连接列表中的第一个URI,如果失败,则会尝试其他URI。 - `hive.metastore.local`:(从Hive 0.10版本开始废弃)用于...

    开源项目-MediaMath-cove#gosh---get-over-ssh---simple-script-for-getting-go-packages-at-supplied-uris.zip

    开源项目-MediaMath-cove#gosh---get-over-ssh---simple-script-for-getting-go-packages-at-supplied-uris.zip,gosh - get-over-ssh: a script to get private git repos over ssh.

    flink1.12.0集成或者连接hive3.1.2的依赖包

    在 Flink 1.12.0 中,已经对 Hive 连接器进行了优化和增强,使其更加稳定和高效。 首先,集成 Flink 和 Hive 需要添加相应的依赖。对于 Java 或 Scala 开发者,需要在 Maven 或 SBT 构建文件中引入 Flink 的 Hive ...

    django 配置

    django 设置settings.py,本文以mysql 为例,说明怎样配置mysql d的连接

Global site tag (gtag.js) - Google Analytics