- 博客(17)
- 收藏
- 关注
原创 个人感悟
哈喽,我是CC。工作这么久突然有很多感悟和想法,想想自己从一开始畏惧计算机到现在的喜欢,心里有太多的感慨,其中滋味可以用跌宕起伏,峰回路转来形容。今天有时间坐下来好好回顾自己这一路走来的成长、遇到的坑、对未来的彷徨和期望。希望自己不断的记录自己心路历程,到老时也可以回头看看。...
2020-06-20 18:48:56 357
原创 Redis雪崩、穿透、击穿分析
总结以上三个问题,明白了几个问题含义,发现缓存不可用时的影响。所提出的方案也没有最完美的,需要相互配合一块使用。系统开发设计之初,可以在一些关键节点增加降级熔断方案,保证服务稳定。同理整个系统架构中其他环节也会出现各种问题,而各个环节存在直接或间接的依赖,进而会出现连锁反应,处理问题时就得把握好这个”平衡“。大家在处理问题时要考虑好,做事情也要想好备选方案以备不时之需。
2024-03-30 18:09:26 747
原创 sentinel初次剖析
1. 阿里sentinel源码研究深入1.1. 前言之前使用了一次sentinel,已经可以初步使用它的限流和降级功能,对于其中的原理比较好奇,因此想花时间研究并记录下来,备忘1.2. 源码1.2.1. 流控降级监控等的构建首先客户端而言,我关注的是我写的代码SphU.entry,这明显是很关键的方法,下图的内容就是这里构建的-Sentinel工作主流程就包含在上面一个...
2019-12-23 08:28:06 356
原创 sentinel实现秒杀活动
秒杀活动延伸-sentinel一、背景二、sentinel是什么三、sentinel怎么用1、引入核心库2、定义资源3、控制台4、规则4.1 流控规则4.2 降级规则5、回归秒杀活动四、sentinel原理简单剖析五、总结一、背景之前在博客中写过秒杀活动开发过程细节,之后用数据库锁简单实现了一次,今天再给大家介绍一个工具Sentinel。二、sentinel是什么Sentinel中文含义是...
2019-11-03 22:51:26 1326
原创 数据库锁实现秒杀活动
在没有使用缓存技术前,怎么处理高并发?在没有众多消息中间件或高级工具前,怎么处理?之前本人将工作中参加的秒杀活动实践过程写成一篇文章供大家参考。文章描述的实现过程是通过redis分布式锁实现的,利用了redisson的原子类RAtomicLong,在缓存中操作库存,从而满足数据一致性和高并发的场景要求。实践下来缓存的方便之处不言而喻。文章地址:一次秒杀活动https://blog....
2019-09-16 08:55:53 714
原创 redis分布式锁实现秒杀活动
最近,参与和负责公司的一次秒杀活动的设计开发,收获颇多,与大家分享。其实大家在生活中或见过或参见过秒杀活动,用户以极低的成本获得高价值的商品,所以也导致活动期间出现拥挤现象,进而导致一些高并发问题,所谓每一次的秒杀活动都是考研公司技术架构的时刻,可真是一点不假。下面就以公司的此次活动为例,介绍下整个秒杀活动从无到有的过程。秒杀活动期间原价为三位数的商品,只需一元,且该热点商品有...
2019-08-13 22:25:30 905 1
转载 Dubbo 服务暴露
本篇文章主要是阅读了dubbo官方文档:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html关于服务的暴露和引用,感觉很多细节还不是十分清楚,所以决定从自己手上的项目看起,然后一步步探究其中的实现,顺便记...
2019-06-03 10:28:28 380
原创 数据库的使用点滴
本篇博客包含IT各个行业中用到的不同种类数据库(拓展视野),个人常用数据库的命令、优化、记录、问题总结,仅供个人使用mysql explain 介绍:很基础详细(*)https://blog.csdn.net/why15732625998/article/details/80388236...
2019-03-14 17:20:16 33 1
原创 缓存
缓存1、缓存目的是减少db压力,提高数据访问速度,降低服务相应时间,给用户良好的体验。2、缓存工具:readis、memcached3、缓存监测工具:zabbix、MemAdmin、Redis-star4、配置策略配置策略需要考虑以下维度:业务场景、时效性、粒度、容量、命中率(1)业务场景某业务访问量高,或一个读多写少,或并发高的业务可以使用缓存策略。如借贷类APP,从...
2018-12-21 14:30:12 226
原创 线程池(三)
线程池(三)主要介绍线程池如何根据不同的场景配置,及简单的使用示例。如有不正确之处,请斧正,谢谢!一、配置场景线程池初始化参数:corePoolSize,maxMumPoolSize,keepAlivetime,TimeUnit,ThreadFactory,BlockingQueue,RejectedExecutorHandler。参数不同会产生不同的效果,示例:任务队列(queue)设置...
2018-12-20 17:11:21 182
原创 线程池(二)
线程池介绍1、常用线程池 官方建议使用Executors工厂方法提供的线程池。newFixedThreadPool、newSingleThreadExecutor、newCachedThreadPool、newSingleThreadScheduledExecutor、newScheduledThreadPool。以上线程池覆盖大部分场景,如果因业务需求,需详细配置可以继续阅读...
2018-12-20 17:11:09 392 1
原创 线程池(一)
一、背景 多线程带来的好处不言而喻,但是使用不当,也是麻烦多多。每个线程从创建到销毁,整个生命周期需要使用多类硬件资源,若频繁创建线程反而会消耗很多硬件资源,得不偿失。当执行大量任务时,将在线程创建,销毁,任务切换额外消耗大量的资源。线程池的出现解决了这类问题,线程创建后即使执行完任务仍可以继续执行其它任务,减少了每个任务调用的开销,在执行大量异步任务时提供增强的性能,并且还可以提...
2018-12-19 18:15:26 185 1
原创 导出sql查询结果
需要将统计数据以表格或其他形式产出1、命令行使用mysql command line、xshell等工具统计数据后导出方式可以使用mysql提供的命令行。示例:mysql -h host -u user -p passwd -D dbname -e "target-sql" > target_dir/filenametarget-sql为统计数据使用的sql语句。将语...
2018-11-15 17:45:54 6763 2
原创 linux 命令
Linux 命令学习方法: Linux命令一般是命令英文名称的简写(不一定是各个单词的首字母,如ps(查看进程):report a snapshot of the current processes。mv(移动/重命名):move (rename) files)。网络上各位分享的已经很好了,学习命令还是建议以官方文档为准。 使用介绍:<command>...
2018-10-22 17:37:05 374
原创 工作中开发小思路
工作中写的代码思路(均为伪代码,仅参考思路):1、根据ASCALL码获取大小写字母 97~122(十进制) a~z for(int i=97;i<123;i++){ // output a~z System.out.println((char)i);} 65~90(十进制) ...
2018-09-27 11:06:02 261
原创 mysql 手册 5.7(英文)、5.1(中文)分享
最近,写sql比较多,然后很多命令需要参考文档。网上虽然有很多声称是“mysql手册终极版”,但不全,而且有些是错的。建议还是参考官方文档。特地将mysql的官方手册分享给各位IT GUY。(百度云:https://pan.baidu.com/s/1o94Sikq)同时分享若干参考:官方文档:https://dev.mysql.com/doc/refman/5.7/en/W3C:http://ww...
2018-02-09 14:03:12 1933 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人