java应用监控之Cat集成DubboMybatisLogbackspring boot

Posted java程序员思维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java应用监控之Cat集成DubboMybatisLogbackspring boot相关的知识,希望对你有一定的参考价值。

                 

java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot

往期文章







java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot


目录

1、cat源代码下载

2、引入封装好的jar包

3、定义对接的应用名称

4、spring boot对接

5、logback对接

6、非spring boot项目对接

7、mybatis对接

8、部署应用


1、cat源代码下载



cat属于代码侵入式的,集成cat需要进行相应的埋码。接入代码可以参考integration包下的代码


java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot


java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot



我们可以以dubbo目录下的代码作为主干,把另外几个对接的代码拷贝过去,然后重新打包,并上传至公司的maven私服。需要对接的应用,引入jar包。


2、引入封装好的jar包


maven方式

<dependency> <groupId>com.platform</groupId> <artifactId>cat-common-client</artifactId> <version>0.0.6</version></dependency>

gradle方式

compile("com.platform:cat-common-client:0.0.6")


3、定义对接的应用名称


在resource目录下增加 META-INF/app.properties,文件内容如下:

app.name=你的应用名


4、spring boot对接


package com.galaxy.crm.cat;
import com.dianping.cat.servlet.CatFilter;import com.platform.catmonitor.mybatis.CatMybatisInterceptor;import org.apache.ibatis.plugin.Interceptor;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.annotation.Resource;import javax.sql.DataSource;
@Configurationpublic class CatCommon {
@Bean public FilterRegistrationBean catFilter() { FilterRegistrationBean registration = new FilterRegistrationBean(); CatFilter filter = new CatFilter(); registration.setFilter(filter); registration.addUrlPatterns("/*"); registration.setName("cat-filter"); registration.setOrder(1); return registration; } @Resource private DataSource dataSource;
@Value("${spring.datasource.url}") private String jdbcUrl;
@Value("${mybatis.mapper-locations}") private String mapperLocations;
@Value("${mybatis.type-aliases-package}") private String typePackage;
@Bean public SqlSessionFactory mysqlSessionFactory() throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); sqlSessionFactoryBean.setTypeAliasesPackage(typePackage); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(resolver.getResources(mapperLocations)); sqlSessionFactoryBean.setPlugins(new Interceptor[]{new CatMybatisInterceptor(jdbcUrl)}); return sqlSessionFactoryBean.getObject(); }}
4.对接logback,logback文件增加如下代码<appender name="CatAppender" class="com.platform.catmonitor.logback.CatLogbackAppender"></appender><root level="ERROR"> <appender-ref ref="CatAppender"/></root>


5、logback对接


<appender name="CatAppender" class="com.platform.catmonitor.logback.CatLogbackAppender"></appender><root level="ERROR"> <appender-ref ref="CatAppender"/></root>

注意:logback记录日志的时候需要传入异常对象,如果不传无法在cat中的problem展示错误信息。logger.error(e.getMessage(),e);


6、非spring boot项目对接


在web.xml增加如下代码

<filter> <filter-name>cat-filter</filter-name> <filter-class>com.dianping.cat.servlet.CatFilter</filter-class></filter><filter-mapping> <filter-name>cat-filter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher></filter-mapping>


7、mybatis对接


spring boot项目在对接方式已经给出了方法,需要注意的是要确保application.properties中有以下变量

spring.datasource.urlmybatis.mapper-locationsmybatis.type-aliases-package

非spring boot项目可以通过一下方式,在bean,sqlSessionFactory的配置增加plugins属性配置如下


<bean id="sqlSessionFactory" class="com.galaxy.item.MySqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="plugins"> <array> <bean class="com.platform.catmonitor.mybatis.CatMybatisPlugin"></bean> </array> </property> <property name="configLocation" value="classpath:mybatis-configuration.xml"></property> <property name="mapperLocations" value="classpath*:mapper/*/*Mapper.xml"></property></bean>


8、部署应用


代码加完了,需要重新部署应用,部署应用之前需要添加client.xml,因为应用部署在不同的机器中,最好所有的应用公用一个client.xml,这样方便维护。可以使用linux挂载命令mount进行文件共享。


使用挂载命令之前需要安装nfs软件:yum install nfs-utilsy


mount -t nfs -o nolock,nfsvers=3,vers=3 -o rw  服务器Ip:/data/appdatas /data/appdatas


确保应用服务器中/data/appdatas/cat目录存在client.xml

<?xml version="1.0" encoding="utf-8"?><config mode="client" enabled="true"> <servers> <server ip="cat服务器IP" port="cat端口" http-port="你的应用端口"></server> <server ip="cat服务器IP" port="cat端口" http-port="你的应用端口"></server> </servers></config>

启动之后,如果没有任何问题,在cat中会显示你新加入的应用名称


java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot


cat的对接就已经成功了,下一篇内容cat后台功能讲解。


END


划至底部,点击“在看”,是你来过的仪式感!


java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot





推荐阅读:
















  • 更多文章:









以上是关于java应用监控之Cat集成DubboMybatisLogbackspring boot的主要内容,如果未能解决你的问题,请参考以下文章

应用监控CAT之cat-home源码阅读

应用监控CAT之cat-consumer源码阅读

大众美团服务链监控CAT

Spring Boot 两步集成 日志收集ELK与分布式系统监控CAT

深入详解美团点评CAT跨语言服务监控 CAT简介与部署

大众点评开源监控CAT概览