ActiveMQ中密码修改1、在/conf/jetty.xml文件中的 <!– set authenticate=false to disable login –>这个位置的authenticate 改成true新版本的默认都为true暂时不用修改2、在/conf/jetty-realm.properties设置用户名和密码。格式—（ 用户名：密码，用户组）。改为admin：123321, admin然后正常登陆。消息服务器broker安全设置1、添加访问密码、在/conf/activemq.xml中的中设置。还需要credentials.properties文件更改credentials.properties文件activemq.username=system activemq.password=123321 user.username=zhao user.password=123456 guest.password=password然后修改activemq.xml在systemUsage标签之前加上 <simpleAuthenticationPlugin> <authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/> <authenticationUser username="${user.username}" password="${user.password}" groups="users"/> <authenticationUser username="guest" password="${guest.password}" groups="guests"/> </simpleAuthenticationPlugin> 注意：XML中不能有中文空格否则启动报错。查看效果原来代码<?php $queue = 'time1'; $msg = 'bar'; //生产者 try { $stomp = new Stomp('tcp://localhost:61613'); while (true) { $stomp->send($queue, $msg." ". date("Y-m-d H:i:s")); sleep(1); } } catch(StompException $e) { die('Connection failed: ' . $e->getMessage()); }更改代码为<?php $queue = 'time1'; $msg = 'bar'; //生产者 $username="zhao"; $password="123456"; try { $stomp = new Stomp('tcp://localhost:61613',$username,$password); while (true) { $stomp->send($queue, $msg." ". date("Y-m-d H:i:s")); sleep(1); } } catch(StompException $e) { die('Connection failed: ' . $e->getMessage()); }消费端的代码<?php $queue = 'time1'; $username="zhao"; $password="123456"; try { $stomp = new Stomp('tcp://localhost:61613',$username,$password); $stomp->subscribe($queue); while (true) { if ($stomp->hasFrame()) { $frame = $stomp->readFrame(); if ($frame != NULL) { print "Received: " . $frame->body . " - time now is " . date("Y-m-d H:i:s"). "\n"; $stomp->ack($frame); } } else { print "No frames to read\n"; } } } catch(\Exception $e) { die('Connection failed: ' . $e->getMessage()); }修改方式二方式二、是使用JAAS（Java验证授权）身份验证和授权、修改的文件较多暂时不表示。补充：activemq目录/conf下文件说明activemq.xml broker.ks broker.ts broker-localhost.cert client.ks client.ts credentials.properties //broker连接使用的账号密码文件，明文密码 credentials-enc.properties ////broker连接使用的账号密码文件，加密的密码 groups.properties jetty.xml jetty-realm.properties //web console访问的账号密码 jmx.access //访问控制文件，用于限制JMX访问权限 jmx.password //JMX访问密码文件，用于设置JMX访问的密码 log4j.properties logging.properties login.config //JAAS认证使用的配置文件，用于指定使用users.properties和groups.properties文件 users.properties
publish发布(生产者)<?php $queue = 'time1'; $msg = 'bar'; //生产者 try { $stomp = new Stomp('tcp://localhost:61613'); while (true) { $stomp->send($queue, $msg." ". date("Y-m-d H:i:s")); sleep(1); } } catch(StompException $e) { die('Connection failed: ' . $e->getMessage()); } subscribe订阅（消费者）<?php $queue = 'time1'; try { $stomp = new Stomp('tcp://localhost:61613'); $stomp->subscribe($queue); while (true) { if ($stomp->hasFrame()) { $frame = $stomp->readFrame(); if ($frame != NULL) { print "Received: " . $frame->body . " - time now is " . date("Y-m-d H:i:s"). "\n"; $stomp->ack($frame); //确认接收到消息 } } else { print "No frames to read\n"; } } } catch(\Exception $e) { die('Connection failed: ' . $e->getMessage()); }消费者可以有多个（stomp没有java的jms强大）图片显示接受的分布的非常均匀。注意事项：1、用stomp扩展存入的消息队列先行开启后，在开启消费者所有数据都能取出来。2、用stomp扩展可以一对一收发（一个生产者一个消费者、一个队列），也可以一对多（一个生产者多个消费者、一个队列）、以上的图片就是一对多。JAVA消息队列JMS设计结构
安装前准备1、JDK 网址：http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载最新版本的windows安装1、双击exe文件、点击安装目录，jre都放在一个文件目录里面配置环境变量新建 JAVA_HOME变量变量名 JAVA_HOME 变量值 C:\Program Files\Java\jdk-10.0.1变量值是路径、以下都放在系统变量里面找到系统变量中的“Path”→“编辑”（是“编辑”不是“新建”！）找到“Path”中的“新建”→输入：“%JAVA_HOME%\bin”（可选）“新建”→输入：“%JAVA_HOME%\jre\bin”注意：结尾不用加“;”分号！完成后点击“确定”；查找是否存在“CLASSPATH”变量，不存在的话就“新建”依次填入变量名：“CLASSPATH”变量值：“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;“完成后点击“确定”；验证配置1 配置完成后一路“确定”知道返回“桌面”2 使用“Cortana”或“Win+R”组合键召唤“CMD”3 直接输入“java”或“java -version”（验证安装是否成功）4 直接输入“javac”（验证环境变量是否配置成功）5 如果你的验证结果跟图四（3.3）、图五（3.4）一样，那么恭喜你配置成功！6 如果“javac”验证失败，检查你的“Path”变量是否配置正确。安装ActiveMQ网址： http://activemq.apache.org/windows安装解压缩下载好的 apache-activemq-5.15.4-bin.zipbin目录下由win32/win64可以供选择运行“apache-activemq\bin\win64”或“apache-activemq\bin\win32”目录下的InstallService.bat文件，可以将activemq安装为Windows服务或者到目录下运行 activemq startC:\apache-activemq-5.15.4-bin\apache-activemq-5.15.4\bin>activemq start Java Runtime: Oracle Corporation 10.0.1 C:\Program Files\Java\jdk-10.0.1输入用户名（默认为admin）和密码（默认为admin），点击登录按钮，得到下图：Linux安装解压文件包cd /usr mkdir java 把文件下载或上传到 java目录下 tar -zxf ./jdk-10.0.1_linux-x64_bin.tar.gz打开/etc/profile原来尾部的内容unset i unset -f pathmunge #mysql path export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/php/bin:$PATH追加内容unset -f pathmunge #mysql path export JAVA_HOME=/usr/local/java/jdk-10.0.1 export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/php/bin::$JAVA_HOME/bin:$PATH执行source /etc/profile[scode type="share"]\# java -versionjava version “10.0.1” 2018-04-17Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)[/scode]上传或下载apache-activemq-5.15.4-bin.tar.gzcd /usr/local mkdir activemq5.15.4 rz tar -xvzf apache-activemq-5.15.4-bin.tar.gz然后cd到指定目录并且启动服务cd /usr/local/activemq5.15.4/apache-activemq-5.15.4/bin/linux-x86-64 activemq start端口开启、然后打开网址http://121.127.252.9:8161/admin/