`
ruijf
  • 浏览: 71237 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

基于JMX管理站点资源

阅读更多

一.How

1.创建配置文件的类,然后使用spring配置导出成MBean。

(1)创建配置类(基于spring管理的话其实就是POJO,不用实现MBean接口)

public class ParseHandlerMap{
	private Logger logger =Logger.getLogger(this.getClass());
	private Map<String, IUrlParseHandler> parseMap;
	private Map<String, String> loginURLMap;
	private String defaultLoginPath="http://www.test.com/Clients/login.html";

	public void setParseMap(Map<String, IUrlParseHandler> parseMap) {
		this.parseMap = parseMap;
	}
	public void setLoginURLMap(Map<String, String> loginURLMap) {
		this.loginURLMap = loginURLMap;
	}
	public void setDefaultLoginPath(String defaultLoginPath) {
		this.defaultLoginPath = defaultLoginPath;
	}
	public String getDefaultLoginPath() {
		return defaultLoginPath;
	}
	public Map<String, IUrlParseHandler> getParseMap() {
		return parseMap;
	}
	public Map<String, String> getLoginURLMap() {
		return loginURLMap;
	}

	//动态添加游戏解析器
	public String addHandler(String gameId) {
		if(!ParameterUtil.isPosiIntegerNum(gameId)){
			return "gameId is not number";
		}
		String className="com.test.Game"+gameId+"URLParseHandler";
		try {
			Class<?> clazz = Class.forName(className);
			IUrlParseHandler handler =(IUrlParseHandler)clazz.newInstance();
			parseMap.put(gameId, handler);
			return "add handler OK";

		} catch (ClassNotFoundException e) {
			logger.error("add handler fail",e);
			return "class not found";
		} catch (InstantiationException e) {
			logger.error("add handler fail",e);
			return "instance create fail";
		} catch (IllegalAccessException e) {
			logger.error("add handler fail",e);
			return "add handler fail";
		}

	}
	//动态删除解析器
	public String deleteHandler(String gameId) {
		parseMap.remove(gameId);
		return "removed";
	}

	public IUrlParseHandler getHandler(String gameId) {
		return parseMap.get(gameId);
	}
	//查看当前的解析器数量
	public int getHandlerNum(){
		return parseMap.size();
	}

	//添加游戏的登陆页面地址
	public String addLoginURL(String gameId, String url) {
		loginURLMap.put(gameId, url);
		return "OK";
	}
	//删除游戏的登陆页面地址
	public String deleteLoginURL(String gameId) {
		loginURLMap.remove(gameId);
		return "removed ok";
	}
	//查看游戏的登陆页面地址
	public String getLoginURL(String gameId) {
		if(loginURLMap==null || loginURLMap.isEmpty()){
			return defaultLoginPath;
		}else{
			String path = loginURLMap.get(gameId);
			if(path==null){
				return defaultLoginPath;
			}else{
				return path;
			}
		}
	}
}

 

2.spring导出MBean配置

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
        <property name="beans">
            <map>
		<!--导出MBean类-->
                <entry key="bean:name=parseHandlerMap" value-ref="parseHandlerMap"/>
            </map>
        </property>
        <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/>
    </bean>

    <bean id="parseHandlerMap" class="com.test.ParseHandlerMap"/>

 

3.虚拟机设置
启动java虚拟机时,增加虚拟机对JMX的支持,以及相应的权限设置.以Tomcat为例修改启动文件catalina.sh:
(1)增加以下配置:
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=9999" //远程管理端口
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true" //权限认证
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
(2)tomcat的lib目录增加jmxri.jar,jmxtools.jar包;
(3)创建管理权限文件
由模板文件$JAVA_HOME/jre/lib/management/jmxremote.password.template创建密码文件$JAVA_HOME/jre/lib/management/jmxremote.password;打开其中monitorRole和controlRole的角色并修改密码。monitorRole只有只读权限,controlRole可读可写。

二.使用JMX进行管理

1.客户端命令运行JConsole,打开java自带的管理工具,输入远程地址端口,以及账号密码

  

2.连接后选MBean标签,找到自定义的MBean的类,即可调用里面的方法更新配置,或者查看当前的配置

分享到:
评论

相关推荐

    Java资源包01

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    jboss-wildfly14.0.1应用服务器

    2. JMX监控:利用JMX接口监控服务器状态,及时发现异常。 3. 使用开发者工具:如JVisualVM、IntelliJ IDEA等,进行远程调试和性能分析。 总结,JBoss WildFly 14.0.1作为一款强大的应用服务器,不仅提供了丰富的...

    JAVA开源框架-汇总.doc

    - **概述**:eclipse-jmx 是一个基于Eclipse的开源项目,旨在为Java应用程序提供管理功能。 - **主要特性**: - 通过Eclipse IDE集成JMX (Java Management Extensions) 功能。 - 允许开发者在IDE内部监控和管理...

    30种java技术框架

    SAP是一家提供企业管理软件的公司,其系统架构包括供应链优化和管理系统(SCM)、企业资源计划系统(ERP)、财务管理系统等多个模块。SAP系统架构通过集成各种业务流程,帮助企业实现高效的运营和决策支持。 #### 二十...

    jboss4.2.2GA中文文档

    JBoss 4.2.2 GA 是一款流行的开源Java应用服务器,它基于Java EE(Enterprise Edition)标准,提供了多种企业级服务,如EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JMX(Java Management ...

    weblogic 常见问题 TROUBLE_SHOOTING

    - JMX监控:通过JMX(Java Management Extensions)可以实时监控服务器状态,识别性能瓶颈。 - 健康检查:使用WebLogic的内置健康检查工具检查服务器的运行状况。 - Server启动参数:调整启动参数如内存分配,可以...

    jetty 服务器

    - **JMX支持**:Jetty支持JMX(Java Management Extensions),允许通过JMX工具进行服务器的监控和管理。 - **控制台**:Jetty提供了一个简单的控制台界面,用于查看服务器状态和管理Web应用。 6. **扩展性** - ...

    tomcat6.0版本带实例

    5. **虚拟主机**:Tomcat6.0支持多个虚拟主机,这意味着可以在同一台服务器上部署多个独立的Web站点,每个站点有自己的域名或IP地址。 6. **连接器与协议**:Tomcat6.0使用不同的连接器处理不同的网络协议,如...

    公司要求实时监控服务器,写个Web的监控系统

    这个系统应该具备实时数据采集、可视化展示、报警通知等功能,以便于IT团队有效地管理服务器资源。 首先,我们要了解构建Web监控系统的基础技术。常见的选择包括使用Java作为后端开发语言,因为Java具有丰富的库和...

    apache-tomcat-9.0.53.tar.gz

    - **JMX(Java Management Extensions)**:允许通过JMX接口监控和管理Tomcat组件。 - **JConsole或VisualVM**:使用这些工具可可视化地监控Tomcat的内存、线程、CPU使用情况等。 9. **故障排查** - ** catalina...

    JAVA上百实例源码以及开源项目源代码

    Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...

    apache-tomcat-8.5.41-windows-x64.zip

    此外,还可以通过JMX(Java Management Extensions)进行远程监控和管理。 总之,Apache Tomcat 8.5.41是开发和部署Java Web应用的理想选择,尤其对于64位Windows用户,其优化的性能和丰富的功能集使其成为一个可靠...

    Linux-x64的apache-tomcat

    Linux-x64是指基于x86架构的64位Linux操作系统,这种操作系统能支持更大的内存和更多的处理器,为高性能服务器提供了良好的平台。在这样的环境中部署Tomcat,可以充分利用硬件资源,提高Web应用的处理能力。 **2. ...

    tomcat-8.5.23安装版.zip

    Tomcat作为轻量级应用服务器,相比其他如JBoss、WebLogic等重量级服务器,它的启动速度快,占用资源少,易于管理和配置,因此在小型到中型的项目中非常流行。 **Tomcat 8.5.x系列** Tomcat 8.5.x系列是Tomcat的一个...

    apache-tomcat-9.0.71-src.tar.gz

    1. **下载**:首先,由于标题提到"国内镜像加速下载",你可以使用阿里云、清华大学或其它国内镜像站点来下载Tomcat的源码包,以提高下载速度。例如,你可以访问阿里云开源镜像站(mirrors.aliyun.com)搜索并下载...

    java开源包2

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    Hbase权威指南高清中文版本.pdf

    "Linux公社www.linuxidc.com.url"可能是一个相关社区或资源站点的链接,读者可以在这里找到更多的学习资料和社区支持。 总之,《HBase权威指南高清中文版本》是学习和掌握HBase不可或缺的参考资料,无论你是初学者...

    AAS应用服务器用户手册

    - **虚拟主机**:支持多个虚拟站点的配置,便于管理和扩展。 - **HttpConnector**:提供HTTP协议的支持,实现客户端与服务器之间的通信。 - **WebDav**:支持WebDAV协议,实现文件共享等功能。 - **EJBContainer*...

Global site tag (gtag.js) - Google Analytics