- 博客(673)
- 资源 (18)
- 收藏
- 关注
原创 pattern of distributed system 读书笔记-Patterns of Communication between Nodes
摘要:本文探讨了分布式系统中节点通信的三种优化模式:1) 单套接字通道,通过持久化的单一连接确保消息有序传递,并配合心跳检测维持连接活跃;2) 请求批处理,通过聚合小数据量请求降低网络开销,需动态调整批次大小(如Kafka默认16KB)并设置等待时间阈值;3) 请求流水线,采用发送/接收双线程提升吞吐量,但需处理服务端过载和乱序请求问题(如Raft通过日志索引匹配机制实现请求校验)。这些方法在保证可靠性的同时,显著优化了延迟和吞吐量。(149字)
2025-07-20 11:01:55
912
原创 pattern of distributed system 读书笔记- Patterns of Cluster Management
文章摘要: 本文探讨了集群管理的核心模式,包括一致性核心(Consistent Core)、租约机制(Lease)和状态监控(State Watch)。一致性核心通过3-5个节点的小集群提供线性化保证,管理元数据和集群决策。租约机制利用一致性核心实现容错,通过心跳机制更新租约时间,并处理节点故障。状态监控允许客户端注册对特定状态变化的兴趣,减少服务器连接压力,但需注意连接故障和事件丢失问题。文中还区分了单调时钟时间和挂钟时间的不同用途及限制。
2025-07-20 10:57:28
436
原创 pattern of distributed system-Patterns of Distributed Time(logical timestamps)
分布式系统中的时间模式(逻辑时间戳) Lamport时钟:解决跨服务器时间戳不可比问题,通过单调递增的数字维护因果关系,但只能提供偏序关系,无法比较不同服务器的独立事件。 混合时钟:结合系统时间和逻辑计数器,既保持单调性又关联实际时间,适用于版本化存储(如MongoDB、CockroachDB),支持分布式事务的时间戳协调。 时钟边界等待:解决时钟漂移导致的读取过时数据问题,通过延迟读写确保节点时钟同步,并采用读取重启机制处理时钟滞后问题。云服务商通过原子钟等技术将时钟漂移控制在毫秒级。 这些模式在保证分布
2025-07-17 09:00:50
827
原创 pattern of distributed system 读书笔记- Patterns of Data Partitioning
摘要:分布式数据存储与事务处理策略 本文介绍了三种分布式数据存储和事务处理的关键技术: 固定分区:通过哈希函数将数据映射到逻辑分区,再分配到集群节点,实现均匀分布和快速查询。新增节点时只需移动少量数据,并采用协调节点跟踪分区映射关系。 键范围分区:针对范围查询场景,采用有序键分区策略。支持预定义键范围和自动分区拆分,基于负载指标(请求数、CPU/内存使用率)动态调整分区大小。 两阶段提交:解决分布式事务一致性问题,包含准备阶段(节点承诺执行)和提交阶段(实际执行)。采用预写日志保证持久性,提供多种锁策略(错
2025-07-17 06:52:59
1015
原创 pattern of distributed system 读书笔记- Patterns of Data Replication
摘要: 本文探讨了数据复制中的关键技术模式。首先介绍了Write-Ahead Log(WAL)机制,它通过顺序追加日志确保数据持久性,并讨论了日志管理、校验和性能优化策略。其次讲解Segmented Log和Low-Water Mark技术,前者将大日志分割为多个文件,后者通过设置最低偏移量来安全清理旧日志。在集群管理方面,重点分析了Leader-Follower架构及其选举机制(包括Zab和Raft算法),以及心跳检测在故障发现中的应用。文章还指出多数读写(Quorum)不足以提供强一致性保证,并比较了不
2025-07-14 22:17:56
842
原创 pattern of distributed system 读书笔记-Overview of the Patterns
分布式系统数据一致性模式综述 本文系统介绍了分布式系统中确保数据一致性的关键模式。在单服务器场景下,预写日志(WAL)保障数据持久性;多节点环境中,领导者-跟随者模式通过心跳检测维持可用性,多数派仲裁机制确保日志复制可靠性。高水位标记(High-Water Mark)机制有效跟踪可提交日志位置,而单更新队列和幂等性设计提升了系统吞吐量。分区技术通过合理的数据分布和复制策略(通常3或5副本)实现横向扩展,两阶段提交协议维护跨分区一致性。时间排序方面,Lamport时钟和混合时钟替代系统时间戳,解决了分布式环境
2025-07-14 21:49:16
1005
原创 JDK 8->21 NEW FEATURES
本文摘要:介绍了Java新版本(11-21)的核心特性更新,主要包括:1)文本块与多行字符串(""");2)增强的switch表达式(返回值、模式匹配);3)记录类(Record)简化数据类;4)密封类(Sealed Class)控制继承;5)改进的NPE提示;6)日期/数字格式化增强;7)Stream API新增toList()方法;8)虚拟线程(Virtual Threads)提升并发性能;9)垃圾回收器优化(ZGC/Shenandoah);10)结构化并发管理。这些特性显
2025-06-25 09:04:10
801
原创 jdk 升级相关
emt4j和jar-analyzer是两款Java工具:emt4j用于记录和追踪Java应用中特定方法的调用情况,支持按线程、时间等维度分析;jar-analyzer则专注于JAR文件分析,能检测冲突依赖、重复类等常见问题。两款工具均可帮助开发者快速定位性能问题和依赖冲突,适用于日常开发调试场景。参考文档详细介绍了工具的使用方法和实际案例。
2025-06-22 17:12:24
99
原创 华为数字化转型-平台篇
4.1 1 一把手担责4.2 2 战略引领4.3 3 重构业务4.4 4 转人磨芯4.5 5 眼高手低- 数字化转型一定要从高处着眼,目标要远大,要系统性地描绘出数字化转型愿景和架构蓝图,形成变革全局视图,确保企业上下一盘棋。但在具体开展时,企业一定要从解决自身的现实问题入手,识别业务运作的高能耗点、管理低效点以及客户体验缺失环节,找准转型突破口进行重点推进而非面面俱到,赢得信心,从而让更多人愿意参与进来,并带动其他转型工作有序开展。
2025-04-01 08:20:51
1063
原创 华为数字化转型-方法篇
IT产品团队由于包含了业务、数据、IT人员,更适合引入服务化架构,使得IT系统由做“功能”变为做“服务”,将一个复杂的IT系统拆分为一个个相对解耦的应用服务,使其能够基于业务场景的变化进行快速优化和迭代,从而更加灵活地响应业务变化。在规划工作中,规划团队首先需要解读企业业务战略和商业模式的变化,识别出企业的“新定位、新业务、新模式”,再思考通过什么样的变革来支撑业务战略目标的达成,进而通过一系列变革项目来改变业务运作模式,支撑业务发展和商业成功。(2)业务能力:业务能力是服务化变革的入手点。
2025-03-30 20:44:52
849
原创 华为数字化转型-认知篇
模式,以清晰的业务战略作为数字化转型规划的输入,通过愿景来描绘未来5~10年数字化转型将取得的成就,进而设计架构蓝图,对愿景进行系统性的、分层分级的梳理和诠释,最后规划出变革项目,承接数字化转型举措,并为每一个项目确定优先级。客户需求的差异化和企业间分工的精细化,让单一企业的产品越来越难以满足客户的“痛点”需求。我们认为,只有认识到数字化带来的企业内生产关系的变化,设计好未来的企业运营模式,重新定义“总部”“区域”和“一线项目组”的关系,才能让数字化成为缩短决策链条、提升运营效率的推进器。
2025-03-30 20:30:32
630
原创 kv server code 分析
最后使用函数getDirectRequest调用store.LoadLastMsg然后使用mset.outq.send将消息发送到消费者的inbox。核心处理函数是processDirectGetLastBySubjectRequest,下图显示了调用堆栈和跟踪。kv流的访问有所不同,将通过功能subscribeToDirect设置为直接访问。
2025-03-09 21:15:30
306
原创 nats kv client code分析
update需要设置expectedRevision,其动作可以描述为:如果键存在并且其最新版本(expectedRevision)与预期匹配,则将其设置为键的值。使用 subject “DIRECT.GET.KV_profiles.$KV.profiles.sue.color”通过指令:DIRECT.GET. 告诉服务端调用 $JS.API.DIRECT.GET.KV.profile"就是一个流,如果有人写错了代码,可以删除它。使用filter订阅的要注意,以下代码是有问题,不能包括"sue"
2025-03-09 21:10:14
830
原创 nats jetstream server code 分析
jetstream导入两个对象:stream and consumer,在stream 之上构造jetstreamapi。在nats代码中,以下是一些常见的缩写。
2025-03-09 20:56:04
1003
原创 nats jetstream 测试和客户端分析
当一个消息保存到store后,一个全局的seq 被返回并送给客户端,实现了message的可最终和最少一次发送。当一个客户端发送了stream message,processJetStreamMsg 负责处理消息。当创建stream的时候,最重要的 option 是 retentionPolicy。msg先写入缓存,然后再写入磁盘,所以如果不是在集群模式下,可能会丢失。最后,写入磁盘的函数是flushPendingMsgsLocked。可以使用如下模式设置timeout。最后返回消息给客户端是如下函数。
2025-03-09 20:37:58
990
原创 nats queue subscription 服务端代码分析
同时当一个服务被订阅的事后,$SRV 相关tpoic也被订阅,但只要service是使用队列订阅, 以下是通过增加测试代码的输出。首先可以看到下面的调用stack信息,可以看到调用了sublist.go 的insert 函数。如果在订阅使用了队列中,则放入qsubs map对象中,否则将放入psubs map对象中。如果是queue模式,解析接收到的message并发送给消费者是调用如下函数。如果打开debug模式和添加一些调试低码,跟踪消息处理可以得到如下结果,其中。非队列模式是如下代码。
2025-03-07 22:15:50
194
原创 nats service frame 代码分析
现在我们可以使用 req 来 ping 了,注意,下面的 $SRV.PING.minmax 不能被符号 ’ 或 " 包含。我们可以使用队列组“q”,所有服务提供者都会在队列中,以避免多个实例响应相同的请求并提供高可用性。service endpoint 订阅是通过 qGroup 参数来订阅,可以参考下面的代码。会得到如下输出,可以清楚的看到订阅了哪个subject以及是否通过队列订阅。注意,这里是 SRV ping,不是健康连接中使用的 ping/pong。然后让我们看看服务构建函数。
2025-03-05 21:18:05
442
原创 nats request 和reply 客户端模式代码分析
理论上,你可以使用两个消费者来回复同一个请求,两个请求都会发送给请求者,但只有一个响应会被分派到 Future.get 函数,我们使用 Future 来支持某些场景,例如从不同来源获取营销建议,但只向我们的客户显示一个。当每个返回的信息达到客户端的时候,deliverReply function 被dispatcher调用,通过token +remove 来保证每次request 只有第一个到达的reply会触发future调用。
2025-03-05 21:06:14
261
原创 nsc account 及user管理
从安全角度,推荐使用sign 模式进行nats account及用户管理此外通过nsc 管理用户和权限,可以统一实现全局管控,包括subject管控,避免随意增减subject。
2025-02-14 19:38:05
1214
原创 nats 消息系统架构
nats focus 在realtime ,但缺少了iot,另外nats的核心是快速,在core里面其实没有提供al least once, exactly once模式。Subject Mapping:通过消息mapping,实现原始subject按policy 转发到一个或者多个subject下,用于灰度分流,细分访问控制等场景。nats的serviceframe = request/reply+queue +指定$SRV subject。nats server/lead的核心对象。
2025-02-14 08:07:19
674
原创 Doris 2.1 Optimization Technology Principle Statistics
Doris 2.1 Optimization Technology Principle Statistics, very important for CBO
2025-01-25 16:04:23
74
原创 Doris 2.1 Optimization Technology Principle 学习笔记
Queries Acceleration Optimization Technology Principle
2025-01-25 15:54:39
166
原创 Queries Acceleration -Tuning- Common Tuning Parameters 学习笔记
2.1 Whether to enable the new optimizer 2.2 Default Value-true 2.3 For scenarios such as low-version upgrades, initially set to false; after upgrading, it can be set to true3.1 Whether to enable DML support for the new optimizer 3.2 Default Value-true
2025-01-24 18:16:45
198
原创 Queries Acceleration -Tuning- Tuning Execution 学习笔记
Doris runtime waittime , skey and parallelism adjustment
2025-01-24 18:13:27
169
原创 Timeout or no response waiting for NATS JetStream server
当使用jetStream 出现"Timeout or no response waiting for NATS JetStream server" 错误的时候要注意后面的“no response”,尤其是开发测试,要去check server 是否启动了 jet stream。
2025-01-24 08:34:19
443
原创 doris 2.1 Queries Acceleration-Hints 学习笔记
2.3 UnUsed 和 SyntaxError:Both indicate that the hint is not effective. SyntaxError indicates that there is a syntax error in using the hint or the syntax is not supported, and additional information about the unsupported reason will be provided.
2025-01-20 18:18:28
151
原创 mark 一下conductor github
Netflix 关闭conductor 后,后续https://orkes.io/content/ 继续在维护,github地址如下。最新release为3.21.11。
2025-01-12 19:54:26
115
原创 Doris 2.1 Queries Acceleration- High-Concurrency Point Query 学习
Doris 2.1 Queries Acceleration- High-Concurrency Point Query 学习。
2025-01-11 22:28:00
179
原创 Doris 2.1 Queries Acceleration- SQL Cache学习笔记
【代码】Doris 2.1 Queries Acceleration- SQL Cache学习笔记。
2025-01-11 22:04:28
208
原创 Doris 2.1 Queries Acceleration -Materialize View 学习笔记
Doris 2.1 Queries Acceleration -Materialize View 学习笔记。
2025-01-10 22:44:28
225
原创 Doris 学习 Queries Acceleration -Performance Tuning Overview学习笔记
Doris 学习 Queries Acceleration -Performance Tuning Overview学习笔记。
2025-01-10 22:26:46
191
原创 利用apache tika进行文件类型侦测
利用org.apache.tika.Tika最好使用stream模式,如果使用文件模型,默认是通过后缀来侦测的:因此可以通过修改后缀来跳过侦测,而stream更准确。
2025-01-09 08:56:17
692
原创 doris 2.1 Data Queries Common Table Expression & UDF 学习笔记
doris 2.1 Data Queries Common Table Expression & UDF 学习笔记。
2025-01-06 08:31:27
99
原创 Doris 2.1 -Data Queries Window Function 学习笔记
5.2.1 The LAG() method is used to calculate the value of the current line several lines ahead-函数能够提供对当前行之前给定偏移处的行的访问.5.1.1 LAG 和 LEAD 函数适用于值之间的比较。两个函数无需进行自连接,皆可以同时访问表中的多个行,从而可以提高查询处理的速度。5.3 而 LEAD 函数则提供对当前行之后给定偏移处的行的访问。
2025-01-06 08:26:18
242
原创 doris 2.1 temporay partition 测试及总结
主要的场景就是用于分区替换注意导入和查看都需要加上temporary partition注意只能使用 SHOW TEMPORARY PARTITIONS 查看是否有临时分区,使用partition函数看不到注意replace后临时分区不再存在。
2025-01-05 13:43:08
81
原创 doris 2.1 Data Queries-Multi-Dimensional Analytics 学习
d_date为null,第一位值为1,i_category==null的时候,第二位值值1。3.3.2 用二进制表达的grouping,每个column占一位。
2025-01-05 10:50:52
222
原创 Doris 2.1 -Data Queries-Subquery 学习笔记
【代码】Doris 2.1 -Data Queries-Subquery 学习笔记。
2025-01-05 10:45:17
133
hadoop 安全设置guide
2021-08-27
Semantic Software design -语义软件设计一书的资源
2023-11-12
starburst.io 关于datamesh的演进稿
2023-03-11
keda 安装测试资源包
2022-06-07
aws well architect 系列,英文版本
2022-01-26
localjmx_httpserver-0.11.0-jar-with-dependencies.jar
2020-05-01
ali CNCF学习笔记.rar
2020-04-03
error boundaries and suspense.rar
2021-04-28
example-graphql-tools.rar
2020-09-08
[email protected]
2020-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人