配置标准的 ActiveMQ 组件
简单地说,使用 ActiveMQ 的方式是固定且直接的:启动 ActiveMQ 服务器,发送消息,接收消息。但你并未理解 ActiveMQ 背后运作的详情。在一些要求更高的场景里,需要理解并有能力自定义配置。虽然 ActiveMQ 提供了大量的配置项,但是先理解核心配置项才是最重要的。
第二部分就开始深入介绍 ActiveMQ 中重要的配置项,包括:连接代理,消息持久化以及安全性。这三项是学习理解 ActiveMQ 的首要必须的。
连接 ActiveMQ
本章主要知识点:
- ActiveMQ 连接 URLs 的介绍和用法
- 怎么用传输层连接器连接 ActiveMQ 客户端
- 怎么使用网络连接创建 ActiveMQ 服务集群
像 ActiveMQ 这种 JMS 代理最主要的功能就是为客户端应用提供了连接方式。也因此,ActiveMQ 提供了连接器(connectors)——可以提供客户端到代理(使用传输层连接)以及代理到代理(使用网络连接)的连接机制。ActiveMQ 不仅允许客户端使用多种协议连接代理,而且也允许其他代理创建连接通道并构建复杂的 ActiveMQ 代理网络布局。
我们本章先介绍连接器中被用于指明代理位置的 URIs。然后我们深入研究传输层连接器并解释客户端可以使用哪些协议连接 ActiveMQ 代理。
理解连接器 URIs
ActiveMQ 连接器 URIs 就是稍微扩展了普通的 URI 的功能。
Transport connectors
Transport connectors
这个词真不好翻译啊!反正就是,客户端连接代理时就用 Transport connectors
。每个用户连接代理时的要求是不同的,有的人想要高性能,而其他人可能想要更高的安全性等,ActiveMQ 试图覆盖这所有的使用场景,为每种场景都提供一种连接方式。
这里涉及到了客户端连接 ActiveMQ 代理所用的几种协议,关于这几种协议的解释,我们可以来看下官方文档。
跨协议
Apache ActiveMQ 是用 Java 写的消息代理,提供了 JMS,REST 以及 WebSocket 接口,并且,它支持多种协议以便不同的编程语言使用,包括:AMQP,MQTT,OpenWire 和 STOMP。
REST 接口
ActiveMQ 提供了 REST 接口以便任何互联网设备都可以通过标准的 HTTP 的 GET 和 POST 方法来生产或消费消息。
如果你对处理消息感兴趣,你可以查看 AJAX 或者 WebSockets 支持,或者去运行下 REST 例子。
从 REST 到 JMS 的映射关系
发布消息使用 HTTP POST 方法,消费消息使用 HTTP DELETE 或者 GET 方法。
ActiveMQ 内部有一个 Servlet 提供了集成 HTTP 和 ActiveMQ dispatcher 的支持。
这地方东西有点多,以后用到了再回来细看吧!
WebSockets 接口
除了 AJAX 接口外,在 5.4.0 之后我们为浏览器新增了 WebSockets 接口支持。
这地方东西有点多,以后用到了再回来细看吧!
AMQP 协议
即 Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,未面向消息的中间件设计。
MATT 协议
MQTT,即 Message Queuing Telemetry Transport,消息队列遥测传输,是 IBM 开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过 Twitter 让房屋联网)的通信协议。
OpenWire 协议
这个好像是 ActiveMQ 自己定义的一种协议。
STOMP 协议
STOMP,即 Streaming Text Orientated Message Protocol,流文本定向消息协议,是一种为面向消息的中间件设计的简单文本协议。
Connecting to ActiveMQ over the network
即客户端使用以上说的几种协议连接代理。
Network connectors
通过网络连接,把多个 ActiveMQ 实例连接起来形成集群,以追求更高的可用性和可伸缩性。所以前面的内容都在讨论客户端怎么连接代理,而本小节讨论代理怎么连接代理。
Dynamic networks
通过多播等协议实现的。
参考
配置标准的 ActiveMQ 组件的更多相关文章
- [转]使用 Angular CLI 和 ng-packagr 构建一个标准的 Angular 组件库
使用 Angular CLI 构建 Angular 应用程序是最方便的方式之一. 项目目标 现在,我们一起创建一个简单的组件库. 首先,我们需要创建一个 header 组件.这没什么特别的,当然接下来 ...
- 关于linux中的目录配置标准以及文件基本信息
关于Linux中的目录配置标准 在查看docker.k8的运行日志,修改相关的运行记录的时候,学长总是能很快地找到目录,这个多多少少和Linux的FHS(File Hierarchy Standard ...
- Cisco基础(四):配置标准ACL、配置扩展ACL、配置标准命名ACL、配置扩展命名ACL
一.配置标准ACL 目标: 络调通后,保证网络是通畅的.同时也很可能出现未经授权的非法访问.企业网络既要解决连连通的问题,还要解决网络安全的问题. 配置标准ACL实现拒绝PC1(IP地址为192.16 ...
- iOS 高效灵活地配置可复用视图组件的主题
本文首发于 Ficow Shen's Blog,原文地址: iOS 高效灵活地配置可复用视图组件的主题. 内容概览 前言 如何配置主题? 如何更高效地配置主题? 面向协议/接口的方案 ...
- ActiveMQ组件使用方法
由于组件使用了spring,故需要相关的spring包及配置 首先,需要加载对应的jar包 然后,编写调用类 package com.demo.testSpring; import com.jfina ...
- K3中间层配置不成功 kdsvrmgr组件不工作 问题 客户端需要检查的设置
苏州K3刘保平电脑安装的K3装有中间层组件,导致中间层死配都配不成功 以后中间层配置不成功的时候除了检查能否访问K3服务器之外,还要检查一下是否安装了中间层http://wenku.baidu.co ...
- 编写一个可配置的网页信息提取组件 (二)—— 优雅的.net core 配置系统
引言 在上篇文章(http://www.cnblogs.com/lightluomeng/p/7212577.html)中,初步实现了一个可配置的网页信息分析组件.但是由于是奔着解决事情的目的去的,所 ...
- 6.安装和配置OpenStack图片服务组件
安装和配置图片服务组件 这里是安装在控制器上 安装和配置图片服务组件 yum install –y openstack-glance python-glanceclient 编辑/etc/glance ...
- vue创建路由,axios前后台交互,element-ui配置使用,django contentType组件
vue中创建路由 每一个vue组件都有三部分组成 template:放html代码 script:放js相关 style:放css相关 vue中创建路由 1.先创建组件 Course.vue 2.ro ...
随机推荐
- php cmd 不能利用$_COOKIE 的处理 通过文件来暂存字符串
路径 <?php define('CMDPATH', 'wD:\cmd\\'); echo CMDPATH; die(); broswer 路径无问题 w 读 用 <?php $wfile ...
- 洛谷 P4171 [JSOI]满汉全席
洛谷 最近刚刚学的2-sat,就刷了这道裸题. 2-sat问题一般是用tarjan求的,当出现(x,y)或(!x,y)或(x,!y)三种选择时,我们可以把!x->y,!y->x连边. 然后 ...
- 读取用户家目录下的配置文件到properties
String conf = System.getProperty("user.home") + File.separator + "a.properties"; ...
- Codeforces 240F. TorCoder 线段树
线段树统计和维护某一区间内的字母个数.. . . F. TorCoder time limit per test 3 seconds memory limit per test 256 megabyt ...
- android studio 和gradle版本问题解决
打开android studio 开始导入一个 covrdova项目 结果弹出一个这样的对话框意思是 "尚未配置此项目的 gradle" "是否希望项目使用gradle ...
- Java基础—复用类
复用代码是Java众多引人注目的功能之一. 一般而言,实现代码重用java提供了两种方式:组合以及继承. 组合:新的类由现有类的对象所组成.(复用现有代码的功能,而非它的形式) 继承:按照现有类的类型 ...
- (转)fiddler使用简介--其三
原文地址:http://www.cnblogs.com/miantest/p/7294620.html 我们知道Fiddler是位于客户端和服务器之间的代理,它能够记录客户端和服务器之间的所有 HTT ...
- Traverse the dict in Python
We usually use the following 2 ways to traverse a dict: 1: for d in dic 2: for d in dic.keys() Which ...
- LeetCode:学生的出勤记录|【551】
LeetCode:学生的出勤记录|[551] 题目描述 给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : P ...
- iOS NSSet 学习 “无序数组” & 去重 案例
“NSSet,NSMutableSet,和NSCountedSet类声明编程接口对象的无序集合(散列存储:在内存中的存储位置不连续). 而NSArray,NSDictionary类声明编程接口对象的有 ...