ikki@github.io:~$

  • Mybatis自定义typehandler

    Mybatis自定义TypeHandler 背景 在关系型数据库中希望更灵活的管理一些仅仅展示的数据 未完全考虑全面的业务字段,需要随时拓展 这些数据没有关联关系,或不希望新建表维护少量的关联关系 不按套路写代码,也要优雅写代码 坑 自定义的TypeHandler 必须不是接口, 不是抽象类,有无参构造函数, 不能是匿名类 // mybatis-spring-boot-starter 2.0.1 if (hasLength(this.typeHandlersPackage)) { scanClasses(this.typeHandlersPackage, TypeHandler.class).stream() .filter(clazz -> !clazz.isInterface()) .filter(clazz -> !Modifier.isAbstract(clazz.getModifiers())) .filter(clazz -> ClassUtils.getConstructorIfAvailable(clazz) != null) .forEach(targetConfiguration.getTypeHandlerRegistry()::register); } // mybatis-spring-boot-starter 2.1.0 if (hasLength(this.typeHandlersPackage)) { scanClasses(this.typeHandlersPackage, TypeHandler.class).stream() .filter(clazz -> !clazz.isAnonymousClass()) .filter(clazz -> !clazz.isInterface()) .filter(clazz -> !Modifier.isAbstract(clazz.getModifiers())) .filter(clazz...

  • Disruptor cpu 问题

    Disruptor CPU 问题 起因 在某项目中使用了 disruptor 框架, maven如下 <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.4.2</version> </dependency> 在初始化RingBuffer 时,代码如下 disruptor = new Disruptor<>(eventFactory, ringBufferSize, (ThreadFactory) threadPoolExecutor, ProducerType.MULTI, new SleepingWaitStrategy()) 在开发环境下, 没有发现任何问题 在部署到测试环境Linux后, CPU 飙升到200% 排查 使用 ps -mp 查看jvm 进程下线程占用CPU 时间排序,找出线程号 # ps -mp 521 -o THREAD,tid,time | sort -rn | more PID USER...

  • Springboot下mongodb连接池

    SpringBoot下MongoDB 连接池设置 常见设置 ​ 通常情况下SpringBoot 使用MongoDB 是这么设置的 spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=test spring.data.mongodb.username=username spring.data.mongodb.password=password 如何使用连接池? ​ 同使用mysql 数据库配置连接池一样,如何设置MongoDB的连接池 我百度到的方法基本上是 自定义配置,手动实现一个Pool,去实现的,实现过程较为繁琐 正确的打开姿势 先看看mongoDB官方文档是怎么说的 在连接的URI后面有 Options 参数,其中包括Connection Pool Options Connection Option Description maxPoolSize The default value is 100 minPoolSize The default value is 0 maxIdleTimeMS This option is not supported by all drivers. waitQueueMultiple...