学习笔记-记ActiveMQ学习摘录与心得(二)

  上个周末被我玩过去了,罪过罪过,现在又是一个工作日过去啦,居然有些烦躁,估计这几天看的东西有点杂,晚上坐下来把自己首要工作任务总结总结。上篇学习博客讲了ActiveMQ的特性及安装部署,下面先把我以前启动AMQ遇到的问题写出来。

data lock问题:

这个是因为aqm所在文件data\kahadb文件夹下的lock文件缘故,可以删掉,再运行就可以了。

端口被占用问题:打开服务,找到Internet Connection Sharing (ICS),是ICS占用了端口使得ActiveMQ无法启动。

--------------------------以前的问题讲完,切入正题-----------------------------

关于Topic模式和Queue模式的发送和接收

首先是点对点模式:

生产者和消费者都在线的就不测试了。开启生产消息端,在没有消费端在线时发送一条消息到Activemq,

消费端上线,接收到消息

当存在两个相同的消费者时,使用点对点模式发送一条消息会怎么样?下面一个是用winform写的消费者,一个是控制台的消费者,两者设置的客户端ID不同,监听的是同一个Queue名。winform先启动,控制台程序后启动。如下图:

接下来用生产者发送一条消息。

看结果

 看来两个相同的消费者监听一个Queue名,先连接上的会接收到,而这个消息只能发送给一方。

然而,我把那个接受到消息的winform程序关闭,会怎样?

结果:,把winform程序关闭后,那个刚才没接受到消息的控制台程序可以接受消息了。

再把winform程序打开,两个消费者又同时在线,会怎样?

结果:

结论:当使用Queue模式发送消息时,某一个监听该Queue名的消费者A上线后会与之建立一个MessageQueue,相当于两人直接建立了一个专用通道,一对一单独辅导,之后的消费者B再来监听只能在该消费者之后排队啦,等A走了,B就成了专属客户,这时候A又来了,也是排队等在B后面,等B走了才轮到A。

----分割-----

下面是广播模式发送:

做两个消费者,都订阅了生产者的消息,而且都不在线,生产者发送一条消息之后,两个消费者上线会怎么样?

看两个消费者情况:,两个上线都接收到了。

之后我又做了一个订阅者在线一个不在线,两个都在线等,都是可以接收到消息,相当于邮箱,只要订阅了,发布的消息都能接收到,不管你在不在线,看起来比较自由。

-----------------再一个分割线--------------

生产者和消费者可以使用不同的传输协议来传输消息,ActiveMQ提供了广泛的连接模式,包括HTTP/S、JGroups、JXTA、muticast、SSL、TCP、UDP、XMPP等。

        <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>

可以看出最大连接数是1000,最大容量是100m,多种协议连接我试了下没弄出来,可能我哪里弄错了,路过的大牛们指点下吧^_^   还有传输的内容问题,可以支持多种格式,有待尝试后总结出来。

还测试了下发送的消息存储位置问题,是存在内存里吗?我发送了几万条数据内存没有变化。可能原因是消息量过少,看不出来。。。

下面就开始写ActiveMQ的持久化存储模式和拦截器过滤器的使用问题。

转载于:https://www.cnblogs.com/wuyouyu/p/3396160.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab删除、创建文件夹

在某一目录下&#xff0c;创建名字为1、2、3、4、5的五个文件夹&#xff1a; for i1:5 file_name sprintf(%s,num2str(i)); file_path_name strcat(savepath,file_name); file_path_name_ strcat(file_path_name,\); if exist(file_path_name_)0 %该文件…

谈谈C#中的三个关键词new , virtual , override(装载 Winner.Net)

C#支持单继承&#xff0c;说到继承就不得不说new&#xff0c;virtual和override这三个关键词&#xff0c;灵活正确的使用这三个关键词&#xff0c;可以使程序结构更加清晰&#xff0c;代码重用性更高。 以下是msdn中对new&#xff0c;virtual和override的定义&#xff1a; …

不同类型数据所占的字节数

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 数据类型的长度&#xff08;所占的字节数&#xff09;&#xff0c;与机器字长及编译器都有关系。 所以&#xff0c;int、long int、short int等数据类型的长度可能随编译器而异。 几条铁定的原则&#xff08…

物联网概念升级,万物互联来袭

物联网概念尚在升温&#xff0c;万物互联又袭来。本月中旬&#xff0c;知名IT研究与咨询公司Gartner在2013 GartnerSymposium/Itxpo全球大会上向大家分享了他们对2014科技趋势的预测。在会上&#xff0c;Gartner提及的“万物互联”概念倍受科技界媒体关注。Gartner认为&#xf…

java遍历实体类的属性名称与值

//循环遍历OaInfoAssess实体中的属性与值for (Field field : oaInfoAssess.getClass().getDeclaredFields()){ //设置可以获取私人属性 field.setAccessible(true); try { Class type field.getType();// 得到此属性的类型 if(type String.class){ /…

unsigned char s1 : 2的用法

#include<stdio.h> #include<stdlib.h> //默认按照四字节对齐 //#pragma pack(1) union V {struct X{unsigned char s1 : 2;unsigned char s2 : 3;unsigned char s3 : 3;} x;unsigned char c; } v; //#pragma pack()int main(void) {v.c 100;//对应的二进制数字是…

MATLAB中排序函数sort()的用法

MATLAB中排序函数sort()可以对参数的元素进行升序排序或降序排序。 具体的用法如下&#xff1a; Ysort(X) sort()的参数可以是向量&#xff0c;矩阵&#xff0c;数组等等。当X是向量时&#xff0c;sort(X)对X的元素进行升序排序&#xff1b;当X是矩阵时&#xff0c;sort(X)对…

juc线程池原理(六):jdk线程池中的设计模式

一、jdk中默认线程池中的代理模式 单例类线程池只有一个线程&#xff0c;无边界队列&#xff0c;适合cpu密集的运算。jdk中创建线程池是通过Executors类中提供的静态的方法来创建的&#xff0c;其中的单例类线程池的方法如下&#xff1a; public static ExecutorService newSin…

Code First :使用Entity. Framework编程(6) ----转发 收藏

Chapter6 Controlling Database Location,Creation Process, and Seed Data 第6章 控制数据库位置&#xff0c;创建过程和种子数据 In previous chapters you have seen how convention and configuration can be used to affect the model and the resulting database schema.…

Hashtable的测试

Hashtable的测试 1 import java.util.Enumeration;2 import java.util.Hashtable;3 4 class TT {5 private String name null; //name和age是作为键的6 private Integer age 0;7 8 public TT(String name,int age) { //构造函数没有返回值9 this.nam…

截取AVI格式的视频C语言代码

首先在阅读本代码之前百度一下avi&#xff0c;虽然经过我验证上面有部分错误&#xff0c;但是不影响阅读。因为有些变量的注释我没有写&#xff0c;所以请读者自行搜索吧。下面是c语言文件&#xff0c;编译之后能够直接运行&#xff0c;用来截取开始时间&#xff08;单位s&…

C语言宏定义中UL的含义

1、U表示 unsigned 无符号&#xff0c;L表示 long 长整数。后缀大小写都可以&#xff0c;可以单独使用(100U)&#xff0c;也可以组合使用(100UL)。 2、F表示float&#xff0c;但是F不可以和U组合&#xff0c;因为浮点数没有unsigned。 3、后缀的作用是指明数据类型。因为单独…

查看CPU信息

1、查看物理cpu个数[rootwebserver ~]# cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l 11. 查看物理CPU的个数#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l2. 查看逻辑CPU的个数#cat /proc/cpuinfo |grep "processor"|wc …

计算多个文档之间的文本相似程度

首先我们上代码&#xff1a; from sklearn.feature_extraction.text import CountVectorizer corpus [ UNC played Duke in basketball, Duke lost the basketball game, I ate a sandwich ] vectorizer CountVectorizer(binaryTrue,stop_wordsenglish)#设置停用词为英语&…

判断操作系统的位数

#include<stdio.h>int main(void) {unsigned int num ~0;if (num 0xffffffff)printf("32");elseif (num 0xffff)printf("16");elseprintf("64");getchar();return 0; } 以上是判断一个操作系统是多少位的代码。 附另一种解法&#xf…

几个ubuntu16.04镜像下载地址

中科大源 http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/ 阿里云开源镜像站 http://mirrors.aliyun.com/ubuntu-releases/16.04/ 兰州大学开源镜像站 http://mirror.lzu.edu.cn/ubuntu-releases/16.04/ 北京理工大学开源 http://mirror.bit.edu.cn/ubuntu-releases…

转】未指定 INSTANCESHAREDWOWDIR 命令行值。如果指定INSTANCESHAREDDIR 值,则必须指定该值 ....

插入光盘后不要用autorun的安装&#xff0c;使用命令行安装&#xff01;cd进安装光盘的根目录&#xff0c;输入命令&#xff1a;setup.exe /INSTALLSHAREDDIR"D://Program Files//Microsoft SQL Server//" /INSTALLSHAREDWOWDIR"D://Program Files (x86)//Micro…

C#使用StreamReader类读取文件文件

输入流用于从外部源读取数据。在很多情况下&#xff0c;数据源是磁盘上的文件或网络的某些位置。任何可以发送数据的位置都可以是数据源&#xff0c;比如网络应用程序、Web服务&#xff0c;甚至是控制台。 用来从文件中读取数据的类是StreamReader。同StreamWriter一样&#xf…

三种不使用中间参数,交换两个参数的值的方法

第一种&#xff1a;要求必须是整数 int i 50&#xff0c;j 60&#xff1b; i i^j; j i^j; i i^j;第二种&#xff1a;可以不是整数类型 i i j; j i - j; i i - j;第三种&#xff1a;很巧妙 i i j - (j i);

双边滤波

双边滤波 高斯滤波是最常用的图像去噪方法之一&#xff0c;它能很好地滤除掉图像中随机出现的高斯噪声&#xff0c;但是在之前的博客中提到过&#xff0c;高斯滤波是一种低通滤波&#xff08;有兴趣的点击这里&#xff0c;查看之前的博客&#xff09;&#xff0c;它在滤除图像中…