一.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的类,即可调用里面的方法更新配置,或者查看当前的配置
分享到:
相关推荐
ProjectLink 提供了项目规划、进度跟踪、资源分配和报告等功能,使得项目管理者能够实时掌握项目的进展状态,及时调整计划以应对变化。 #### Windchill 体系结构概述 Windchill 的体系结构是多层次的,主要包括...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
2. JMX监控:利用JMX接口监控服务器状态,及时发现异常。 3. 使用开发者工具:如JVisualVM、IntelliJ IDEA等,进行远程调试和性能分析。 总结,JBoss WildFly 14.0.1作为一款强大的应用服务器,不仅提供了丰富的...
- **概述**:eclipse-jmx 是一个基于Eclipse的开源项目,旨在为Java应用程序提供管理功能。 - **主要特性**: - 通过Eclipse IDE集成JMX (Java Management Extensions) 功能。 - 允许开发者在IDE内部监控和管理...
SAP是一家提供企业管理软件的公司,其系统架构包括供应链优化和管理系统(SCM)、企业资源计划系统(ERP)、财务管理系统等多个模块。SAP系统架构通过集成各种业务流程,帮助企业实现高效的运营和决策支持。 #### 二十...
JBoss 4.2.2 GA 是一款流行的开源Java应用服务器,它基于Java EE(Enterprise Edition)标准,提供了多种企业级服务,如EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JMX(Java Management ...
- JMX监控:通过JMX(Java Management Extensions)可以实时监控服务器状态,识别性能瓶颈。 - 健康检查:使用WebLogic的内置健康检查工具检查服务器的运行状况。 - Server启动参数:调整启动参数如内存分配,可以...
- **JMX支持**:Jetty支持JMX(Java Management Extensions),允许通过JMX工具进行服务器的监控和管理。 - **控制台**:Jetty提供了一个简单的控制台界面,用于查看服务器状态和管理Web应用。 6. **扩展性** - ...
5. **虚拟主机**:Tomcat6.0支持多个虚拟主机,这意味着可以在同一台服务器上部署多个独立的Web站点,每个站点有自己的域名或IP地址。 6. **连接器与协议**:Tomcat6.0使用不同的连接器处理不同的网络协议,如...
这个系统应该具备实时数据采集、可视化展示、报警通知等功能,以便于IT团队有效地管理服务器资源。 首先,我们要了解构建Web监控系统的基础技术。常见的选择包括使用Java作为后端开发语言,因为Java具有丰富的库和...
- **JMX(Java Management Extensions)**:允许通过JMX接口监控和管理Tomcat组件。 - **JConsole或VisualVM**:使用这些工具可可视化地监控Tomcat的内存、线程、CPU使用情况等。 9. **故障排查** - ** catalina...
此外,还可以通过JMX(Java Management Extensions)进行远程监控和管理。 总之,Apache Tomcat 8.5.41是开发和部署Java Web应用的理想选择,尤其对于64位Windows用户,其优化的性能和丰富的功能集使其成为一个可靠...
Linux-x64是指基于x86架构的64位Linux操作系统,这种操作系统能支持更大的内存和更多的处理器,为高性能服务器提供了良好的平台。在这样的环境中部署Tomcat,可以充分利用硬件资源,提高Web应用的处理能力。 **2. ...
Tomcat作为轻量级应用服务器,相比其他如JBoss、WebLogic等重量级服务器,它的启动速度快,占用资源少,易于管理和配置,因此在小型到中型的项目中非常流行。 **Tomcat 8.5.x系列** Tomcat 8.5.x系列是Tomcat的一个...
1. **下载**:首先,由于标题提到"国内镜像加速下载",你可以使用阿里云、清华大学或其它国内镜像站点来下载Tomcat的源码包,以提高下载速度。例如,你可以访问阿里云开源镜像站(mirrors.aliyun.com)搜索并下载...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
"Linux公社www.linuxidc.com.url"可能是一个相关社区或资源站点的链接,读者可以在这里找到更多的学习资料和社区支持。 总之,《HBase权威指南高清中文版本》是学习和掌握HBase不可或缺的参考资料,无论你是初学者...
- **虚拟主机**:支持多个虚拟站点的配置,便于管理和扩展。 - **HttpConnector**:提供HTTP协议的支持,实现客户端与服务器之间的通信。 - **WebDav**:支持WebDAV协议,实现文件共享等功能。 - **EJBContainer*...
- **JMX管理**: 使用Java Management Extensions (JMX) 进行管理。 #### 十一、配置JNDI - **JNDI介绍**: Java Naming and Directory Interface的简介。 - **如何使用**: 如何在Jetty中配置和使用JNDI。 #### 十二...