笔记
文章平均质量分 85
解决问题no解决代码问题
怕什么真理无穷,进一寸有一寸的欢喜。即使开了一辆老掉牙的破车,只要在前行就好,偶尔吹点小风,这就是幸福。
展开
-
一,kafka 伊始,架构模型,角色功能梳理
kafka what why howAKFbroker ,producer ,consumer,offset原创 2022-08-07 22:46:34 · 1000 阅读 · 0 评论 -
多线程与高并发(二) JUC
目录day3一,JUC同步工具1,LongAdder , Atomic,sync2,LOCK3,公平锁4,ReentrantLock vs sync5,CountDownLatch倒数的门栓6,CyclicBarrier循环栅栏7,Guava RateLimiter限流8,MarriagePhaser 1.7循环栅栏9,ReasWiriteLock 读写锁10,Semaphore信号灯11,Exchange交换器d...原创 2022-05-15 22:34:51 · 435 阅读 · 0 评论 -
多线程与高并发(四) - 容器
java 容器mapQueue原创 2022-04-04 18:39:04 · 1061 阅读 · 0 评论 -
多线程高并发(五)线程池
java线城池 ThreadPool 和ForkJoinPool原创 2022-04-11 14:02:56 · 1183 阅读 · 0 评论 -
多线程与高并发(三) ,LockSupport AQS VarHandle ThreadLocal
LockSupport AQS VarHandle ThreadLocal 强软弱虚 四种引用原创 2022-04-02 09:28:47 · 191 阅读 · 0 评论 -
多线程与高并发(一)基础概念
基础概念原创 2021-10-28 16:54:19 · 728 阅读 · 0 评论 -
java线程的7种状态
一般来说面试问道线程都是说的5种状态,但网上的说法又很杂乱,无意间翻看源码,看到如下代码,源码给出的答案是6种:把等待(WAIT)分为两种,一个是定时等待(TIMED_WAITING)时间到就自动唤醒,一个是等待中(WAITING)需要主动唤醒。 public static State toThreadState(int var0) { if ((var0 & 4) != 0) { return State.RUNNABLE; } els原创 2021-09-14 09:15:24 · 247 阅读 · 0 评论 -
既生瑜(zookeeper)何生亮(redis) 下
十二,API 单说API,没什么意思,用案例说吧。(一)简单 watch API zk中watch观察回调分为两种:zk连接的watch,节点pathwatch 。 //TODO 两种watch代码实例(二)分布式锁的实现 //TODO 分布式锁API实现(三)队列有事务的锁 //TODO 队列有事务的锁API实现十三,CALLBACK 响应式编程 reactive,充分...原创 2021-09-03 07:26:14 · 188 阅读 · 0 评论 -
既生瑜(zookeeper)何生亮(redis)上
zookeeper和redis有很多东西是相通的,为什么zookeeper还能存活?请听我娓娓道来。原创 2021-08-22 05:01:12 · 935 阅读 · 0 评论 -
哈希表, 二叉树,红黑树,B Tree B+Tree B*Tree
B+Tree 文件 -> 偏移量offset -> 指针 -> 指针移动哈希表散列 取模计算,等值查询,范围查询不能用缺点:利用hash存储的话需要将所有数据文件添加到内存,比较高飞内存空间;如果所有的查询都是等值查询,那么hash确实很快,但是实际工作中范围查找的数据更多二叉树倾斜问题AVL 二叉平衡树最长指数和最短指数 不能超过1旋转,左,右 。旋转浪费时间,插入效率极低,查询很快红黑树最长指数和最短指数 查...原创 2020-09-09 10:07:24 · 201 阅读 · 0 评论 -
(三)高并发负载均衡:LVS的DR模型试验搭建
LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。早期的小型运营商使用的LVS:使每个小区的用户平均分配在三个server服务器上,减少单台server的并发量。实现DR需要隐藏VIP一切皆文件:把程序或内核映射成文件,修改文件,相当于修改程序的变量,即时生效。一块网卡可以配置多个IP地址。隐藏VIP方法:对外隐藏,对内可见 :kernel parameter:目标mac地址为全F,交换机触发广播/proc/sys/ne原创 2021-03-22 23:10:54 · 281 阅读 · 0 评论 -
(五)redis的持久化RDB、fork、copyonwrite、AOF、RDB&AOF混合使用
缓存的意义?缓存:数据可丢失数据库:数据绝对不能丢缓存追求的是速度,内存掉电易失存储层:1,快照/副本 : 时点性的一个数据整体2,日志 :是操作指令的历史记录单机持久化主从复制一,基础只是引入1,如果快照从8点写到8点半,怎么解决时点混乱(那么数据的时间是怎么样的?8点?8点半?8-8点半之间?)的问题8点的,使用的是fork()的方式liunx管道1,衔接前一个命令的输出作为后一个命令的输入2,管道会触发创建 【子进程】num=0 # 创建按变量echo $num原创 2021-05-06 22:26:45 · 374 阅读 · 2 评论 -
(一)redis 介绍及NIO原理介绍
前言常识:维度磁盘带宽寻址msG/M带宽ns很大秒 > 毫秒 > 微妙 > 纳秒 磁盘比内存上的寻址满了10W倍关系型数据库建表:必须给出schema类型:字节宽度存储:倾向于行级存储例:10个宽度,只存了一个指,其他位置也要占位,增删改不用移动位置,直接覆盖即可。数据库的B+T在内存中,数据在磁盘索引是什么?举个栗子:评价一个外卖小哥的投递速度,在交通工具相同的前提下,怎么在一个小区内找到对应人?在不清楚楼号位置,楼层标记的原创 2021-03-31 13:58:39 · 584 阅读 · 2 评论 -
被拒绝,是成长的开始
我是什么时候开始有代码洁癖的?好像忘记了,恍惚之间好像开始是第一份工作时,项目经理说的:你代码格式这么差,我都懒得看,调整好在找我问。第二次是一次面试的时候,给面试官看了自己以前写的项目,时间紧任务重,很多时候都加班,通宵,那时候真是觉得自己成长的很快,但好多东西那时候并不重视。当面试官看了我的uils包内的工具类,冷冷的说了一句:你这个excle导出工具类3个?回去等通知吧我知道要凉,也就继续开始找工作,那段时间我把压箱底的《JAVA编程思想》看完,有了基础的代码格式和基础。以至于后来,做完功能原创 2021-04-01 11:39:25 · 108 阅读 · 1 评论 -
(一)从网络到分布式(集群内高并发)
目录24 高并发负载均衡:网络协议原理25 高并发负载均衡:LVS的DR,TUN,NAT模型推导26 高并发负载均衡:LVS的DR模型试验搭建 地址28 高并发负载均衡:基于keepalived的LVS高可用搭建 地址redis资料43 redis 介绍及NIO原理介绍 地址44 redis的string类型&bitmap 地址45 redis的list、set、hash、sorted_set、skiplist 地址48 redis的消息订阅、pipeline、事务、modules原创 2021-03-16 00:36:40 · 375 阅读 · 0 评论 -
redis安装成服务
安装根据README.md介绍安装tar xf redis-5.0.7.tar.gzcd redis-5.0.7/make #如果make报错 yum install gcc make disrcleanmake install PREFIX=/opt/redis5vi /etc/profile export REDIS_HOME=/opt/redis5 export PATH=$PATH:$REDIS_HOME/binsource /et原创 2021-03-31 13:57:36 · 105 阅读 · 0 评论 -
(二)高并发负载均衡:LVS的DR,TUN,NAT模型推导
目录24 高并发负载均衡:网络协议原理25 高并发负载均衡:LVS的DR,TUN,NAT模型推导26 高并发负载均衡:LVS的DR模型试验搭建28 高并发负载均衡:基于keepalived的LVS高可用搭建43 redis 介绍及NIO原理介绍44 redis的string类型&bitmap45 redis的list、set、hash、sorted_set、skiplist48 redis的消息订阅、pipeline、事务、modules、布隆过滤器、缓存LRU49 redis的持原创 2021-03-16 23:41:30 · 307 阅读 · 0 评论 -
(四)高并发负载均衡:基于keepalived的LVS高可用搭建
4层和7层的区别要分清哪些程序是应用层的,哪些程序是内核的。LVS四层负载均衡服务器,是不会碰握手这一个步骤的。Nginx是基于反向代理(七层)的负载均衡服务器,要先握手建立连接,才能取到URI,在判定location是否匹配,然后才将URI传递给后面的服务器。server返回数据时,是需要过Nginx服务器的,而使用LVS的时候不会过LVS服务器。四层负载均衡nginx 基于反向代理的负载均衡比LVS多了一次三次握手的连接。单台四层负载均会出现的问题1、如果你的LVS负载均衡服务器挂原创 2021-03-24 23:37:36 · 359 阅读 · 0 评论 -
MYSQL索引优化
一,索引的优点1,大大减少了服务器需要扫描的数据量2,帮助服务器避免排序和临时表3,将随机IO编程顺序IO二,索引的用处1,快速查找匹配WHERE子句的行;2,从consideration中消除行,可以在多个索引之间进行选择,mysql通常会使用找到最少行的索引;3,如果表具有多列索引,则优化器可以使用索引的任何左前缀来查找行;4,当表连接时,从其他表检索行数据;5,查找特定索引列的min或max值;6,如果排序或分组时可用索引的最左前缀上完成的,则对表进..原创 2021-03-26 08:39:22 · 139 阅读 · 0 评论 -
(四) redis的消息订阅、pipeline、事务、modules、布隆过滤器、回收策略(LRU,LFU)
使用进阶管道多次命令一次发送,通信成本变低linux \r\n windows \n发布订阅监听之后才能收到信息help @pubsub做缓存还是数据库缓存常见问题持久化原创 2021-04-25 23:41:30 · 186 阅读 · 0 评论 -
(二)redis的String类型 Bitmaps
分区redis进程中有16个的分区,分区之间是隔离的。#直接去8号库redis-cli -p 6379 -n 8help 提示String查看当前分区所有创建的keykeys *set k1 111 nx 不存的时候去设置(只能新增:分布式锁)set k1 111 xx 存的的时候去设置(只能更新)append k1 "sdas" 追加到末尾getrange k1 2 3 按下标获取值setrange k1 2 "s原创 2021-03-31 21:59:05 · 133 阅读 · 0 评论 -
(三)Redis的list、hash、set、sorted_set、skip list
文章目录list**list命令**listlist命令help @listBLPOP key [key ...] timeout #删除并获取列表中的第一个元素,或阻止直到一个元素可用BRPOP key [key ...] timeout #删除并获取列表中的最后一个元素,或阻止直到一个元素可用BRPOPLPUSH source destination timeout #从一个列表中弹出一个值,将其推送到另一个列表并返回;或者阻止,直到一个列表可用为止LINDE原创 2021-04-07 22:47:48 · 153 阅读 · 0 评论 -
(七)redis的集群:主从复制、CAP、PAXOS、cluster分片集群02
spring.io PROJECTS SPRING DATA自学不用买书,看官方文档。Spring dATA Redis learn reference Doc所有Spring 对Rrdis做的事。一,容量问题怎么解决?X轴,HA,主从复制,没有解决容量问题从客户端1 业务拆分2 hash+取模弊端:取值的数必须固定%3 %4影响分布式下的扩展性3 random消息队列:一个往redis里扔lpush,一个从redis取rpop,消费的模式。4 一致性哈希算法(更原创 2021-07-25 20:43:13 · 215 阅读 · 5 评论 -
(六)redis的集群:主从复制、CAP、PAXOS、cluster分片集群01
回顾:redis单机单线程作为缓存,有RDB就够了,即使挂掉了恢复快,丢失了一小时的数据,也不过是穿透了,访问到了数据库。作为数据库,为了不丢失数据,必须使用AOF。单机的问题1,单点故障2,容量有限3,压力AKF是微服务拆分的四个原则的第一项,实现的是一变多,但会引入新的问题:数据一致性。X:全量,镜像 (主备 ),只能解决单点故障的问题Y:单台有10G数据,但redis只有4G。按业务逻辑,功能拆分数据到多台redis上。Z:基于一个优先级逻辑按编号拆分。数据一致性:写的时候阻塞原创 2021-05-24 22:36:07 · 395 阅读 · 0 评论