一、处理线程池内的线程的异常
public static void main(String[] args) {
ExecutorService executorService= Executors.newFixedThreadPool(1);
// 1
Future<?> future = executorService.submit(new Task());
圈的尽头是另一个起点
public static void main(String[] args) {
ExecutorService executorService= Executors.newFixedThreadPool(1);
// 1
Future<?> future = executorService.submit(new Task());
java spi:
学习了解一下ABAC, 探讨与RBAC的优劣
基于角色的访问控制(RBAC: Role-Based Access Control)。就是基于用户(user)的角色(role),以及其角色关联的权限(permission)、资源(resource)等,去做相应的访问控制,是目前应用最广泛的,也最容易实现的访问控制模型。
user---(n:m)---role----(m:p)---permission
ThreadLocal大家都知道是线程内部传递变量的、一般用在用户信息传递,traceId传递、数据库事务控制等功能的实现上。
使用起来非常简单
// 新建ThreadLocal
var threadLocal = new ThreadLocal<String>();
// 可以在当前业务线程生命周期运行的各个位置运行get、set方法存取值
public class WatchServiceDemo {
public static void main(String[] args) throws Exception {
//目录
var baseDir = "...";
//文件
var target_file = "...";
//构造监听服务
参考: https://help.aliyun.com/document_detail/41334.html
例如,echo 0 > /proc/sys/net/ipv4/tcp_synack_retries)
testImplementation 'org.mockito:mockito-junit-jupiter:4.6.1'
testImplementation "org.apache.flink:flink-test-utils:${flinkVersion}"
testImplementation "org.apache.flink:flink-test-utils-junit:${flinkVersion}"
参考
用filter分流有filter算子重复计算的问题,于是乎就想到了用旁路输出分流日志,设计效果如下:
// kafka topic中读取的事件流
DataStream<String> stream = ...;
// TopicStreamHolder持有stream,并通过XXXFunction将不同的事件分流
var topicHolder = new TopicStreamHolder<>(stream, new XXXFunction());
func initPrometheus(r *gin.Engine) {
defer func() {
if err := recover(); err != nil {
utils.Log4file.WithFields(logrus.Fields{}).Error(err)
}
}()
p := gp.NewPrometheus("gin")