09 2021 档案
摘要:一、Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去。 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据。所以适合做冷备份。 RDB对redis的读写影响非常小,因为redis主进程只需要fork一个子进程进行磁盘IO操作就行了
阅读全文
摘要:简易的redis分布式锁 加锁: set key my_random_value NX PX 30000 这个命令比setnx好,因为可以同时设置过期时间。不设置过期时间,应用挂了,解不了锁,就一直锁住了。 解锁: if redis.call("get",KEYS[1])==ARGV[1] then
阅读全文
摘要:ThreadLocal基础部分 ThreadLoal的作用 保存线程的独立变量,即每个线程维护一份。这种变量在线程的生命周期内起作用,减少同一个线程内多个函数之间公共变量传递麻烦。 使用场景 需要给不同的线程保存不同的信息时。 基础使用 public class TestThreadLocal {
阅读全文
摘要:从入门到瓶颈(文末附学习脑图) 首先,先自我介绍一下,楼主94年的,四川人,普通大专毕业。 第一阶段 实习阶段 2015年,实习阶段去浙江温州(没错,就是皮革厂的那个地方)找了份软件实施的工作实习。大概的工作内容是去给经销商进行ERP实施培训,OA系统维护等等。每天住在厂里,朝九晚五,也不用加班,不
阅读全文
摘要:一、从Spring到SpringBoot 随着Spring的生态体系越来越壮大,Spring也变得越来越复杂,越来越臃肿。比如你想基于一套SSM的框架进行开发,那么你需要配置很多的东西,整合很多的东西。 因此Spring Boot应运而生。那么他基于什么变得简单呢? 就是:约定大于配置 什么是Spr
阅读全文
摘要:一、Rabbitmq 二、RocketMQ 与kafka的区别: 纯java开发,不用zk 支持延迟投递,消息溯源等 多个队列使用一个日志文件,所以不存在kafka过多topic之后慢的问题 三、Pulsar Pulsar 是一个用于服务器到服务器的消息系统,具有多租户、高性能等优势。 Pulsar
阅读全文
摘要:一、 Lock 锁 java.util.concurrent.locks.Lock 为什么有了synchronized,还需要Lock呢? 使用方式更灵活 性能开销小 1.1 ReentrantLock 简单示例: public class TestLock { private Lock lock=
阅读全文
摘要:秒杀的本质 业务上:一场促销营销的活动 技术上:一种主动的DDos攻击,具备技术的不确定性和复杂度。 技术上对于秒杀有哪些优化方法呢? 丢弃订单 最早期,量太大扛不住,直接前端随机reject一些请求,返回抢单失败。简单有效 2. 优化吞吐 活动前期,提前准备一大批机器,服务化、分库分表搞定后端性能
阅读全文
摘要:写在前面 想想为什么要做重构? 如果没有能说出来的理由,建议不要轻易重构。 机票系统A的现状 A系统的背景 业务上:从杭州挪到北京,作为重新孵化项目,想要做大做强。行业竞争压力非常大,做不出成绩,项目就会被毙。 技术上:遗留的老系统,在一个其他系统基础上改出来的单体,换手了四次团队,找不到一个了解这
阅读全文
摘要:一、部署kafka集群 启动zookeeper服务: zkServer.sh start 修改配置文件config/server.properties #broker 的全局唯一编号,不能重复 broker.id=0 #删除 topic 功能使能 delete.topic.enable=true #
阅读全文
摘要:Kafka的概念和入门 Kafka是一个消息系统。由LinkedIn于2011年设计开发。 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度O(1)的方式提供消息持久化能力,即使对TB级以上数据页能保证常数时间复杂度的访问性能。 高吞吐率。即使在非常廉价的商用机器
阅读全文