摘要:
方案前提 ID获取的大前提至少做到单表有序 1、单机本地方案 架构图 原理:利用更新数据库字段方式实现 ID增长与持久化 实现: 1、建表t_id_provider, 包含字段 max_id(当前最大ID值) upd_time(最后一次更新时间) 2、IdService获取id集合使用本地锁,先从数 阅读全文
摘要:
概念 BlockingQueue 翻译成中文阻塞队列,顾名思义就是线程使用队列时会阻塞当前线程; BlockingQueue 继承了Collection,具有一般集合所具有的数据存取功能 BlockingQueue 是线程安全的队列,多线程访问时不会出现同一个数据集中的数据被多次取出,或者覆盖存放的 阅读全文
摘要:
WEB注解 @Controller 类/接口上标注,注册一个web请求 源码: @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Contr 阅读全文
摘要:
1、设计模式 基于观察者模式,主要方法为1 监听者注册 2 监听者注销 3 执行监听方法 2、使用篇 类结构图 MsgEvent:事件对象 MsgListener:事件监听 MsgListener2:事件监听(使用注解方式实现) MsgPublisher:事件发布器 SpringEventTest: 阅读全文
摘要:
基于Jdk8日期工具 基本能覆盖日常开发所需日期处理 package com.xx.dubbo.dubboservice.utils; import java.time.*; import java.time.format.DateTimeFormatter; import java.time.te 阅读全文
摘要:
代码示例: public static boolean acquire(RedissonClient redisson, String lockKey, Long waitTime, Long leaseTime) { // 实例化锁对象(此时未请求redis) RLock lock = redis 阅读全文
摘要:
Jdk动态代理 只有接口无实现类动态代理: 参考Mybatis中MapperProxy类, 用于动态代理Mapper接口 public class Test { //需要动态代理的接口类 interface DaynamicInteface { int getInt(); String getStr 阅读全文
摘要:
使用分析 四种读写情况:读读 读写 写读 写写, 接下来分四种情况看最终结果 情况一:读读使用 public static void main(String[] args) throws InterruptedException { ReentrantReadWriteLock readWriteL 阅读全文
摘要:
用途: ScheduledThreadPoolExecutor(计划任务线程池)主要用于执行一些需要延时操作或者需要重复操作的任务, Spring框架自带计划任务功能 场景一: 延时操作, 提供给客户统计数据功能, 如果高峰执行肯定影响系统运行效率,那么规定只有下午四点以后才能执行统计, 那么就需要 阅读全文
摘要:
用途: 用于自动化管理线程, 开发人员只需要关注业务实现, 无需关注线程的管理, 降低开发要求 方法解释: Executor //执行任务(若执行线程有任务 则进入任务队列等待工作线程拉取) 无返回值 void execute(Runnable command); ExecutorService / 阅读全文