ActiveMQ

Wesley13
• 阅读 557

下载地址 http://archive.apache.org/dist/activemq/

安装

注意:apache-activemq-5.11.3 后台管理有BUG

安装包 apache-activemq-5.11.4-bin.tar.gz 解压到指定目录,并重命名为activemq

查看activemq文件是否有执行权限

ll  -a  activemq/bin

如果没有执行权限,给文件添加执行权限

chmod 755 activemq/bin/activemq

ActiveMQ需要用到两个端口:一个是消息通讯的端口(默认为 61616),另一个是管理控制台端口( 默认为 8161) 。可自行按照下面的方式修改。

(可选)修改管理控制台端口,在 conf/jetty.xml 文件中配置

 <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
             <!-- the default port number for the web console -->
        <property name="host" value="0.0.0.0"/>
        <property name="port" value="8161"/>
    </bean>

(可选)修改消息通讯的端口,在conf/activemq.xml 文件中配置

<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

(可选)防火墙加入端口

启动activeMQ

./activemq start

查看启动情况

ps -aux |grep activemq

这货启动有点久,请稍等。当它启动完毕后,在浏览器输入 http://192.168.88.18:8161/ 可以进入它的管理控制台,默认账户和密码是admin、admin。里面可以监控消息队列的运转情况。

ActiveMQ

安全配置

安全配置分为管理后台的配置和JMS队列/主题的访问安全配置,其中后者最为重要,如果JMS队列/主题不加入访问限制的话,任何人只要知道消息服务地址(包括 ip,端口,消息地址),就可以任意往队列添加消息,这有可能造成系统的风险。

管理后台安全配置

开启控制台认证,编辑 activemq/conf/jetty.xml ,authenticate设置为true,默认情况下是打开的。

    <bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
        <property name="name" value="BASIC" />
        <property name="roles" value="user,admin" />
        <!-- set authenticate=false to disable login -->
        <property name="authenticate" value="true" />
    </bean>

修改控制台的登录密码。在activemq/conf/jetty-realm.properties文件中,修改内容,其中从左到右分别为用户名、密码和对应的角色。

# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: 123456, admin

重新启动activeMQ服务,使用新的账户和密码登录后台。

JMS的安全配置

对于JMS的安全配置分为两种,分别是JAAS身份验证和简单的账户密码认证,本文使用的是简单账户密码认证。下面介绍一下关于“队列/主题”的操作权限

  • read:You can browse and consume from the destination
  • write:You can send messages to the destination
  • admin:You can lazily create the destination if it does not yet exist. This allows you fine grained control over which new destinations can be dynamically created in what part of the queue/topic hierarchy

开始配置吧。编辑conf/activemq.xml,在 ** ** 标签前加入

<plugins>
<!-- Configure authentication; Username, passwords and groups -->
    <simpleAuthenticationPlugin>
        <users>
            <authenticationUser username="admin" password="123456"   groups="users,admins"/>      
        </users>
    </simpleAuthenticationPlugin>
</plugins>

这个配置定义了一个admin用户,密码是123456,角色是users,admins。接下来只有加入用户名和密码才可以使用MQ了,对于MQ的使用,会在后面的文章中介绍。

当在代码中获取连接启动连接的时候,如果账号密码不正确,会抛出异常

javax.jms.JMSSecurityException: User name [] or password is invalid.
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这