`
haoran_10
  • 浏览: 444174 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

消息中间件(5)-ActiveMQ后台监控

阅读更多

ActiveMQ提供了基于WEB的控制台,现在有两个版本。

监控的主要对象是连接的机器,队列,主题,消息。

 

1、在activemq.xml末尾引进内嵌的jetty.xml,用来启动web控制系统

<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://activemq.apache.org/schema/core 
  http://activemq.apache.org/schema/core/activemq-core.xsd">
	
	...
  <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
		...
  </broker>
  
  <!--web 后台监控-->
  <import resource="jetty.xml"/>
</beans>

 

2、在jetty.xml,由spring初始化运行内嵌式jetty容器

<bean id="Server" depends-on="jettyPort" class="org.eclipse.jetty.server.Server" init-method="start"
        destroy-method="stop">

        <property name="connectors">
            <list>
                <bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
                     <!-- see the jettyPort bean -->
                    <property name="port" value="#{systemProperties['jetty.port']}" />
                </bean>
                <!--
                    Enable this connector if you wish to use https with web console
                -->
                <!--开启之后,打开SSL功能
                <bean id="SecureConnector" class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
                    <property name="port" value="8162" />
                    <property name="keystore" value="file:${activemq.conf}/broker.ks" />
                    <property name="password" value="password" />
                </bean>
                -->
            </list>
        </property>

        <property name="handler">
            <bean id="handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
                <property name="handlers">
                    <list>
                        <ref bean="rewrite"/>
                        <ref bean="contexts" />
                        <ref bean="securityHandler" />
                    </list>
                </property>
            </bean>
        </property>

    </bean>

 2.1端口配置,depends-on="jettyPort" 引用

 

 <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
             <!-- the default port number for the web console -->
        <property name="port" value="8161"/>
    </bean>
 2.2jetty所需的其他配置

 

 

<bean id="rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
      <property name="rules">
          <set>
              <bean class="org.eclipse.jetty.rewrite.handler.RedirectRegexRule">
                  <property name="regex" value="/api/jolokia(.*)"/>
                  <property name="replacement" value="/hawtio/jolokia$1"/>
              </bean>
          </set>
      </property>
    </bean>

    <bean id="contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection">
    </bean>
 2.3 权限配置

 

 

<bean id="securityLoginService" class="org.eclipse.jetty.security.HashLoginService">
        <property name="name" value="ActiveMQRealm" />
        <property name="config" value="${activemq.conf}/jetty-realm.properties" />
    </bean>

    <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>
    <bean id="adminSecurityConstraint" class="org.eclipse.jetty.util.security.Constraint">
        <property name="name" value="BASIC" />
        <property name="roles" value="admin" />
         <!-- set authenticate=false to disable login -->
        <property name="authenticate" value="true" />
    </bean>
    <bean id="securityConstraintMapping" class="org.eclipse.jetty.security.ConstraintMapping">
        <property name="constraint" ref="securityConstraint" />
        <property name="pathSpec" value="/admin/*,*.jsp" />
    </bean>
    <bean id="adminSecurityConstraintMapping" class="org.eclipse.jetty.security.ConstraintMapping">
        <property name="constraint" ref="adminSecurityConstraint" />
        <property name="pathSpec" value="*.action" />
    </bean>
    <bean id="securityHandler" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
        <property name="loginService" ref="securityLoginService" />
        <property name="authenticator">
            <bean class="org.eclipse.jetty.security.authentication.BasicAuthenticator" />
        </property>
        <property name="constraintMappings">
            <list>
                <ref bean="adminSecurityConstraintMapping" />
                <ref bean="securityConstraintMapping" />
            </list>
        </property>
        <property name="handler">
            <bean id="sec" class="org.eclipse.jetty.server.handler.HandlerCollection">
                <property name="handlers">
                    <list>
                        <bean class="org.eclipse.jetty.webapp.WebAppContext">
                            <property name="contextPath" value="/hawtio" />
                            <!--新的web管理平台--->
                            <property name="war" value="${activemq.home}/webapps/hawtio" />
                            <property name="logUrlOnStart" value="true" />
                        </bean>
                        <bean class="org.eclipse.jetty.webapp.WebAppContext">
                            <property name="contextPath" value="/admin" />
                            <!--老的web管理平台--->
                            <property name="resourceBase" value="${activemq.home}/webapps/admin" />
                            <property name="logUrlOnStart" value="true" />
                        </bean>
                       
                       
                        <bean class="org.eclipse.jetty.server.handler.ResourceHandler">
                            <property name="directoriesListed" value="false" />
                            <property name="welcomeFiles">
                                <list>
                                    <value>index.html</value>
                                </list>
                            </property>
                            <!---自动加载webapps下面的资源-->
                            <property name="resourceBase" value="${activemq.home}/webapps/" />
                        </bean>
                        <bean id="defaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler">
                            <property name="serveIcon" value="false" />
                        </bean>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
 

3、启动后,在浏览器中即可访问

http://127.0.0.1:8161/  

包含三个项目:

 (1)Manage ActiveMQ broker   新的管理平台

 

(2)Manage ActiveMQ broker using the old console 老的管理平台

 (3)一些DEMO。

 

 

 

 老的系统平台登录所需的配置文件

conf/jetty-realm.properties,只是基于BasicAuthenticator

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

 

新的系统所需的平台配置,基于

conf/login.config

activemq {
    org.apache.activemq.jaas.PropertiesLoginModule required
        org.apache.activemq.jaas.properties.user="users.properties"
        org.apache.activemq.jaas.properties.group="groups.properties";
};

 

conf/users.properties

admin=admin

 

conf/groups.properties

 

admins=admin

 

 

4、安全校验原理,待续

 

太匆忙了,先写到这。。。

  • 大小: 31.2 KB
  • 大小: 48.8 KB
  • 大小: 57.2 KB
分享到:
评论

相关推荐

    apache-activemq-5.9.1-bin.tar.gz

    ActiveMQ是一个中间件,它作为应用程序之间的通信桥梁,允许它们通过消息传递进行交互,而不是直接调用彼此。这种解耦设计提高了系统的可扩展性和容错性。ActiveMQ支持多种协议,包括OpenWire、STOMP、AMQP、MQTT和...

    apache-activemq5.10

    总的来说,Apache ActiveMQ 5.10.2版本是一个强大的消息中间件,为开发者提供了可靠的、高性能的消息传递能力。通过合理的配置和使用,它能有效地提升系统的灵活性和可扩展性。在实际项目中,了解并熟练掌握ActiveMQ...

    apache-activemq-5.16.1-bin.tar.gz

    Apache ActiveMQ是业界广泛使用的开源消息中间件,它基于Java Message Service (JMS) 规范,提供高效、可靠的异步通信解决方案。ActiveMQ 5.16.1 是该软件的一个版本,此版本的安装文件以“apache-activemq-5.16.1-...

    apache-activemq-5.10.0.rar

    Apache ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它基于Java消息服务(JMS)规范,用于在分布式系统中实现可靠的消息传递。ActiveMQ在企业级应用中扮演着重要的角色,因为它允许不同应用程序之间异步...

    apache-activemq-5.13.2

    Apache ActiveMQ是开源的、基于Java的消息中间件,它遵循开放消息传递协议(JMS,Java Message Service)标准,提供高效、可靠的消息传递服务。在标题"apache-activemq-5.13.2"中,我们看到的是ActiveMQ的一个特定...

    apache-activemq-5.4.3

    Apache ActiveMQ是开源社区中最流行的消息中间件之一,它基于Java Message Service (JMS) API,为分布式系统提供高效、可靠且可扩展的消息传递服务。在这个实验三中,我们将深入探讨如何利用Apache ActiveMQ进行消息...

    apache-activemq-5.15.3-bin.zip

    Apache ActiveMQ是业界广泛使用的开源消息中间件,它在标题中的标识是"apache-activemq-5.15.3-bin.zip",这表明这是一个包含ActiveMQ 5.15.3版本的可执行二进制包。消息中间件是分布式系统中的一种关键组件,用于在...

    apache-activemq-5.1.0-bin fms

    Apache ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它实现了Java消息服务(JMS)规范,用于在分布式系统中高效、可靠地传输消息。在本案例中,我们讨论的是ActiveMQ的5.1.0版本,这在当时是一个较新的...

    apache-activemq

    Apache ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它基于Java Message Service(JMS)规范,用于在分布式系统中实现可靠的消息传递。ActiveMQ在企业级应用中扮演着重要的角色,因为它允许不同应用程序...

    ActiveMQ消息服务器 v5.17.6.zip

    总之,ActiveMQ作为一款强大的消息中间件,其稳定性和灵活性使其在各种复杂环境中都能发挥出色作用。理解和掌握ActiveMQ的使用,对于提升系统的可靠性和扩展性具有重要意义。无论是在毕业设计、论文研究还是实际项目...

    jms-activemq

    ActiveMQ是Apache软件基金会开发的一个开源的消息中间件,它是完全符合JMS 1.1规范的实现。ActiveMQ以其高性能、稳定性和丰富的特性集而被广泛使用。它支持多种协议,如OpenWire、STOMP、AMQP、MQTT等,这使得...

    SpringBoot+ActiveMq+MQTT实现消息的发送和接收

    7. 测试与调试:编写测试用例,确保消息能正确发送和接收,同时监控ActiveMQ服务器以查看消息队列的状态。 在实际应用中,你可能还需要考虑消息的可靠性、顺序性、幂等性以及错误处理等复杂问题。例如,使用事务性...

    activeMQ5.9(jar).rar

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于Java Message Service(JMS)规范,为分布式系统提供高效、可靠的消息传递服务。ActiveMQ 5.9版本是该产品的一个稳定版本,提供了许多增强的功能和性能...

    activemq-all-5.2.0-jar包.rar

    ActiveMQ是Apache软件基金会的一个开源项目,它是一款功能强大的消息中间件,广泛应用于分布式系统中,用于处理异步通信、解耦系统组件以及提高系统的可扩展性。本篇将围绕ActiveMQ的核心概念、工作原理及实际应用...

    ActiveMQ快速上手 PDF

    - **定义**:ActiveMQ 是 Apache 软件基金会所研发的一款开源消息中间件,它完全支持 JMS 1.1 和 J2EE 1.4 规范,能够作为 JMS Provider 实现消息传递功能。 - **功能**:ActiveMQ 的核心功能在于帮助实现高性能、高...

    activemq-5.16.0.zip

    Apache ActiveMQ是开源社区中最流行的消息中间件之一,它基于Java消息服务(JMS)标准,为分布式系统提供高效、可靠的消息传递。ActiveMQ 5.16.0是该软件的一个版本,提供了多种功能和改进,使得它成为在Windows等...

    管理系统系列--后台任务管理系统.zip

    6. **消息队列**:使用RabbitMQ、Kafka或ActiveMQ等实现任务异步处理,提高系统性能。 7. **分布式一致性**:在分布式环境下,如Zookeeper、Etcd等用于协调任务分配和状态同步。 8. **安全性**:考虑任务执行的安全...

    activemq-ra-3.1-M6.jar.zip

    ActiveMQ,作为一款开源的消息中间件,是Apache软件基金会的重要项目之一,广泛应用于分布式系统中的消息传递。其Remote Activation(RA)模块,即activemq-ra,是ActiveMQ提供的一种资源适配器,使得应用程序能够与...

    Apache_ActiveMQ教程

    部署完成后,可以通过ActiveMQ消息管理后台系统进行管理和监控,该系统可以通过浏览器访问地址***。 ActiveMQ支持Point-to-Point(点对点)和Publisher/Subscriber(发布/订阅者)两种消息模式。Queue(队列)用于...

    windows版activemq启动包

    Apache ActiveMQ是业界广泛使用的开源消息中间件,它遵循Java Message Service (JMS) 规范,提供高效、可靠的异步消息传递服务。在Windows环境下,ActiveMQ的部署和启动相对简单,尤其对于5.15.2这个稳定版本。本...

Global site tag (gtag.js) - Google Analytics