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

基于Spring支持JMX

阅读更多

前言:

      基于Vert写的组件,其中在使用过程中碰到若干瓶颈问题,如果每个组件都采用日志方式,查看资源使用情况略微低廉点,所以采用了JMX来进行管理工作。

      提到JMX,就必须按照JMX的规范,写一大堆的MBean、MXBean、Agent等,想起来就挺麻烦的,这个时候想起来Spring支持JMX,发现虽然原理差不多使用MXBeanServer.register,但是就是Spring写得东西就是让你配置特别简单。

import org.apache.log4j.Logger;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.jmx.export.annotation.ManagedResource;
import org.springframework.stereotype.Component;

import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;

@Aspect
@Component
@ManagedResource(objectName = "aop-vertx:name=VertxRedisAspect")
public class VertxRedisAspect  {

	private static Logger LOG = Logger.getLogger(VertxRedisAspect.class);

	private AtomicInteger redisPartitions = new AtomicInteger(0);


	public void sharePartitions(int count) {
		redisPartitions.set(count);
	}
}

 springXML的配置结构:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:p="http://www.springframework.org/schema/p"
	   xmlns:ctx="http://www.springframework.org/schema/context"
	   xmlns:int="http://www.springframework.org/schema/integration/jmx"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
	   		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
	   		http://www.springframework.org/schema/integration/jmx http://www.springframework.org/schema/integration/jmx/spring-integration-jmx.xsd">

	<ctx:mbean-server/>

	<ctx:mbean-export default-domain="aop-vertx"/>
	<int:mbean-export default-domain="aop-vertx"/>

	<bean id="rmiRegistry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"
		  p:port="1099"/>

	<bean id="jmxServerConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean"
		  depends-on="rmiRegistry"
		  p:objectName="connector:name=rmi"
		  p:serviceUrl="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/aop-vertx"/>

</beans>

 查看JConsole:

MBean下就有具体的操作和通知

 

个人结论:

      不管你做中间件还是其它服务化的,最好都支持JMX support,不仅仅为了自己,也为了本身系统的健壮性。

3
1
分享到:
评论

相关推荐

    基于Spring+JMX+Tomcat实现资源动态管理

    标题"基于Spring+JMX+Tomcat实现资源动态管理"揭示了我们将讨论的核心技术栈。 首先,Spring是一个广泛使用的Java应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,极大地简化了企业级应用的构建...

    JMX (三)--------spring整合JMX

    1. **启用JMX支持**:在Spring配置文件中,我们需要添加`&lt;management&gt;`标签来启用JMX支持。这将创建一个内嵌的MBeanServer,并配置相关的MBeanServerExporter。 2. **定义MBeans**:MBeans可以通过两种方式创建:...

    JMX与Spring 结合

    Spring支持两种类型的MBean注册,对于标准MBean,可以使用`StandardMBean`类;对于非标准MBean,可以使用`MBeanExporter`来实现。 3. **基于接口和注解的MBean 注册**:接口方式需要创建一个Java接口,然后让MBean...

    基于SpringCloud-微服务系统设计方案.rar

    本文将深入探讨基于SpringCloud的微服务系统设计方案,涵盖核心组件、架构设计原则以及实施策略。 1. **微服务架构基础** 微服务架构是一种将单一应用程序分解为一组小型服务的方法,每个服务运行在其自己的进程中...

    Spring Boot是一个基于Spring框架的开源项目,旨在简化Spring应用的初始搭建以及开发过程 以下是对Spring

    Spring Boot 是一个基于 Spring 框架的开源项目,旨在简化 Spring 应用的初始搭建及开发过程。Spring Boot 的目标是让开发者能够更加专注于业务逻辑的实现,而减少在配置、依赖管理等方面的投入。作为一个快速、轻便...

    基于Spring4MVC的测试Demo

    首先,Spring4是Spring框架的一个主要版本,引入了许多增强和改进,如支持Java 8的新特性、对WebSocket的支持以及对JMS和JMX的改进。在Spring4MVC中,我们可以通过注解驱动的配置来简化Web应用的开发,例如使用@...

    基于spring+hessian框架的webservice实例

    本实例重点探讨的是基于Spring框架和Hessian协议的Web Service实现,这是一种轻量级、高效的远程调用解决方案。 首先,我们要理解Spring框架。Spring是Java领域的一个核心框架,它提供了全面的编程和配置模型,用于...

    Spring2.5-Reference_zh_CN.txt

    - **AOP实现**:Spring支持基于XML和注解的方式定义AOP切面,并提供了强大的切入点表达式语言。 - **@AspectJ支持**:Spring 2.5还支持使用@AspectJ注解编写切面类,这种方式更加灵活。 #### 六、数据访问支持 - **...

    JMX开发入门

    Java Management Extensions(JMX)是...例如,Spring框架提供了对JMX的集成支持,简化了在Spring应用中使用JMX的复杂性。总的来说,JMX因其灵活性、标准化和广泛的生态系统支持,成为了Java环境中不可或缺的管理工具。

    spring 4jar 包

    5. **Test**:Spring Test模块提供测试支持,包括单元测试和集成测试,使得基于Spring的应用程序可以轻松进行测试驱动开发。 在Spring 4.3.7.RELEASE中,一些主要的改进和新增功能包括: 1. **Java 8支持**:这一...

    spring5 官方文档 中文版 带目录

    Spring MVC是一个基于Servlet API构建的传统Web框架,而Spring WebFlux则是一个全新的响应式框架,支持非阻塞式处理,非常适合构建高响应性和高吞吐量的Web应用。 Spring还提供了WebSocket、SockJS和STOMP消息传递...

    spring4.2.rar

    虽然Spring Boot不在4.2版本中直接引入,但它是基于Spring 4.x构建的,简化了Spring应用的初始设置和运行。Spring Boot的自动配置特性使得开发者能快速搭建项目,而无需过多关注配置细节。 5. **WebSocket支持** ...

    spring 3.0 jar spring最新开发包

    5. **JMX支持**:提供了更好的Java Management Extensions(JMX)支持,使得Spring应用可以被管理和监控。 6. **WebFlow集成**:Spring Web Flow的集成更加紧密,方便创建复杂的用户交互流程。 7. **数据访问增强**...

    spring jar 包2

    Spring支持JMX,可以创建和注册MBeans(Managed Beans),提供对应用程序状态和操作的远程管理。 2. **slf4j**:Simple Logging Facade for Java是日志记录的抽象层,提供一个通用的日志API,允许用户在运行时选择...

    spring3.0最新lib包

    9. **JMX支持**:Spring 3.0增加了对Java Management Extensions(JMX)的集成,使得Spring应用可以被管理和监控。 10. **更多数据库支持**:Spring 3.0改进了与多种数据库的兼容性,包括对JDBC、Hibernate、JPA等...

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器...

    Spring框架jar包全

    4. **Spring Context**:这是Spring框架的上下文模块,它扩展了Core Container的概念,引入了环境感知能力,如bean的国际化、事件传播以及对其他Spring模块(如JDBC、JMS、JMX等)的支持。 5. **Spring JDBC**:...

    Spring2.5.6 参考文档

    - **JMX支持**:增强了与Java Management Extensions (JMX)的集成,便于监控和管理Spring应用程序。 - **作为JCA适配器部署Spring应用上下文**:支持将Spring应用上下文作为JCA适配器进行部署,便于与其他企业级...

Global site tag (gtag.js) - Google Analytics