- 博客(12)
- 收藏
- 关注
转载 面试-高级
消息队列:1,为什么使用消息队列,消息队列有什么优点和缺点?https://mp.weixin.qq.com/s/-7SD1BfxUct7TgIjxPvDSg2,如何保证消息队列高可用,保证消息不被重复消费?https://mp.weixin.qq.com/s/-7SD1BfxUct7TgIjxPvDSg3,自己如何实现一个消息队列,实现的思路?https://www.jianshu.c...
2019-01-12 14:00:00 169
转载 缓存穿透,缓存击穿,缓存雪崩解决方案分析
前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决...
2018-07-11 08:54:00 186
转载 非常经典的一段死锁的代码
1,概念:在多线程环境中,我们经常会遇到多个线程访问同一个共享资源的情况,这个时候必须考虑如何维护数据一致性,常见的方式是加锁处理。只有拿到锁的线程才可以访问共享资源,通过锁就可以让线程对共享资源的访问都是顺序的,避免出现一些数据不一致的问题。在使用锁的过程中同样也有风险,最为常见的就是死锁现象。死锁就相当于绳子打死结一样,解不开了。在程序中出现这样的情况往往是由于多个线程同时锁...
2018-07-09 10:10:00 447
转载 RPC
https://www.imooc.com/article/29354,非常详细的一篇关于RPC框架thrift介绍以及整合SpringBoot转载于:https://www.cnblogs.com/webwangbao/p/9258796.html
2018-07-03 15:24:00 96
转载 SpringBoot整合RabbitMq
1,该笔记主要是记录自己学习Springboot整合RabbitMq过程,推荐一篇学习RabbitMq非常好的博客:http://blog.720ui.com/2017/rabbitmq_action_01_helloworld/2,RabbitMq简介:AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面...
2018-07-02 20:14:00 98
转载 前端参数统一校验工具类ValidParamUtils
1,前端参数不可信,对于后端开发人员来说应该是一条铁律,所以对于前端参数的校验,必不可少,而统一的前端参数校验工具,对我们进行参数校验起到事半功倍的效果2,统一参数校验工具ValidParamUtilspublic class ValidParamUtils { public static void validInputParams(BindingResult ...
2018-07-02 15:56:00 219
转载 高性能分布式锁-redisson的使用
1,概述:在一些高并发的场景中,比如秒杀,抢票,抢购这些场景,都存在对核心资源,商品库存的争夺,控制不好,库存数量可能被减少到负数,出现超卖的情况,或者 产生唯一的一个递增ID,由于web应用部署在多个机器上,简单的同步加锁是无法实现的,给数据库加锁的话,对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。那相对而言,redis的分布式锁,相对而言,是个很好的选择,...
2018-06-30 15:37:00 101
转载 guava的限流工具RateLimiter使用
guava限流工具使用非常详细的一篇使用博客:https://www.cnblogs.com/yeyinfu/p/7316972.html1,原理:Guava RateLimiter基于令牌桶算法,我们只需要告诉RateLimiter系统限制的QPS是多少,那么RateLimiter将以这个速度往桶里面放入令牌,然后请求的时候,通过tryAcquire()方法向RateLimit...
2018-06-29 13:04:00 185
转载 使用Spring的AOP实现切面日志
AOP切面日志的使用方式@Aspect@Componentpublic class HttpAspect { private static final Logger logger = LoggerFactory.getLogger(HttpAspect.class); //定义切点 @Pointcut("execution(public ...
2018-06-26 17:31:00 111
转载 Spring框架中stopwatch(秒表)
StopWatch对应的中文名称为秒表,经常我们对一段代码耗时检测的代码如下:long startTime = System.currentTimeMillis();// 你的业务代码long endTime = System.currentTimeMillis();long costTime = endTime -startTime;System.err.print...
2018-06-26 16:00:00 326
转载 guava的重试机制guava-retrying使用
1,添加maven依赖<dependency> <groupId>com.github.rholder</groupId> <artifactId>guava-retrying</artifactId> <version>2.0.0</version>...
2018-06-26 14:37:00 492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人