类 TopnCounterMetricsContainer
- java.lang.Object
-
- com.alibaba.nacos.common.utils.TopnCounterMetricsContainer
-
public class TopnCounterMetricsContainer extends java.lang.Objectcontainer for top n counter metrics, increment and remove cost O(1) time.- 作者:
- liuyixiao
-
-
嵌套类概要
嵌套类 修饰符和类型 类 说明 private classTopnCounterMetricsContainer.DoublyLinkedNode
-
字段概要
字段 修饰符和类型 字段 说明 private java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.atomic.AtomicInteger>dataCountdataId -> count.private TopnCounterMetricsContainer.DoublyLinkedNodedummyHeadprivate java.util.concurrent.ConcurrentHashMap<java.lang.Integer,TopnCounterMetricsContainer.DoublyLinkedNode>specifiedCountDataIdSetscount -> node.
-
构造器概要
构造器 构造器 说明 TopnCounterMetricsContainer()
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 intget(java.lang.String dataId)get data count by dataId.java.util.List<Pair<java.lang.String,java.util.concurrent.atomic.AtomicInteger>>getTopNCounter(int n)voidincrement(java.lang.String dataId)increment the count of dataId.private voidinsertIntoSpecifiedCountDataIdSets(java.lang.String dataId, int count)private voidinsertIntoSpecifiedCountDataIdSets(java.lang.String dataId, TopnCounterMetricsContainer.DoublyLinkedNode targetSet)private booleanisDummyHead(TopnCounterMetricsContainer.DoublyLinkedNode node)voidput(java.lang.String dataId)put(String dataId, 0).voidput(java.lang.String dataId, int count)put new data into container, if already exist, update it.java.util.concurrent.atomic.AtomicIntegerremove(java.lang.String dataId)remove data.voidremoveAll()remove all data.private TopnCounterMetricsContainer.DoublyLinkedNoderemoveFromSpecifiedCountDataIdSets(java.lang.String dataId)
-
-
-
字段详细资料
-
dataCount
private java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.concurrent.atomic.AtomicInteger> dataCount
dataId -> count.
-
specifiedCountDataIdSets
private java.util.concurrent.ConcurrentHashMap<java.lang.Integer,TopnCounterMetricsContainer.DoublyLinkedNode> specifiedCountDataIdSets
count -> node.
-
dummyHead
private TopnCounterMetricsContainer.DoublyLinkedNode dummyHead
-
-
方法详细资料
-
getTopNCounter
public java.util.List<Pair<java.lang.String,java.util.concurrent.atomic.AtomicInteger>> getTopNCounter(int n)
-
put
public void put(java.lang.String dataId)
put(String dataId, 0).- 参数:
dataId- data name or data key.
-
put
public void put(java.lang.String dataId, int count)put new data into container, if already exist, update it. this method could be slow (O(N)), most time use increment.- 参数:
dataId- data name or data key.count- data count.
-
get
public int get(java.lang.String dataId)
get data count by dataId.- 参数:
dataId- data name or data key.- 返回:
- data count or -1 if not exist.
-
increment
public void increment(java.lang.String dataId)
increment the count of dataId.- 参数:
dataId- data name or data key.
-
remove
public java.util.concurrent.atomic.AtomicInteger remove(java.lang.String dataId)
remove data.- 参数:
dataId- data name or data key.- 返回:
- data count or null if data is not exist.
-
removeAll
public void removeAll()
remove all data.
-
removeFromSpecifiedCountDataIdSets
private TopnCounterMetricsContainer.DoublyLinkedNode removeFromSpecifiedCountDataIdSets(java.lang.String dataId)
-
insertIntoSpecifiedCountDataIdSets
private void insertIntoSpecifiedCountDataIdSets(java.lang.String dataId, int count)
-
insertIntoSpecifiedCountDataIdSets
private void insertIntoSpecifiedCountDataIdSets(java.lang.String dataId, TopnCounterMetricsContainer.DoublyLinkedNode targetSet)
-
isDummyHead
private boolean isDummyHead(TopnCounterMetricsContainer.DoublyLinkedNode node)
-
-