自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 Redis Cluster Gossip Protocol: 目录

cluster:每个节点的内存中都有一个集群信息结构,里面包含了集群中各个节点的状态信息(包括server自己)link:节点间通信时使用的连接。myself:当前节点在cluster中的实体。node:cluster节点字典中的实体。server:当前的节点。

2023-10-04 01:22:45 621

原创 Redis Cluster Cron调度

【代码】Redis Cluster Cron调度。

2023-10-04 01:16:56 681

原创 Redis Cluster Gossip Protocol: FAIL, UPDATE

第1 ~ 3步是涵盖所有类型的消息,详细请参考PING/PONG/MEET。第1 ~ 3步是涵盖所有类型的消息,详细请参考PING/PONG/MEET。

2023-10-04 01:16:03 270

原创 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 261

原创 Redis Cluster Gossip Protocol: PING, PONG, MEET

第1 ~ 3步是涵盖所有类型的消息。

2023-10-04 01:13:55 332

原创 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 303

原创 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 3129 5

原创 Linux ELF 详解3 -- Symbol Table & Symbol

1. ELF Symbol Table2. ELF Symbol3. Symbol Type4. Symbol Binding

2021-02-12 02:43:44 9934 4

原创 Linux ELF 详解2 -- Section Header & Section

1. ELF2. Section Header3. Section4. hexdump5. objdump

2021-02-09 16:24:07 4110 1

原创 Linux ELF 详解1 -- ELF Header

1. ELF 文件类型2. ELF 内容布局3. ELF 数据类型4. ELF Header

2021-02-07 23:30:57 2870

原创 Redisson lock挂死问题的分析与解决

1. redisson lock挂死2. redisson 分布式锁问题3. wait/await 不退出

2020-08-20 02:24:01 6475 2

原创 定位性能问题常用方法:系统负载,CPU与进程

1.系统性能问题定位2.vmstat, pidstat, mpstat, pstree, execsnoop等的使用3.系统负载,线程上下文切换,短时进程,僵尸进程的介绍和查看方法

2020-08-16 04:30:19 1141

原创 使用Instrumentation和Javassist修改web应用字节码

1. Java Instrumentation 允许我们使用静态或者动态的方式连接JVM,从而在运行时修改类的字节码;2. Javassist 是一个不错的字节码修改库,可以通过文本方式编写要修改的代码,而不需要懂底层字节码的运行机制;3. 对于复杂的应用场景,例如部署了多应用的 web 服务器,需要额外的手段来辅助实现字节码的动态修改。

2019-11-19 02:27:34 1107

原创 解决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 21243 7

原创 动态查找spring aop的切面方法

1. spring aop2. 切面方法

2019-10-09 12:05:57 1225

原创 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 1907

原创 Redisson sentinel模式下"is not active"问题的分析与解决

1. Redisson Sentinel 详解2. is not active 问题分析与解决

2019-08-19 03:19:32 13897 1

原创 查找WebServer中各个App的ClassLoader

1. 介绍 web server 中 classLoader 的层次体系2. 如何查找web server中各个app的ClassLoader(以Jetty和Tomcat为例)

2019-08-01 01:25:25 589

原创 在heap上查找class的对象实例

1. 如何使用 JNI2. 如何在 JNI 中调用 JVMTI 在heap上根据class查找对象

2019-07-24 02:18:04 498

原创 tcpdump 及 wireshark 的使用

本文包含以下内容tcpdump 的基本使用说明wireshark 的基本使用说明wireshark 对 https 的查看tcpdump的用法PS: 如果提示没有权限,需要切换到root或者有权限的用户,或使用sudo tcpdump xxxx查看网络接口通过 ifconfig 可以看到host上所有的网络接口或者使用命令:tcpdump -D | grep Running...

2019-07-22 00:21:13 728

原创 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 9112

原创 Java线程状态,thread dump及分析

线程状态如何获取 thread dump如何分析 thread dump

2019-07-09 18:05:01 1032

原创 探讨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 2823 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 69792 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 16018 1

原创 Kafka processing OffsetForLeaderEpochRequest

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2018-09-19 14:58:29 1677 2

原创 Kafka follower从leader复制数据

Kafka处理leaderAndIsr请求中提到follower会不停地从leader那里复制数据,这次介绍的是如何复制。follower会根据自身拥有多少个需要同步的topicPartition来创建相对应的partitionFetchState,这个东西记录了从leader的哪个offset开始获取数据follower会根据leader的brokerId和topicPartition经...

2018-09-14 16:00:42 1885

原创 修改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 9228

原创 KafkaController Events (KafkaController的各种事件)

KafkaController是通过事件驱动来运转的。Startup事件 elect过程 onControllerResignation过程 ControllerChange 事件 Reelect 事件 AutoPreferredReplicaLeaderElection 事件 BrokerChange 事件 onReplicasBec...

2018-08-22 11:53:39 1037

原创 Kafka Topic Resume Deletions (Kafka Topic恢复删除的过程)

恢复删除Topic的过程

2018-08-22 11:27:48 3004

原创 KafkaController的状态机和partition leader选择器

Partition:Topic的分区 Partition状态机 Replica:存放Partition复制品的broker(kafka server实例) Replica状态机 为partition选举新leader的4种选择器ControlledShutdownLeaderSelector OfflinePartitionLeaderSelector ...

2018-08-22 11:24:10 1446

原创 Kafka how to handle leaderAndIsr request (处理leaderAndIsr请求)

总体流程图 成为partition的leader 成为partition的follower

2018-08-22 11:06:33 738

原创 Kafka的文件存储

3中索引文件: 1. OffsetIndex 2. TimeIndex 3. TransactionIndex 其中OffsetIndex和TimeIndex都使用了MappedByteBuffer来做读写映射。 OffsetIndex:存储的是(逻辑位移,物理位置)的key-value list。逻辑位移就是message在TopicPartition上的offset,物理位置就是实际...

2018-08-20 18:28:39 4721

原创 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 533

DESCRIPTION OF A MACHINE ARCHITECTURE FOR USE WITH BLOCK STRUCTU

EM is a family of intermediate languages designed for producing portable compilers. A program called front end translates source programs to EM. Another program, back end, translates EM to the assembly language of the target machine. Alternatively, the EM program can be assembled to a highly efficient binary format for interpretation. This document describes the EM languages in deta

2024-04-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除