一、Sentinel是阿里开源产品,用于流量监控和管理。
二、对于流量控制,可以通过限制线程数和QPS实现限流
1. 资源进入Sentinel的方式
Entry entry= null;try{
entry=SphU.entry(resourceName, entryType);
Object result=pjp.proceed();returnresult;
}catch(BlockException ex) {}catch(Throwable ex) {}finally{if (entry != null) {
entry.exit();
}
}
Entry对象负责进入和退出的管理,进入后增加线程计数及访问记录,退出后减少线程计数及访问记录。
2. Sentinel是通过一组ProcessorSlot链组成ProcessorSlotChain来责任调用。
publicProcessorSlotChain build() {
ProcessorSlotChain chain= newDefaultProcessorSlotChain();
chain.addLast(newNodeSelectorSlot());
chain.addLast(newClusterBuilderSlot());
chain.addLast(newLogSlot());
chain.addLast(newStatisticSlot());
chain.addLast(newSystemSlot());
chain.addLast(newAuthoritySlot());
chain.addLast(newFlowSlot