摘要:
1 接口提供方,在header中添加clientId,用于标识调用方来源 2 接口提供方,请求参数body中添加公共参数:nonce随机值,可以用来防重,比如访问过一次,下次直接拦截、timestamp用来进行请求时间的校验,比如超过30秒的请求直接拦截,sign: 加密串 3 对body,进行加密 阅读全文
摘要:
转自 https://lvwenhan.com/tech-epic/506.html 内存缓存 Buffer Pool Buffer Pool 是在 MySQL 启动的时候,向操作系统申请的一片连续的内存空间,默认为 128MB,强烈建议任何一台 MySQL 服务器都根据自己的机器资源情况,增大配置 阅读全文
摘要:
创建线程池时, setWaitForTasksToCompleteOnShutdown setAwaitTerminationSeconds // 将ThreadPoolTaskExecutor实例交给Spring管理 @Bean public ThreadPoolTaskExecutor thre 阅读全文
摘要:
依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>transmittable-thread-local</artifactId> </dependency> 使用 public class AsyncThreadPoolConfig 阅读全文
摘要:
@Autowiredprivate RequestMappingHandlerMapping requestMappingHandlerMapping;@Autowiredprivate ApplicationContext applicationContext;@Autowiredprivate 阅读全文
摘要:
package com.example.demo.controller; import org.springframework.web.bind.annotation.*; /** * @Classname AController * @Description * @Date 2021/7/2 14 阅读全文
摘要:
public static void main1(String[] args) throws ExecutionException, InterruptedException { System.out.println("开始"); //异步编排1 无返回值runAsync() Completable 阅读全文
摘要:
/** * corePoolSize 保留在池中的线程数 即使处于空闲状态 除非设置了allowCoreThreadTimeOut * * maximumPoolSize *池中允许的最大线程数 * * keepalivueTime 存活时间 如果当前线程大于core的数量 * 释放空闲的线程 ma 阅读全文
摘要:
第一种方法:在要执行的方法加上 @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT)第二种方法: TransactionSynchronizationManager.registerSynchronization(new 阅读全文
摘要:
缓存穿透 问题描述 key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源.比如用一个不存在的用户id,获取用户信息,无论是数据库或缓存都没有,若黑客利用此漏洞进行攻击可能压垮数据库. 解决方案 对空值进行缓存,如果一个查询返回的数据为空,我们 阅读全文