(五)--ActiveMQ的传输协议_程序员B的博客-程序员秘密

技术标签: ActiveMQ  

一. 面试题

默认的61616端口如何修改?
你生产上的链接协议如何配置的? 使用TCP吗?

二. 官网

官方描述各种主要协议

1. 是什么

ActiveMQ支持的client-broker通讯协议有: TCP 、 NIO、UDP、SSL、Http(s)、VM。其中配置Transport Connector的文件在activeMQ安装目录的conf、activemq.xml中的< transportConnectors> 标签之内

vim activemq.xml
在这里插入图片描述

<transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
    <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
</transportConnectors>

在上文给出的配置信息中,
URI描述信息的头部都是采用协议名称:例如

描述amqp协议的监听端口时, 采用的URI描述格式为"amqp://…"
描述Stomp协议的监听端口时, 采用的URI描述格式为"stomp://…"

唯独在进行openwire协议描述时,URI头却采用的"tcp://..."

这是因为ActiveMQ中默认消息协议就是openwire

2. 有哪些协议?

2.1 Transmission Control Protocol(TCP)我是默认

  1. 这是默认的Broker配置, TCP的Client监听端口61616
  2. 在网络传输数据前,必须要序列化数据,消息是通过一个叫wire protocol的来序列化成字节流.
  3. TCP连接的URI形式如: tcp://hostname:port?key=value&key=value,后面的参数是可选
  4. TCP传输的优点:
    4.1 TCP协议传输可靠性高,稳定性强
    4.2 高效性: 字节流方式传递,效率很高
    4.3 有效性,可用性: 应用广泛,支持任何平台
  5. 关于Transport协议的可配置参数可以参考官网

2.2 New I/O API Protocol(NIO)

New I/O API Protocol(NIO)

  1. NIO协议和TCP协议类似但NIO更侧重于底层的访问操作,它允许开发 人员对同一资源可有更过的client调用和服务端有更多的负载.
  2. 适合使用NIOO协议的场景:
    2.1 可能有大量的Client去连接到Broker上,一般情况下,大量的Client去连接Broker是被操作系统的线程所限制的,因此NIO的实现比TCP需要更少的线程去运行, 所以建议使用NIO协议
    2.2 可能对于Broker有一个很迟钝的网络传输, NIO比TCP提供更好的性能

2.3 NIO连接的URI形式: nio//hostname:port?key=value

2.4 Transport Connector 配置示例,参考官网

2.3 AMQP协议

2.4 stomp协议

2.5 Secure Sockets Layer Protocol(SSL)

2.6 mqtt

2.7 ws协议

在这里插入图片描述
在这里插入图片描述

3. NIO案例演示

3.1 修改配置文件activemq.xml

<transportConnectors>
    <transportConnector name="nio" uri="nio://0.0.0.0:61618"?trace=true/>  
</<transportConnectors>

如果不特别指定ActiveMQ的网络监听端口,那么这些端口都将使用BIO网络IO模型.(OpenWire, STOMP, AMQP…)
所以为了首先提高单节点的网络吞吐性能,我们需要明确指定Active的网络IO模型.
如下所示:URI格式头以"nio"开头,表示这个端口使用以TCP协议为基础的NIO网络IO模型
在这里插入图片描述

3.2 生产和消费两端协议代码修改

public static final String ACTIVEMQ_URL = "nio://192.168.249.88:61618";

查看网络协议
在这里插入图片描述

3. NIO案例演示增强

在这里插入图片描述
使用auto关键字,使用"+"符号来为端口设置多种特性

<transportConnector name="auto+nio" uri="auto+nio://localhost:5671"/>

如果我们既需要某一个端口支持NIO网络模型, 又需要它支持多个协议

<transportConnector name="auto+nio" uri="auto+nio://0.0.0.0:61608?
	maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;
	org.apache.activemq.transport.nio.SelectorManager.corePoolSize=20&amp;
	org.apache.activemq.transport.nio.SelectorManager.maximumPoolSize=50"/>
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34403607/article/details/104399076

智能推荐

JS实参和形参以及和实参列表arguments的关系_shengjian1993的博客-程序员秘密

var compare = function(a, b) { if(arguments.length&lt;compare.length) { console.log("实参小于形参数"); //compare.length 形参长度 //arguments.length 实参列表长度 }};compare(1);var compare = function(a, b) { var b = 2; console.log(arguments[1]); //b是underfi

android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态_小爸爸他爸的博客-程序员秘密

项目中需要做评论功能,在软键盘弹出后在其上方弹出自定义的view,看下效果:         原理很简单,软键盘上方就是一个自定义的PopuWindow,在弹出PopuWindow的代码中激活了软键盘,随即PopuWindow就被软键盘顶到了其上方,里面还给PopuWindow加入了显示 和消失的动画,另外实现了对软键盘显示和隐藏状态的监听,以及对其高度的测量,需要做些逻辑处理的话可以

Jetty设置首页为自定义页面_jetty 首页_Forest-zhang的博客-程序员秘密

Jetty如何设置首页为自定义页面???? 问题描述嵌套Jetty的Web应用启动后,正常的访问路径为:localhost:8080/geoserver,访问正常。但访问根目录:localhost:8080,则缺省页面不显示,显示错误信息如下, 希望访问根目录时自动跳转到正常路径(localhost:8080/geoserver)。这个倒不是什么大的问题,但在生产环境部署后,也会有安全隐患,会...

经典诗句_chicher123的博客-程序员秘密

(1):                        妾拟将身嫁与,一生休;                        纵被无情弃,不能休。(2):                                 寒夜独自凉,寂寞销魂香;                       点灯暗垂泪,灯火一点伤;                       眉锁千秋结,痛断

docker-compose 搭建 registry 私服(镜像管理平台)_stone_ui的博客-程序员秘密

服务端docker-compose.ymlversion: '3.1'services: registry: image: registry restart: always container_name: registry ports: - 5000:5000 volumes: - /usr/local/docker...

wordpress博客留言自动填写_weixin_30536513的博客-程序员秘密

  想起去年朋友,让我帮他写一个wordpress的自动留言程序。大概思路这样的,首先在百度搜索关键字Powered by WordPress,然后打开搜索结果,自动填写内容,提交。  功能也不复杂,就是为了推广自己的网站。当时自己比较忙,没有答应。今天恰好自己也需要用到,但是通过百度搜索结果来看,并没有出现大批量的博客,后来找到一种更简单的办法。  新建一个收藏,标题随便写...

随便推点

小程序token.php,微信小程序登录换取token的教程_寻尘客的博客-程序员秘密

微信小程序登录换取token的教程来源:中文源码网浏览: 次日期:2018年9月2日【下载文档:微信小程序登录换取token的教程.txt】(友情提示:右键点上行txt文档名-&gt;目标另存为)微信小程序登录换取token的教程 前言:这次主要是介绍些业务逻辑,技术点倒是没有多少。不过在开发中,优秀的编程思路同样是非常值得学习的。最近小程序可以说在开发...

Android 系统提供媒体库 URI 与 数据库的对应关系_RusanNg的博客-程序员秘密

Android 系统提供媒体库 URI 与 数据库的对应关系前言MediaProviderqueryUri uri getDatabaseForUriuriUriURI_MATCHERaddURI URI_MATCHERmatchuri总结附MediaStore Uri 与 数据库对应表仅供参考Android 系统提供媒体库 URI 与 数据库的对应关系前言在 Android 系统

Java 泛型应用 及归并排序的实现_风潇潇1991的博客-程序员秘密

package util;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Sort { /** * 归并排序法 * 传入的Object数组必须实现了Comparable接口的compareTo方法 * 不然报错 * 没有设置多余的传入参数,因而需

linux导出日志关键字数据_Linux 6种日志查看方法,不会看日志会被鄙视的_weixin_39737831的博客-程序员秘密

作为一名后端程序员,和Linux打交道的地方很多,不会看Linux日志,非常容易受到来自同事和面试官的嘲讽,所以掌握一种或者几种查看日志的方法非常重要。Linux查看日志的命令有多种: tail、cat、tac、head、echo等,本文只介绍几种常用的方法。 1、tail这个是我最常用的一种查看方式命令格式: tail[必要参数][选择参数][文件]-f 循环读取-q 不显示处理信息-v 显...

java 对自己实例化数组对象详解_java实例化对象数组_快落靓仔的博客-程序员秘密

如图Studern为自己定义的一个类Studernd类package com.atguigu.exer;public class Studernd4 { int number;//学号 int state;//年级 int score;//成绩 @Override public String toString() { return "Studernd4{" + "学号=" + number + .

GOT-10k: A Large High-Diversity Benchmark forGeneric Object Tracking in the Wild(论文翻译)_got10k评价_MJ5513的博客-程序员秘密

论文地址:https://arxiv.org/abs/1810.11981Code:GOT-10k: Generic Object Tracking Benchmark目录摘要1.引言2.相关工作3.GOT-10K的构建4.实验5.结论摘要我们在这里介绍一个大型的跟踪数据库,它提供了对野外常见移动对象的空前广泛的覆盖,称为GOT-10K。具体地说,GOT-10k构建在WordNet结构[1]的主干上,它填充了超过560类移动对象和87种运动模式...

推荐文章

热门文章

相关标签