摘要:
Typora 如何使用阿里云作为图床 一:购买阿里云的OSS服务 1):阿里云购买一年40G的OSS服务。 作为图床,40G够用了。 2):创建Bucket 3):创建访问密钥 Keyld一定要复制文本中,keySecret一定要复制文本中 二:下载,配置pinggo 1):下载pinggo,下载地 阅读全文
摘要:
线程池监控 线程池在开发中比较常见的功能,但是线程池监控也是非常有必要的。让我们随时知道线程池的吞吐量,及时调整配置,让系统性能达到最优化。 线程池的监控指标 我们经常创建线程池都是通过如下的方式进行; ThreadPoolExecutor threadPool = new Thread 阅读全文
摘要:
索引布尔表达式 问题背景 广告推荐引擎中,广告主会对广告投放做一下定向要求(比如:性别,年龄,城市等),这就需要通过用户画像特征从广告库里面检索出符合定向要求的广告。 当广告数量少的时候,我们可以迭代每个广告做比对。 Attributes = list<Attribute> // 用户的流量 阅读全文
摘要:
spring的拓展点之-InitializingBean 一:有什么用 InitializingBean是spring提供的一个初始我们bean熟悉的方法,我们可以直接看看源码注释。 我们看这个接口上的注释大概意思就是: 当我们需要初始化我们bean中的一些参数,或者校验一些参数的时候的时候就可以通 阅读全文
摘要:
kafka特性和集群 一: kafka特性介绍 Topic 让我们首先深入了解下Kafka的核心概念:提供一串流式的记录 Topic 就是数据主题,是数据记录发布的地方,可以用来区分业务系统。Kafka中的Topics是多订阅者模式,一个topic可以拥有一个或者多个消费者来订阅它的数据。 对于每一 阅读全文
摘要:
LRU算法 简介 LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的数据予以淘汰。 很多缓存中采用这种算法。 一:LinkHashMap实现LRU算法 LinkedHashMap 会对数据使用来排序,这样服务LRU算法的最少使 阅读全文
摘要:
Springboot启动tomcat原理 一:思考 记得以前SSM项目时候,需要把项目打包到tomcat的webApps目录下。然后启动tomcat。 现在springboot项目直接打包成jar宝就可以启动tomcat了。Springboot为了实现这个功能做了那些操作,和设计呢? 二:源码探 阅读全文
摘要:
zookeeper实现分布式锁 一:zookeeper分布式锁原理 1:原子性 Zookeeper有写操作有原子性,利用这个特性可以实现分布式锁。 对于来自客户端的每个更新请求,ZooKeeper 具备严格的顺序访问控制能力。 为了保证事务的顺序一致性,ZooKeeper 采用了递增的事务 id 号 阅读全文
摘要:
Redis集群策略分析 一:主从模式 结构图 特点 1:主负责写,从负责读。这种方式的话应对比较大的QPS,QPS增大只需要增加slave节点数量就可以了。 2:无法保证强一致性,主从同步存在延迟,只能保证最终的一致性。 3:master宕机的情况下,无法写入,没有办法自动恢复。 二:哨兵模式 结构 阅读全文
摘要:
从源码看公平锁和非公平锁得区别 一:理论解释 公平锁:ReentrantLock通过构造器参数设置为true就是公平锁。 非公平锁:synchronized 关键字,ReentrantLock默认就是非公平锁。 公平锁:多个线程按照申请锁的顺序去获得锁,线程会直接进入队列去排队,永远都是队列的第一位 阅读全文