4.1 Understanding connector URIs
4.1 了解连接器的URI
Before discussing the details of connectors and their role in the overall ActiveMQ
architecture, it’s important to understand connector URIs. Uniform resource identifiers
(URIs), as a concept, aren’t new, and you’ve probably used them over and over again
without realizing it. URIs were first introduced for addressing resources on the World
Wide Web. The specification (http://mng.bz/8iPP) defines the URI as “a compact
string of characters for identifying an abstract or physical resource.” Because of the
simplicity and flexibility of the URI concept, they found their place in numerous internet
services. Web URLs and email addresses we use every day are just some common
examples of URIs in practice.
在详细介绍连接器及其在整个ActiveMQ体系中所扮演的角色之前,弄清URI的概念是非常重要的.
统一资源标识符(URI)不是一个新的概念,你可能已经用过他们好多次了,只是你还没有意识到.
URI首先在WWW网中用来定义资源.URI规范(参加http://mng.bz/8iPP)中对RUI的定义:
一串用于定位抽象资源或物理资源的紧凑字符.URI因其简单和灵活,而被广泛用于各种各样的因特网服务中.
我们天天使用的web地址和email地址就是URI的普通列子.
Without going too deep into discussing URIs, let’s briefly summarize the URI structure.
This will serve as an ideal introduction to URI usage in ActiveMQ in regard to
connectors.
Basically, every URI has the following string format:
<scheme>:<scheme-specific-part>
这里不打算深入讨论URI,而是简要介绍URI的结构,这将成为阐明URI在ActiveMQ连接器(connector)中用处的理想方法.
通常,每个URI都有如下结构:
<协议>:<协议-细节-部分>
Consider the following URI:
mailto:users@activemq.apache.org
Note that the mailto scheme is used, followed by an email address to uniquely identify
both the service we’re going to use and the particular resource within that service.
The most common form of URIs are hierarchical URIs, which take the following
form:
<scheme>://<authority><path><?query>
This kind of URI is used by web browsers to identify websites. It’s a type of URI known
as a URL (Uniform Resource Locator).
请看如下URI示例:
mailto:users@activemq.apache.org
注意,这个URI使用了mailto协议(mailto后面是是email地址),该协议既说明了我们使用的服务同时也指定了
该服务中所需的特定的资源.
格式:
<协议>://<授权认证><路径><?查询字符串>
这种URI是web浏览器使用的.它是URI的一种,即我们常说的URL(统一资源定位器).
Below is an example:
This URL uses the http scheme and contains both path and query elements which are
used to specify additional parameters.
Because of their flexibility and simplicity, URIs are used in ActiveMQ to address specific
brokers through different types of connectors. If we go back to the examples discussed
in chapter 3, you can see that the following URI was used to create a
connection to the broker:
tcp://localhost:61616
This is a typical hierarchical URI used in ActiveMQ, which translates to “create a TCP
connection to the localhost on port 61616.”
ActiveMQ connectors using this kind of simple hierarchical URI pattern are sometimes
referred to as low-level connectors and are used to implement basic network communication
protocols. Connector URIs use the scheme part to identify the underlying
network protocol, the path element to identify a network resource (usually host and
port), and the query element to specify additional configuration parameters for the
connector. The anatomy of a URI is shown in figure4.1.
下面是一个例子:
这个URL使用http协议,包含路径元素(path)和查询字符串元素(query),其中查询字符串元素用来指定额外的参数.
因为简单灵活,ActiveMQ通过不同的连接器(connector)使用URI来标识给定的代理(broker).回到第三章中导论的
例子,你可以但看到下面的URI创建了一个连接到代理的连接.:
tcp://localhost:61616
tcp://localhost:61616?trace=true
scheme path query
Figure 4.1 Anatomy of a URI
This URI extends the previous example by also telling the broker to log all commands
sent over this connector (the trace=true part).
This is just one example of an option that’s available on the TCP transport.
这个URI是上面的例子的扩展,通过传递一个参数(trace=true部分)
告知代理(broker)需要给所有通过连接器(connector)执行的命令记录日志.
The failover transport in ActiveMQ supports automatic reconnection as well as the
ability to connect to another broker just in case the broker to which a client is currently
connected becomes unavailable. As will be discussed in chapter 10, ActiveMQ makes
this easy to use and configure through the use of composite URIs. These composite URIs
are used to configure such automatic reconnection. In figure 4.2, you can see an example
of a typical composite URI.
static:(tcp://host1:61616,tcp://host2:61616)
scheme path1 path2
ActiveMQ提供一种失效自动转移的传输连接器.如果当前客户端与代理(broker)之间的连接变得不可用,
这种连接器支持自动重新建立连接,或者自动连接到其他的代理(broker).正如你将在第十章中看到的,
ActiveMQ使用一种复合URI,因而这种失效自动转移的传输连接器的使用和配置都很简答.这种复合URI正是
用了配置这种自动重连的. 图4.2是一个复合URI的一个典型实例.
Note that the scheme part or the URI now identifies the protocol being used (the
static protocol will be described later in this chapter) and the scheme-specific part
contains one or more low-level URIs that will be used to create a connection. Of
course, every low-level URI and the larger composite URI can contain the query part
providing specific configuration options for the particular connector.
注意,URI的协议部分(scheme)指定了使用的协议(本章稍后将讨论static协议),协议说明部分通常包含
1个或多个次级URI(low-level URIs)用来创建连接.
(译注: 比如static:(tcp://host1:61616,tcp://host2:61616)中,static是协议部分,
tcp://host1:61616,tcp://host2:61616是两个次级URI用来创建连接)
NOTE Since composite URIs tend to be complex, users are often tempted to
insert white spaces to make them more readable. Such white space is not
allowed, since the URI specification (and its standard Java implementation)
doesn’t allow it. This is a common ActiveMQ configuration mistake, so be
careful not to put white space in your URIs.
注意: 因为复合RUI通常比较复杂,用户经常会插入一些空格是的符合URI可读性更好些.但是,
这些空格是不合法的,因为URI规范(以及该规范的Java实现)不允许URI中的非法空格.
这是在配置ActiveMQ时的一个常见错误,所以在配置时需要十分小心,不要在URI中添加不必要的空格.
Now that you have some familiarity with ActiveMQ URI basics, let’s move on to discuss
various connectors supported by ActiveMQ. In the rest of this chapter, we’ll discuss
transport connectors and network connectors and how to configure them.
现在,你应该对ActiveMQ URI的基础知识有些熟悉了,
让我们开始讨论ActiveMQ支持的各种连接器.在本章的剩余部分,我们将讨论传输连接器(transport connector)
和网络连接器(network connector)以及如何配置他们.
相关推荐
HttpClient 4.1.4引入了连接管理器,如`PoolingHttpClientConnectionManager`,它可以控制连接池的大小、超时时间等。这在处理大量并发请求时非常有用。 六、重定向与认证 HttpClient支持自动处理重定向,通过`...
ChibaContext 是一个全局上下文对象,用于存储和管理整个应用程序的状态信息,如配置参数、连接器 URI 等。 #### 6.4 配置 这部分介绍了 Chiba 的配置机制,特别是 `default.xml` 文件的作用,该文件包含了 Chiba ...
- **管理连接和连接管理器**:连接管理器管理着连接池。 - **简单连接管理器**:适用于简单的场景。 - **连接池管理器**:管理连接池,以提高性能。 - **连接管理器关闭**:在不再需要连接时释放资源。 **2.9 连接...
- **连接事件监听器**:监听连接事件,并根据需要采取相应措施。 - **非阻塞的TLS/SSL**:支持非阻塞的加密通信。 #### 四、高级主题 **4.1 HTTP报文解析和格式化框架** - **HTTP的行解析和格式化**:定义了HTTP...
在开发过程中,开发者需要理解DEV和PROD模式的不同,以及如何连接Java调试器。 **三HTTP路由** 3.1 路由语法 了解路由语法,包括HTTP方法、URI表达式以及如何定义Java调用是掌握Play框架的关键部分。 3.2 路由...
- **适用M2M需求**:它专门针对资源受限的设备,如8位微控制器,适应低功耗和小型内存环境。 - **基于UDP**:使用用户数据报协议,提供较低的开销和更快的响应,同时通过可选机制支持可靠传输。 - **单播与多播支持*...
2. **数据适配器(Adapter)**:适配器是连接数据源和视图的关键,你可以创建一个继承自BaseAdapter的自定义类,将获取到的图片URI列表映射到视图上,如ImageView。 3. **布局管理器(LayoutManager)**:在现代...
**2.3.1 管理的连接和连接管理器** - **定义**:负责管理连接池、创建和销毁连接的组件。 - **作用**:提高性能和资源利用率。 **2.3.2 简单连接管理器** - **定义**:简单的连接管理策略。 - **特点**:每次请求...
3.5.1 URL和URI 3.5.2 使用URLConnection获取信息 3.5.3 提交表单数据 第四章 数据库编程 4.1 JDBC的设计 4.1.1 JDBC驱动程序类型 4.1.2 JDBC的典型用法 4.2 结构化查询语言 4.3 JDBC配置 4.3.1 数据库URL 4.3.2 ...
- **Content URI:** 一种特殊格式的URI,用于标识内容提供器中的数据。 #### 五、清单文件 **5.1 清单文件结构** - **结构:** AndroidManifest.xml文件包含了应用程序的关键信息,如应用的名称、版本号等。 - **...
3.4.4.1. 文件 Resolver 3.4.5. 基本用法 4. Zend_Cache 4.1. 简介 4.2. 缓存原理 4.2.1. Zend_Cache 工厂方法 4.2.2. 标记纪录 4.2.3. 缓存清理 4.3. Zend_Cache前端 4.3.1. Zend_Cache_Core 4.3.1.1. ...
1.3.1 编辑器 1.3.2 语法分析程序和处理程序 1.3.3 浏览器和其他工具 1.3.4 处理过程总结 .4 相关技术 1.4.1 超文本标记语言(Hypertext Markup Lan 1.4.2 级联样式单(Cascading Style Sheets) 1.4.3 可扩展的样式...
iOS应用的控制界面通常由一系列的ViewController组成,开发者可以通过storyboard或代码创建并链接这些控制器,实现用户界面和逻辑的交互。 3.4.2. Android控制界面入口 Android应用的入口通常为一个Activity,...
- **3.5 建立URL连接**:讲解了如何使用Java处理URL连接,包括URL和URI的概念。 #### 六、数据库编程 - **4.1 JDBC的设计**:介绍了JDBC的基本设计原则和驱动程序类型。 - **4.2 结构化查询语言**:讲解了SQL的...
try_files $uri $uri/ =404; } } ``` #### 4.3 反向代理与负载均衡 Nginx可以作为反向代理服务器,将请求转发到后端应用服务器。同时,通过`upstream`模块可以实现负载均衡,提高服务可用性和响应速度。 #### ...
此外,它还支持SSL、TLS SNI等功能,模块化的架构和过滤器功能,如gzip压缩、ranges支持、chunked响应、XSLT,SSI和图像缩放等。 在HTTP服务器的高级特性方面,nginx能够根据域名和IP地址支持虚拟主机,支持Keep-...
第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目...