简单地说,使用 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 Connectivity

配置标准的 ActiveMQ 组件的更多相关文章

  1. [转]使用 Angular CLI 和 ng-packagr 构建一个标准的 Angular 组件库

    使用 Angular CLI 构建 Angular 应用程序是最方便的方式之一. 项目目标 现在,我们一起创建一个简单的组件库. 首先,我们需要创建一个 header 组件.这没什么特别的,当然接下来 ...

  2. 关于linux中的目录配置标准以及文件基本信息

    关于Linux中的目录配置标准 在查看docker.k8的运行日志,修改相关的运行记录的时候,学长总是能很快地找到目录,这个多多少少和Linux的FHS(File Hierarchy Standard ...

  3. Cisco基础(四):配置标准ACL、配置扩展ACL、配置标准命名ACL、配置扩展命名ACL

    一.配置标准ACL 目标: 络调通后,保证网络是通畅的.同时也很可能出现未经授权的非法访问.企业网络既要解决连连通的问题,还要解决网络安全的问题. 配置标准ACL实现拒绝PC1(IP地址为192.16 ...

  4. iOS 高效灵活地配置可复用视图组件的主题

      本文首发于 Ficow Shen's Blog,原文地址: iOS 高效灵活地配置可复用视图组件的主题.   内容概览 前言 如何配置主题? 如何更高效地配置主题? 面向协议/接口的方案     ...

  5. ActiveMQ组件使用方法

    由于组件使用了spring,故需要相关的spring包及配置 首先,需要加载对应的jar包 然后,编写调用类 package com.demo.testSpring; import com.jfina ...

  6. K3中间层配置不成功 kdsvrmgr组件不工作 问题 客户端需要检查的设置

    苏州K3刘保平电脑安装的K3装有中间层组件,导致中间层死配都配不成功  以后中间层配置不成功的时候除了检查能否访问K3服务器之外,还要检查一下是否安装了中间层http://wenku.baidu.co ...

  7. 编写一个可配置的网页信息提取组件 (二)—— 优雅的.net core 配置系统

    引言 在上篇文章(http://www.cnblogs.com/lightluomeng/p/7212577.html)中,初步实现了一个可配置的网页信息分析组件.但是由于是奔着解决事情的目的去的,所 ...

  8. 6.安装和配置OpenStack图片服务组件

    安装和配置图片服务组件 这里是安装在控制器上 安装和配置图片服务组件 yum install –y openstack-glance python-glanceclient 编辑/etc/glance ...

  9. vue创建路由,axios前后台交互,element-ui配置使用,django contentType组件

    vue中创建路由 每一个vue组件都有三部分组成 template:放html代码 script:放js相关 style:放css相关 vue中创建路由 1.先创建组件 Course.vue 2.ro ...

随机推荐

  1. coursera 《现代操作系统》

    什么是独占设备技术?为什么说 “SPOOLing不是独占设备的”? 百度百科没有解释,从教材中找到了:  第二章 取数指令 load To load a value from memory, you ...

  2. The JVM found at JAVA_HOME is damaged.Please reinstall or define EXE4J_JAVA_HOME to point to an installed 32-bit JDK or JRE

    一.介绍 exe4j是一个很棒的工具,可以把jar包打包成exe进行运行.他可以把jre环境和打包的exe进行集成,使得打包后的exe应用程序可以在没有安装java的机器上运行(前提是要把exe和jr ...

  3. ftp 协议分析

    File Transfer Protocol(文件传输协议) 使用SOCKET实现 FTP的客户端协议规则: .h #pragma once #include <string> #incl ...

  4. python并发编程&协程

    0x01 前导 如何基于单线程来实现并发? 即只用一个主线程(可利用的cpu只有一个)情况下实现并发: 并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操 ...

  5. jQuery实现复选框全选、全不选、反选问题解析

    今天打算用jQuery实现一下复选框的全选.全不选和反选问题,刚开始用的是attr("checked",true/false)方法,发现只能在最开始实现一次全选,可以实现全不选,无 ...

  6. Activity重要函数

    一.onConfigurationChanged 与 android:configChanges Lists configuration changes that the activity will ...

  7. 协程 Gevent

    # 协程应用:爬虫 from gevent import monkey;monkey.patch_all() import gevent import requests import time def ...

  8. Thrift官方安装手册(译)

    本篇是Thrift官网安装文档的翻译,原地址点击这里.Thrift之前是不支持Windows的.但是似乎0.9版本以后已经支持Window了.介绍了Thrift安装的环境要求以及在centos,Deb ...

  9. ubuntu17.04 配置go环境变量

    把官网下载好的tar解压后,go文件夹放到 /usr/local 目录下 在当前用户的 .bashrc 文件末尾添加 这句话 export PATH=$PATH:/usr/local/go/bin 执 ...

  10. MySQL中kill所有慢查询进程和锁表进程

    1.kill所有慢查询进程: #!/bin/bash mysql -uroot -pMy_Password -e "show processlist" | grep -i &quo ...