- 博客(34)
- 收藏
- 关注
原创 Redis Cluster Gossip Protocol: 目录
cluster:每个节点的内存中都有一个集群信息结构,里面包含了集群中各个节点的状态信息(包括server自己)link:节点间通信时使用的连接。myself:当前节点在cluster中的实体。node:cluster节点字典中的实体。server:当前的节点。
2023-10-04 01:22:45
662
原创 Redis Cluster Gossip Protocol: FAIL, UPDATE
第1 ~ 3步是涵盖所有类型的消息,详细请参考PING/PONG/MEET。第1 ~ 3步是涵盖所有类型的消息,详细请参考PING/PONG/MEET。
2023-10-04 01:16:03
320
原创 Redis Cluster Gossip Protocol: MEET
5. 当Node A和Node B都完成了handshake过程后,就会进入相互ping/pong/update等的阶段。6. 而Node B可以从Node A的ping/pong中获取到Node A的slots分布,从而更新到实体A。7. 只有handshake成功后的下一次ping/pong才会真正的更新自己cluster节点字典中的实体。: 一个专门处理cluster间通信的周期性调度。以下执行步骤只挑选了主要的步骤。:B_ip 不能使用域名。
2023-10-04 01:14:31
297
原创 Redis Cluster Gossip Protocol: Message
Signature: “RCmb” 这4个字符(Redis Cluster message bus 的简称)totalLen: 消息的总字节数version:当前为1port: TCP 端口type: 消息类型0:PING1:PONG2:MEET3:FAIL4:PUB/SUB 传递7:UPDATE8:MFSTART9:MODULE10:PUB/SUB Publish Shard 传递count:gossip条目数量(对PING/PONG等有效)
2023-10-04 01:13:21
353
原创 Linux ELF 详解4 -- 深入 Symbol
1. Symbol的分类2. Local Symbol3. Global Symbol4. Common Symbol5. strong & weak Symbol6. STB_WEAK Symbol
2021-02-13 21:52:20
3619
5
原创 Linux ELF 详解3 -- Symbol Table & Symbol
1. ELF Symbol Table2. ELF Symbol3. Symbol Type4. Symbol Binding
2021-02-12 02:43:44
12031
4
原创 Linux ELF 详解2 -- Section Header & Section
1. ELF2. Section Header3. Section4. hexdump5. objdump
2021-02-09 16:24:07
5186
1
原创 Linux ELF 详解1 -- ELF Header
1. ELF 文件类型2. ELF 内容布局3. ELF 数据类型4. ELF Header
2021-02-07 23:30:57
3510
原创 Redisson lock挂死问题的分析与解决
1. redisson lock挂死2. redisson 分布式锁问题3. wait/await 不退出
2020-08-20 02:24:01
7122
2
原创 定位性能问题常用方法:系统负载,CPU与进程
1.系统性能问题定位2.vmstat, pidstat, mpstat, pstree, execsnoop等的使用3.系统负载,线程上下文切换,短时进程,僵尸进程的介绍和查看方法
2020-08-16 04:30:19
1260
原创 使用Instrumentation和Javassist修改web应用字节码
1. Java Instrumentation 允许我们使用静态或者动态的方式连接JVM,从而在运行时修改类的字节码;2. Javassist 是一个不错的字节码修改库,可以通过文本方式编写要修改的代码,而不需要懂底层字节码的运行机制;3. 对于复杂的应用场景,例如部署了多应用的 web 服务器,需要额外的手段来辅助实现字节码的动态修改。
2019-11-19 02:27:34
1251
原创 解决Redisson无法连接Sentinel, Netty查找DNS失败
1. org.redisson.client.RedisConnectionException: At least two sentinels should be defined in Redis configuration! SENTINEL SENTINELS command returns empty result!2. Redisson 查找 sentinel 失败3. Netty 查找 DNS 失败
2019-11-04 04:13:14
23009
7
原创 JceKeyStore "ObjectInputFilter REJECTED" 问题分析与解决
1. INFO: ObjectInputFilter REJECTED: class com.sun.crypto.provider.SealedObjectForKeyProtector2. java.io.ObjectInputStream filterCheck3. java.io.IOException: Invalid secret key format4. PowerMock, JCES KeyStore, Java 8 JRE 172
2019-08-24 01:17:51
2026
原创 Redisson sentinel模式下"is not active"问题的分析与解决
1. Redisson Sentinel 详解2. is not active 问题分析与解决
2019-08-19 03:19:32
14265
1
原创 查找WebServer中各个App的ClassLoader
1. 介绍 web server 中 classLoader 的层次体系2. 如何查找web server中各个app的ClassLoader(以Jetty和Tomcat为例)
2019-08-01 01:25:25
658
原创 tcpdump 及 wireshark 的使用
本文包含以下内容tcpdump 的基本使用说明wireshark 的基本使用说明wireshark 对 https 的查看tcpdump的用法PS: 如果提示没有权限,需要切换到root或者有权限的用户,或使用sudo tcpdump xxxx查看网络接口通过 ifconfig 可以看到host上所有的网络接口或者使用命令:tcpdump -D | grep Running...
2019-07-22 00:21:13
819
原创 Java heap dump及分析
1. 如何进行 heap dump2. MAT 的使用3. object 的 Incoming 与 Outgoing References4. object 的 Shallow Size 与 Retained Size 以及计算方法5. dump 分析(一般的OOM,同一Class被加载多次,ClassLoader泄漏导致的OOM)
2019-07-12 19:15:03
9781
原创 探讨ClassLoader引发的 java.lang.LinkageError
问题产生的原因我遇到过的多次LinkageError,都是因为调用对象方法时,方法的某部分(参数或者返回值类型)被不同的ClassLoader所加载,下面用几个例子说明。例子1:web应用jetty 部署应用的时候,出现了Java LinkageError:java.lang.reflect.InvocationTargetException at sun.reflect.NativeM...
2019-03-04 03:03:51
3283
1
原创 一个有点古怪的问题:Redisson无法连接redis
问题:使用redisson连接redis时出现如下错误org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379 at org.redisson.connection.pool.ConnectionPool$2$1.operationCompl...
2018-12-14 03:23:02
71793
8
原创 Redisson-3.8 查找DNS异常的解决办法
环境 (ubuntu)redis sentinel的链接url为sentinel://redis:26379,redis:26380?masterNames=mymaster&poolSize=100&poolName=xxx/etc/resolv.conf的内容如下:nameserver 127.0.0.1search aaa.bbb ostechnix....
2018-11-21 19:47:29
17073
原创 Kafka processing OffsetForLeaderEpochRequest
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2018-09-19 14:58:29
1742
2
原创 Kafka follower从leader复制数据
Kafka处理leaderAndIsr请求中提到follower会不停地从leader那里复制数据,这次介绍的是如何复制。follower会根据自身拥有多少个需要同步的topicPartition来创建相对应的partitionFetchState,这个东西记录了从leader的哪个offset开始获取数据follower会根据leader的brokerId和topicPartition经...
2018-09-14 16:00:42
1936
原创 修改spring的环境变量systemEnvironment
如果spring的配置文件使用了表达式来获取环境变量,测试的时候又希望能对systemEnvironment进行修改,加入新值,how to do it?<bean id="aaa" class="xxx.bbb.Factory" factory-method="init"> <constructor-arg value=&
2018-09-10 19:12:42
9468
原创 KafkaController Events (KafkaController的各种事件)
KafkaController是通过事件驱动来运转的。Startup事件 elect过程 onControllerResignation过程 ControllerChange 事件 Reelect 事件 AutoPreferredReplicaLeaderElection 事件 BrokerChange 事件 onReplicasBec...
2018-08-22 11:53:39
1092
原创 KafkaController的状态机和partition leader选择器
Partition:Topic的分区 Partition状态机 Replica:存放Partition复制品的broker(kafka server实例) Replica状态机 为partition选举新leader的4种选择器ControlledShutdownLeaderSelector OfflinePartitionLeaderSelector ...
2018-08-22 11:24:10
1479
原创 Kafka how to handle leaderAndIsr request (处理leaderAndIsr请求)
总体流程图 成为partition的leader 成为partition的follower
2018-08-22 11:06:33
783
原创 Kafka的文件存储
3中索引文件: 1. OffsetIndex 2. TimeIndex 3. TransactionIndex 其中OffsetIndex和TimeIndex都使用了MappedByteBuffer来做读写映射。 OffsetIndex:存储的是(逻辑位移,物理位置)的key-value list。逻辑位移就是message在TopicPartition上的offset,物理位置就是实际...
2018-08-20 18:28:39
4788
原创 Kafka SocketServer Reactor with MultiThread (Kafka高并发原理)
使用java nio的Selector(多路复用)技术每个EndPoint对应一个Acceptor,Acceptor运行在一个Thead中,打开ServerSocketChannel,监听连接事件。当有新的连接请求进入时,通过Selector可以获取到对应的SelectionKey_Accept。Acceptor把SelectionKey_Accept转交给Processor处理。一...
2018-08-09 16:31:33
584
DESCRIPTION OF A MACHINE ARCHITECTURE FOR USE WITH BLOCK STRUCTU
2024-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人