hero image

Haya

圈的尽头是另一个起点

线程池与异常

一、处理线程池内的线程的异常

public static void main(String[] args) {
        ExecutorService executorService= Executors.newFixedThreadPool(1);
        // 1
        Future<?> future =  executorService.submit(new Task());

  • java
  • 线程池
Dubbo SPI

一、Dubbo SPI与Java SPI的不同

java spi: 跳转

  • Dubbo SPI配置文件的目录是在/META-INF/dubbo、/META-INF/dubbo/internal/ 下,Java SPI则在/META-INF/services/
  • Dubbo SPI配置文件中每一行写的是kv结构(扩展名=全类名),Java SPI则是全类名

  • java
  • dubbo
  • spi
权限控制RBAC、ABAC

学习了解一下ABAC, 探讨与RBAC的优劣

一、什么是RBAC

基于角色的访问控制(RBAC: Role-Based Access Control)。就是基于用户(user)的角色(role),以及其角色关联的权限(permission)、资源(resource)等,去做相应的访问控制,是目前应用最广泛的,也最容易实现的访问控制模型。

user---(n:m)---role----(m:p)---permission

  • java
  • 权限控制
  • RBAC
  • ABAC
各种ThreadLocal

一、ThreadLocal

ThreadLocal大家都知道是线程内部传递变量的、一般用在用户信息传递,traceId传递、数据库事务控制等功能的实现上。

使用起来非常简单

// 新建ThreadLocal
var threadLocal = new ThreadLocal<String>();
// 可以在当前业务线程生命周期运行的各个位置运行get、set方法存取值

  • java
  • 线程
  • threadlocal
Java监听文件变化
public class WatchServiceDemo {
    public static void main(String[] args) throws Exception {
        //目录
        var baseDir = "...";
        //文件
        var target_file = "...";
        //构造监听服务

  • java
  • WatchService
单元测试

一、添加测试时的依赖

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}"

  • java
  • flink
  • 单元测试
装饰器模式

参考封装旁路输出操作去分流kafka消息


  • java
  • 设计模式
  • 装饰器模式
封装旁路输出操作去分流kafka消息

一、实现效果

用filter分流有filter算子重复计算的问题,于是乎就想到了用旁路输出分流日志,设计效果如下:

// kafka topic中读取的事件流
DataStream<String> stream = ...;
// TopicStreamHolder持有stream,并通过XXXFunction将不同的事件分流
var topicHolder = new TopicStreamHolder<>(stream, new XXXFunction());

  • java
  • flink
  • 旁路输出
gin集成prometheus

一、init

func initPrometheus(r *gin.Engine) {
	defer func() {
		if err := recover(); err != nil {
			utils.Log4file.WithFields(logrus.Fields{}).Error(err)
		}
	}()
	p := gp.NewPrometheus("gin")

  • golang
  • gin
  • Prometheus
2
3
4
5
...
12