java应用监控之Cat集成DubboMybatisLogbackspring boot
Posted java程序员思维
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java应用监控之Cat集成DubboMybatisLogbackspring boot相关的知识,希望对你有一定的参考价值。
往期文章
目录
1、cat源代码下载
2、引入封装好的jar包
3、定义对接的应用名称
4、spring boot对接
5、logback对接
6、非spring boot项目对接
7、mybatis对接
8、部署应用
cat属于代码侵入式的,集成cat需要进行相应的埋码。接入代码可以参考integration包下的代码
我们可以以dubbo目录下的代码作为主干,把另外几个对接的代码拷贝过去,然后重新打包,并上传至公司的maven私服。需要对接的应用,引入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")
在resource目录下增加 META-INF/app.properties,文件内容如下:
app.name=你的应用名
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;
@Configuration
public class CatCommon {
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;
}
private DataSource dataSource;
private String jdbcUrl;
private String mapperLocations;
private String typePackage;
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.url
mybatis.mapper-locations
mybatis.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中会显示你新加入的应用名称
cat的对接就已经成功了,下一篇内容cat后台功能讲解。
END
划至底部,点击“在看”,是你来过的仪式感!
推荐阅读:
更多文章:
以上是关于java应用监控之Cat集成DubboMybatisLogbackspring boot的主要内容,如果未能解决你的问题,请参考以下文章