mirror of https://github.com/longtai-cn/hippo4j
commit
1bd874dad2
@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package cn.hippo4j.common.toolkit;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.management.MemoryMXBean;
|
||||
import java.lang.management.MemoryUsage;
|
||||
|
||||
/**
|
||||
* memory util<br>
|
||||
* the obtained information is not invalid, after a long wait, obtain it again
|
||||
*
|
||||
* @author liuwenhao
|
||||
*/
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class MemoryUtil {
|
||||
|
||||
static MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
|
||||
static MemoryUsage heapMemoryUsage = memoryMXBean.getHeapMemoryUsage();
|
||||
static MemoryUsage noHeapMemoryUsage = memoryMXBean.getNonHeapMemoryUsage();
|
||||
|
||||
/**
|
||||
* get used memory in heap
|
||||
*
|
||||
* @return long bytes
|
||||
*/
|
||||
public static long heapMemoryUsed() {
|
||||
return heapMemoryUsage.getUsed();
|
||||
}
|
||||
|
||||
/**
|
||||
* get max memory in heap
|
||||
*
|
||||
* @return long bytes
|
||||
*/
|
||||
public static long heapMemoryMax() {
|
||||
return heapMemoryUsage.getMax();
|
||||
}
|
||||
|
||||
/**
|
||||
* get free memory in heap
|
||||
*
|
||||
* @return long bytes
|
||||
*/
|
||||
public static long heapMemoryFree() {
|
||||
return Math.subtractExact(heapMemoryMax(), heapMemoryUsed());
|
||||
}
|
||||
|
||||
/**
|
||||
* get used memory in no-heap
|
||||
*
|
||||
* @return long bytes
|
||||
*/
|
||||
public static long noHeapMemoryUsed() {
|
||||
return noHeapMemoryUsage.getUsed();
|
||||
}
|
||||
|
||||
/**
|
||||
* get max memory in no-heap
|
||||
*
|
||||
* @return long bytes
|
||||
*/
|
||||
public static long noHeapMemoryMax() {
|
||||
return noHeapMemoryUsage.getMax();
|
||||
}
|
||||
|
||||
/**
|
||||
* get free memory in no-heap
|
||||
*
|
||||
* @return long bytes
|
||||
*/
|
||||
public static long noHeapMemoryFree() {
|
||||
return Math.subtractExact(noHeapMemoryMax(), noHeapMemoryUsed());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package cn.hippo4j.common.toolkit;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class MemoryUtilTest {
|
||||
|
||||
@Test
|
||||
public void heapMemoryUsed() {
|
||||
long memoryUsed = MemoryUtil.heapMemoryUsed();
|
||||
Assert.assertNotEquals(0, memoryUsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void heapMemoryMax() {
|
||||
long memoryUsed = MemoryUtil.heapMemoryMax();
|
||||
Assert.assertNotEquals(0, memoryUsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void heapMemoryFree() {
|
||||
long memoryUsed = MemoryUtil.heapMemoryFree();
|
||||
Assert.assertNotEquals(0, memoryUsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noHeapMemoryUsed() {
|
||||
long memoryUsed = MemoryUtil.noHeapMemoryUsed();
|
||||
Assert.assertNotEquals(0, memoryUsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noHeapMemoryMax() {
|
||||
long memoryUsed = MemoryUtil.noHeapMemoryMax();
|
||||
Assert.assertNotEquals(0, memoryUsed);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noHeapMemoryFree() {
|
||||
long memoryUsed = MemoryUtil.noHeapMemoryFree();
|
||||
Assert.assertNotEquals(0, memoryUsed);
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
# \u4EE5\u4E0B\u5185\u5BB9\u590D\u5236\u5230 apollo \u914D\u7F6E\u6587\u4EF6\u4E2D
|
||||
# Copy the following to the apollo configuration file
|
||||
|
||||
spring.dynamic.thread-pool.tomcat.core-pool-size=64
|
||||
spring.dynamic.thread-pool.tomcat.maximum-pool-size=128
|
||||
spring.dynamic.thread-pool.tomcat.keep-alive-time=1000
|
||||
spring.dynamic.thread-pool.tomcat.enable=true
|
||||
spring.dynamic.thread-pool.default-executor.core-pool-size=1
|
||||
spring.dynamic.thread-pool.default-executor.maximum-pool-size=2
|
||||
spring.dynamic.thread-pool.default-executor.blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.default-executor.execute-time-out=100
|
||||
spring.dynamic.thread-pool.default-executor.keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.default-executor.queue-capacity=1
|
||||
spring.dynamic.thread-pool.default-executor.rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.default-executor.active-alarm=90
|
||||
spring.dynamic.thread-pool.default-executor.capacity-alarm=85
|
||||
spring.dynamic.thread-pool.default-executor.alarm=true
|
||||
spring.dynamic.thread-pool.default-executor.allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.default-executor.notify.interval=5
|
||||
spring.dynamic.thread-pool.default-executor.notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT
|
||||
spring.dynamic.thread-pool.notify-platforms[0].secret-key=ec3be378-6c99-45d2-a147-b400c7e94a08
|
||||
spring.dynamic.thread-pool.executors[0].thread-pool-id=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].thread-name-prefix=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[0].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[0].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[0].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[0].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[0].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[0].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[0].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[0].alarm=true
|
||||
spring.dynamic.thread-pool.executors[0].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[0].notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.executors[1].thread-pool-id=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].thread-name-prefix=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[1].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[1].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[1].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[1].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[1].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[1].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[1].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[1].alarm=true
|
||||
spring.dynamic.thread-pool.executors[1].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[1].notify.receives=chen.ma
|
@ -0,0 +1,52 @@
|
||||
# \u4EE5\u4E0B\u5185\u5BB9\u590D\u5236\u5230 apollo \u914D\u7F6E\u6587\u4EF6\u4E2D
|
||||
# Copy the following to the apollo configuration file
|
||||
|
||||
spring.dynamic.thread-pool.tomcat.core-pool-size=64
|
||||
spring.dynamic.thread-pool.tomcat.maximum-pool-size=128
|
||||
spring.dynamic.thread-pool.tomcat.keep-alive-time=1000
|
||||
spring.dynamic.thread-pool.tomcat.enable=true
|
||||
spring.dynamic.thread-pool.default-executor.core-pool-size=1
|
||||
spring.dynamic.thread-pool.default-executor.maximum-pool-size=2
|
||||
spring.dynamic.thread-pool.default-executor.blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.default-executor.execute-time-out=100
|
||||
spring.dynamic.thread-pool.default-executor.keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.default-executor.queue-capacity=1
|
||||
spring.dynamic.thread-pool.default-executor.rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.default-executor.active-alarm=90
|
||||
spring.dynamic.thread-pool.default-executor.capacity-alarm=85
|
||||
spring.dynamic.thread-pool.default-executor.alarm=true
|
||||
spring.dynamic.thread-pool.default-executor.allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.default-executor.notify.interval=5
|
||||
spring.dynamic.thread-pool.default-executor.notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT
|
||||
spring.dynamic.thread-pool.notify-platforms[0].secret-key=ec3be378-6c99-45d2-a147-b400c7e94a08
|
||||
spring.dynamic.thread-pool.executors[0].thread-pool-id=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].thread-name-prefix=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[0].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[0].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[0].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[0].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[0].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[0].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[0].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[0].alarm=true
|
||||
spring.dynamic.thread-pool.executors[0].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[0].notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.executors[1].thread-pool-id=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].thread-name-prefix=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[1].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[1].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[1].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[1].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[1].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[1].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[1].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[1].alarm=true
|
||||
spring.dynamic.thread-pool.executors[1].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[1].notify.receives=chen.ma
|
@ -0,0 +1,52 @@
|
||||
# \u4EE5\u4E0B\u5185\u5BB9\u590D\u5236\u5230 etcd \u914D\u7F6E\u6587\u4EF6\u4E2D
|
||||
# Copy the following to the etcd configuration file
|
||||
|
||||
spring.dynamic.thread-pool.tomcat.core-pool-size=64
|
||||
spring.dynamic.thread-pool.tomcat.maximum-pool-size=128
|
||||
spring.dynamic.thread-pool.tomcat.keep-alive-time=1000
|
||||
spring.dynamic.thread-pool.tomcat.enable=true
|
||||
spring.dynamic.thread-pool.default-executor.core-pool-size=1
|
||||
spring.dynamic.thread-pool.default-executor.maximum-pool-size=2
|
||||
spring.dynamic.thread-pool.default-executor.blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.default-executor.execute-time-out=100
|
||||
spring.dynamic.thread-pool.default-executor.keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.default-executor.queue-capacity=1
|
||||
spring.dynamic.thread-pool.default-executor.rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.default-executor.active-alarm=90
|
||||
spring.dynamic.thread-pool.default-executor.capacity-alarm=85
|
||||
spring.dynamic.thread-pool.default-executor.alarm=true
|
||||
spring.dynamic.thread-pool.default-executor.allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.default-executor.notify.interval=5
|
||||
spring.dynamic.thread-pool.default-executor.notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT
|
||||
spring.dynamic.thread-pool.notify-platforms[0].secret-key=ec3be378-6c99-45d2-a147-b400c7e94a08
|
||||
spring.dynamic.thread-pool.executors[0].thread-pool-id=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].thread-name-prefix=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[0].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[0].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[0].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[0].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[0].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[0].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[0].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[0].alarm=true
|
||||
spring.dynamic.thread-pool.executors[0].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[0].notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.executors[1].thread-pool-id=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].thread-name-prefix=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[1].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[1].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[1].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[1].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[1].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[1].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[1].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[1].alarm=true
|
||||
spring.dynamic.thread-pool.executors[1].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[1].notify.receives=chen.ma
|
@ -0,0 +1,52 @@
|
||||
# \u4EE5\u4E0B\u5185\u5BB9\u590D\u5236\u5230 nacos \u914D\u7F6E\u6587\u4EF6\u4E2D
|
||||
# Copy the following to the nacos configuration file
|
||||
|
||||
spring.dynamic.thread-pool.tomcat.core-pool-size=64
|
||||
spring.dynamic.thread-pool.tomcat.maximum-pool-size=128
|
||||
spring.dynamic.thread-pool.tomcat.keep-alive-time=1000
|
||||
spring.dynamic.thread-pool.tomcat.enable=true
|
||||
spring.dynamic.thread-pool.default-executor.core-pool-size=1
|
||||
spring.dynamic.thread-pool.default-executor.maximum-pool-size=2
|
||||
spring.dynamic.thread-pool.default-executor.blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.default-executor.execute-time-out=100
|
||||
spring.dynamic.thread-pool.default-executor.keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.default-executor.queue-capacity=1
|
||||
spring.dynamic.thread-pool.default-executor.rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.default-executor.active-alarm=90
|
||||
spring.dynamic.thread-pool.default-executor.capacity-alarm=85
|
||||
spring.dynamic.thread-pool.default-executor.alarm=true
|
||||
spring.dynamic.thread-pool.default-executor.allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.default-executor.notify.interval=5
|
||||
spring.dynamic.thread-pool.default-executor.notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT
|
||||
spring.dynamic.thread-pool.notify-platforms[0].secret-key=ec3be378-6c99-45d2-a147-b400c7e94a08
|
||||
spring.dynamic.thread-pool.executors[0].thread-pool-id=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].thread-name-prefix=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[0].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[0].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[0].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[0].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[0].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[0].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[0].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[0].alarm=true
|
||||
spring.dynamic.thread-pool.executors[0].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[0].notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.executors[1].thread-pool-id=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].thread-name-prefix=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[1].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[1].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[1].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[1].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[1].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[1].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[1].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[1].alarm=true
|
||||
spring.dynamic.thread-pool.executors[1].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[1].notify.receives=chen.ma
|
@ -0,0 +1,52 @@
|
||||
# \u4EE5\u4E0B\u5185\u5BB9\u590D\u5236\u5230 nacos \u914D\u7F6E\u6587\u4EF6\u4E2D
|
||||
# Copy the following to the nacos configuration file
|
||||
|
||||
spring.dynamic.thread-pool.tomcat.core-pool-size=64
|
||||
spring.dynamic.thread-pool.tomcat.maximum-pool-size=128
|
||||
spring.dynamic.thread-pool.tomcat.keep-alive-time=1000
|
||||
spring.dynamic.thread-pool.tomcat.enable=true
|
||||
spring.dynamic.thread-pool.default-executor.core-pool-size=1
|
||||
spring.dynamic.thread-pool.default-executor.maximum-pool-size=2
|
||||
spring.dynamic.thread-pool.default-executor.blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.default-executor.execute-time-out=100
|
||||
spring.dynamic.thread-pool.default-executor.keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.default-executor.queue-capacity=1
|
||||
spring.dynamic.thread-pool.default-executor.rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.default-executor.active-alarm=90
|
||||
spring.dynamic.thread-pool.default-executor.capacity-alarm=85
|
||||
spring.dynamic.thread-pool.default-executor.alarm=true
|
||||
spring.dynamic.thread-pool.default-executor.allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.default-executor.notify.interval=5
|
||||
spring.dynamic.thread-pool.default-executor.notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.notify-platforms[0].platform=WECHAT
|
||||
spring.dynamic.thread-pool.notify-platforms[0].secret-key=ec3be378-6c99-45d2-a147-b400c7e94a08
|
||||
spring.dynamic.thread-pool.executors[0].thread-pool-id=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].thread-name-prefix=message-consume
|
||||
spring.dynamic.thread-pool.executors[0].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[0].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[0].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[0].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[0].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[0].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[0].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[0].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[0].alarm=true
|
||||
spring.dynamic.thread-pool.executors[0].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[0].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[0].notify.receives=chen.ma
|
||||
spring.dynamic.thread-pool.executors[1].thread-pool-id=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].thread-name-prefix=message-produce
|
||||
spring.dynamic.thread-pool.executors[1].core-pool-size=2
|
||||
spring.dynamic.thread-pool.executors[1].maximum-pool-size=4
|
||||
spring.dynamic.thread-pool.executors[1].queue-capacity=1024
|
||||
spring.dynamic.thread-pool.executors[1].blocking-queue=ResizableCapacityLinkedBlockingQueue
|
||||
spring.dynamic.thread-pool.executors[1].execute-time-out=800
|
||||
spring.dynamic.thread-pool.executors[1].rejected-handler=AbortPolicy
|
||||
spring.dynamic.thread-pool.executors[1].keep-alive-time=6691
|
||||
spring.dynamic.thread-pool.executors[1].allow-core-thread-time-out=true
|
||||
spring.dynamic.thread-pool.executors[1].alarm=true
|
||||
spring.dynamic.thread-pool.executors[1].active-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].capacity-alarm=80
|
||||
spring.dynamic.thread-pool.executors[1].notify.interval=8
|
||||
spring.dynamic.thread-pool.executors[1].notify.receives=chen.ma
|
@ -1,82 +0,0 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package cn.hippo4j.config.toolkit;
|
||||
|
||||
import cn.hippo4j.common.toolkit.CollectionUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
/**
|
||||
* Map util.
|
||||
*/
|
||||
public class MapUtil {
|
||||
|
||||
public static Object computeIfAbsent(Map target, Object key, BiFunction mappingFunction, Object param1, Object param2) {
|
||||
Objects.requireNonNull(target, "target");
|
||||
Objects.requireNonNull(key, "key");
|
||||
Objects.requireNonNull(mappingFunction, "mappingFunction");
|
||||
Objects.requireNonNull(param1, "param1");
|
||||
Objects.requireNonNull(param2, "param2");
|
||||
Object val = target.get(key);
|
||||
if (val == null) {
|
||||
Object ret = mappingFunction.apply(param1, param2);
|
||||
target.put(key, ret);
|
||||
return ret;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fuzzy matching based on Key.
|
||||
*
|
||||
* @param sourceMap
|
||||
* @param filters
|
||||
* @return
|
||||
*/
|
||||
public static List<String> parseMapForFilter(Map<String, ?> sourceMap, String filters) {
|
||||
List<String> resultList = new ArrayList<>();
|
||||
if (CollectionUtil.isEmpty(sourceMap)) {
|
||||
return resultList;
|
||||
}
|
||||
sourceMap.forEach((key, val) -> {
|
||||
if (checkKey(key, filters)) {
|
||||
resultList.add(key);
|
||||
}
|
||||
});
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Match the characters you want to query.
|
||||
*
|
||||
* @param key
|
||||
* @param filters
|
||||
* @return
|
||||
*/
|
||||
private static boolean checkKey(String key, String filters) {
|
||||
if (key.indexOf(filters) > -1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
21
hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/monitor/DynamicThreadPoolMonitorExecutor.java → hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java
21
hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/monitor/DynamicThreadPoolMonitorExecutor.java → hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/monitor/ThreadPoolMonitorExecutor.java
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package cn.hippo4j.springboot.starter.config;
|
||||
|
||||
import cn.hippo4j.monitor.base.MonitorThreadPoolTypeEnum;
|
||||
import cn.hippo4j.monitor.base.MonitorTypeEnum;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* Thread pool monitoring properties.
|
||||
*/
|
||||
@Data
|
||||
public class MonitorProperties {
|
||||
|
||||
/**
|
||||
* Collect thread pool runtime indicators.
|
||||
*/
|
||||
private Boolean enable = Boolean.TRUE;
|
||||
|
||||
/**
|
||||
* Type of collection thread pool running data. eg: log,micrometer. Multiple can be used at the same time, default micrometer.
|
||||
*/
|
||||
private String collectTypes = MonitorTypeEnum.SERVER.toString().toLowerCase();
|
||||
|
||||
/**
|
||||
* Monitor the type of thread pool. eg: dynamic,web,adapter. Can be configured arbitrarily, default dynamic.
|
||||
*/
|
||||
private String threadPoolTypes = MonitorThreadPoolTypeEnum.DYNAMIC.toString().toLowerCase();
|
||||
|
||||
/**
|
||||
* Delay starting data acquisition task. unit: ms
|
||||
*/
|
||||
private Long initialDelay = 10000L;
|
||||
|
||||
/**
|
||||
* Collect interval. unit: ms
|
||||
*/
|
||||
private Long collectInterval = 5000L;
|
||||
|
||||
/**
|
||||
* Task buffer container capacity
|
||||
*/
|
||||
private Integer taskBufferSize = 4096;
|
||||
}
|
Loading…
Reference in new issue