- 博客(15)
- 收藏
- 关注
原创 CompletableFuture的使用介绍, CompletableFuture与FutureTask的区别
CompletableFuture实现了CompletionStage接口和Future接口,前者是对后者的一个扩展,增加了异步回调、流式处理、多个Future组合处理的能力,使Java在处理多任务的协同工作时更加顺畅便利。 总的来说简洁了FutureTask与线程池的配合使用 没啥太大区别吧我觉得, 使用方法不一样, 多了一些方法...futureTask 创建异步任务 FutureTask<String> str...
2021-07-31 09:37:30 1650
原创 并发编程三要素
原子性:不可分割的操作,要么都成功要么都失败有序性:程序执行的顺序和代码的顺序保持一致可见性:一个线程对共享变量进行修改,另外的线程能立马看到
2021-07-28 18:37:18 563
原创 windows Docker (error getsockopt: connection refused ,使用http无法使用 docker login 登录的问题)
windows 下修改要推的地址
2021-07-28 15:49:39 460
原创 多线程插入数据开启事务,要么都成功要么都失败,PlatformTransactionManager 管理事务
spring为我们提供了事务相关的接口,PlatformTransactionManagerpublic interface PlatformTransactionManager extends TransactionManager { // 获取当前活动的事务或创建一个新事务 TransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws Transactio..
2021-07-27 21:29:34 1316
原创 ClassUtils常用方法总结
获取包名getPackageName(Class<?> cls)@Testpublic void testGetPackageName(){ //获取包名 String packName = ClassUtils.getPackageName(String.class); System.out.println(packName); // = java.lang String packName2 = ClassUtils.getPackage
2021-07-26 08:37:25 567
原创 MySQLTransactionRollbackException: Deadlock found when trying to get lock
出现问题的场景: 多线程大批量插入(涉及到唯一索引, 没有插入 有则更新)锁争抢问题https://bugs.mysql.com/bug.php?id=77209解决方法有两种:添加test_id+group_id的组合索引,这样就可以避免掉index merge; 将优化器的index merge优化关闭; 加锁...
2021-07-24 12:26:07 1284 1
原创 实现拦截器HandlerInterceptor发生 Stream closed异常 处理参数 放行 而接口接受参数为null
改为filter@Componentpublic class CenterFilter implements Filter { @Value("${aicenter.key}") private String openCenterSecret; @Autowired private SignUtil signUtil; @Override public void doFilter(ServletRequest request, ServletR.
2021-07-23 10:09:45 634
原创 java 处理高并发接口 造成数据库长连接问题 自定义队列
把之前写的队列抽出来了, 这样有其他同事也有类似的场景就可以直接使用啦, 使用方法也很简单 , 直接继承就可以/** * 统一处理数据的队列 * 指定队列最大值. 当队列到达最大值时 执行execute方法, 若l分钟还没到达队列最大值也执行execute * * @param <L> */@Datapublic class UnifyStoreQueue<L> { // listener执行次数 计数器 private sta...
2021-07-16 15:43:08 622
原创 java 自定义队列 队列达到指定的容量执行方法 或者指定时间内未到达指定容量也执行
在高并发的场景下, 频繁的插入造成数据库长连接问题, 考虑的解决方案为, 定义一个队列, 当数据请求时,先把数据加载到队列中, 若到达指定的容量开多线程统一执行插入数据库操作, 若在指定的时间内, 队列未能达到指定的容量也执行, 避免一直不保存.直接上代码@Componentpublic class EventStoreQueue { // 线程数 private static final int numberOfConcurrentThreads = ...
2021-07-15 14:43:51 1363 1
原创 zuul Caused by: java.lang.NoSuchMethodError: org.springframework.boot.web.servlet.error.ErrorControl
springboot与springcloud版本冲突导致, 已解决,以下两个版本可以 <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> <relativePath/>
2021-07-14 11:37:53 2635 1
原创 微服务项目搭建
接下来的时间, 我会利用空闲时间敲一个二手商城项目,小程序方向,主要为了熟悉一下微服务项目的流程,包括前期的项目设计与项目发布主要技术栈:springboot、springCloud、redis、rabbitmq、mysql、nginx、vue+elementui、微信小程序。。。夫依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId&g.
2021-07-13 22:13:58 291 1
原创 自定义注解 通过token获取用户ID
@Target(ElementType.PARAMETER)@Retention(RetentionPolicy.RUNTIME)public @interface LoginUserId {}@Componentpublic class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { @Autowired private CommUserUtil com..
2021-07-12 15:50:01 2065
原创 springboot整合redis实现发布订阅
虽然redis也能实现发布订阅, 但术业有专攻, 发布订阅还是要使用mq中间件!虽然redis实现了发布订阅(publish/subscribe)的功能,但是在通常的情况下是不推荐使用的,如果想使用消息队列这种功能,最好还是使用专业的各种MQ中间件,例如rabbitMQ,rockedMQ,activitedMQ等,本文主要讲一下不推荐使用redis的发布订阅功能的原因 第一个原因是和redis系统的稳定性有关。对于旧版的redis来说,如果一个客户端订阅了某个或者某些频道,但是它读取消...
2021-07-10 10:24:52 1574
原创 高并发处理之限流方案 RateLimiter以及阿里Sentinel
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流缓存 缓存的目的是提升系统访问速度和增大系统处理容量 (本地, redis) 降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开 (hystrix) 限流 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理 (令牌桶算法)令牌桶酸防简介令牌桶算法原理如下:用户请求必须拿到令牌才代表消...
2021-07-09 16:54:34 1531
原创 java Function获取实体类字段名称
在使用LambdaQueryWrapper的时候, 使用Function的形式传递参数比较好用优雅而且不会写错, .eq(User::getAge), 正在又碰上自己要写个工具类, 就想到了也用这种形式传递参数首先看一下mybatis-plus是如何实现的大体就是利用反序列化的形式结合SerializedLambda进行获取, 尝试自己写一下首先要定一个序列化的Functionpublic interface SFunction<T, R> extends...
2021-07-07 12:11:09 1344 1
空空如也
软键盘调用系统的输入法
2023-09-22
vue如何模拟软键盘使用系统的输入法打字
2023-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人