限流的几种方法:
1、计数器限流。比如数据库连接池大小、线程池大小、接口访问并发数。
2、漏桶算法。水比作请求,漏桶比作系统处理的能力极限,控制水流出的速度(请求超过漏桶容量直接拒绝)。
3、令牌桶算法。系统维护一个令牌桶token,请求被处理需要获得令牌,没有则拒绝。基于google的guava实现。
@Slf4j --- org.projectlombok--lombok (简单的说,就是使用了 Java 非公开的 API,在 javac 编译代码时,通过强类型转换获取JavacAnnotationProcessor
对象,再从JavacAnnotationProcessor
的方法里面拿到抽象语法树(AST)做强制修改,注入get、set
等方法。)
这里插入日志历史:
从system.out到JUL(java.until.logging从JDK1.4开始提供),发现这个难用大佬搞了个log4j,这玩意有漏洞1.2就放弃维护了,搞了个log4j2,再后来又搞了个性能更好的logback。
// 使用log4j,需要log4j.jar
import org.apache.log4j.Logger;
Logger logger_log4j = Logger.getLogger(Test.class);
logger_log4j.info("Hello World!");
// 使用log4j2,需要log4j-api.jar、log4j-core.jar
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
Logger logger_log4j2 = LogManager.getLogger(Test.class);
logger_log4j2.info("Hello World!");
// logback,需要logback-classic.jar、logback-core.jar
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
Logger logger_logback = new LoggerContext().getLogger(Test.class);
logger_logback.info("Hello World!");
// java.until.logging,简称jul
import java.util.logging.Logger;
Logger logger_jul = Logger.getLogger("java.Test");
--》Apache Commons Logging--》Slf4j