풀 라이브러리 HikaricP에 연결된 MBean(JMX) 가져오기 및 표시
11342 단어 apache-camelHikariCP
Hikari CP는 고속 연결 수영장 창고에서 인기가 많은 것 같아요.
HikaricP의 수영장에 있는 정보는 JMX를 통해 얻을 수 있다.얻을 수 있는 정보는 다음과 같다.
HikaricP는 기본적으로 MBean을 가져올 수 없으므로 다음 두 설정을 추가합니다.
logging 및 JMX 관리 출력의 pool 이름을 지정합니다.
MBean 등록 여부를 결정합니다.
<property name="registerMbeans" value="true" />
<property name="poolName" value="testHikariPool" />
추가 설정 예는 다음과 같다. <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="jdbcUrl" value="jdbc:postgresql://192.168.20.71:5432/testdb" />
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="minimumIdle" value="10" />
<property name="maximumPoolSize" value="100" />
<property name="connectionTimeout" value="30000" />
<property name="idleTimeout" value="600000" />
<property name="maxLifetime" value="1800000" />
<property name="username" value="postgres" />
<property name="password" value="postgres" />
<property name="connectionInitSql" value="SELECT 1" />
<!-- <property name="connectionTestQuery" value="SELECT 1" /> --><!-- connectionTestQueryは非推奨 -->
<property name="validationTimeout" value="5000" />
<property name="registerMbeans" value="true" />
<property name="poolName" value="testHikariPool" />
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
destroy-method="close">
<constructor-arg ref="hikariConfig" />
</bean>
JMX로 가져오기 및 표시hawtio라는 웹 콘솔을 사용하여 Mbean의 정보를 표시합니다.
Joconsole에서도 마찬가지로 보일 수 있습니다.
hawtio라면 아래의 도표로 표시할 수 있습니다(잘 보이지는 않지만!).
현재의 연결수 등은 다음과 같다.
HikaricP의 설정 정보는 다음과 같습니다.
수영장의 연결 수는 아무래도 설정된 후에도 성능 문제를 일으킬 것 같다.성능에 문제가 생겨도 감시가 없으면 플린이 문제라는 것을 발견하기 어렵다.
개발 중에도 접속수를 확보할 수 있다면 편리할 텐데, 생산 환경에서도 모니터링하는 게 좋다.JMX를 통해 취득할 수 있기 때문에 자빅스 등을 통해서도 모니터링이 가능하다.
참조: Apache Camel의 프로세서에서 데이터 소스를 가져올 때 코드는 다음과 같습니다.
@Component
public class InsertSql implements Processor {
@Resource
private CamelContext context;
private Logger logger = LoggerFactory.getLogger("sample.CreateDataProcessor");
private String sql = "insert into log_tbl(id, msg1, msg2, insert_time) values(logkey_seq.NEXTVAL, ?, ?, current_timestamp)";
private Faker faker = new Faker(new Locale("ja_JP"));
@Override
public void process(Exchange exchange) throws Exception {
HikariDataSource ds = (HikariDataSource)context.getRegistry().lookupByName("dataSource");
try (Connection con = ds.getConnection();
PreparedStatement ps = con.prepareStatement(sql);) {
ps.setString(1, faker.lorem().sentence(3));
ps.setString(2, faker.lorem().sentence(5));
logger.info("insert process");
try (ResultSet rs = ps.executeQuery();) {
con.commit();
}
} catch (SQLException e) {
logger.error(e.getMessage(), e);
}
}
}
/* DDLは以下のとおり
CREATE TABLE log_tbl
(
id number NOT NULL,
msg1 varchar2(128),
msg2 varchar2(128),
insert_time timestamp
);
*/
참고 자료MBean (JMX) Monitoring and Management
https://github.com/brettwooldridge/HikariCP/wiki/MBean-(JMX)-Monitoring-and-Management
세계의 일부 JDBC Connection Pool[HikaricP] 설정
http://time-complexity.blogspot.com/2015/03/db-connection-pool-hikaricp.html
Reference
이 문제에 관하여(풀 라이브러리 HikaricP에 연결된 MBean(JMX) 가져오기 및 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mkyz08/items/8ba695b7575dfdcafe36텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)