随笔分类 - 源码阅读
摘要:原文博客:https://nosae.top/posts/grpc阅读2客户端 启动客户端 客户端的启动也是三部曲: 初始化grpc.ClientConn 创建service对应的Client(比如codegen生成的GreeterClient) 发起rpc调用 第二步比较简单,只是把ClientC
阅读全文
摘要:原文博客:https://nosae.top/posts/nsq阅读1 基于nsq v1.3.0 简介 NSQ是类似kafka、rabbitmq那样的消息队列系统,关于他怎么高性能,怎么好上手这些都不必多说,都是吹逼。这篇主要介绍一下nsq的整个大致架构,建立一个概念,方便后续的源码分析有迹可循。
阅读全文
摘要:原文博客:https://nosae.top/posts/grpc阅读4负载均衡 负载均衡算法 常见的负载均衡算法如下: RoundRobin(轮询) Weight-RoundRobin(加权轮询) 不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低
阅读全文
摘要:原文博客:https://nosae.top/posts/nsq阅读3 基于nsq v1.3.0 执行流程 在第一篇中,主要对nsq中涉及到的主要组件,以及数据流在这些组件中的流动进行了简单说明。在本篇中,我们跟随上一篇最后给出的demo,对应到nsqd的代码中,看一下执行流程是怎么样的。 上篇最后
阅读全文
摘要:原文博客:https://nosae.top/posts/golang-sync包源码阅读 前言 sync包提供了常见的并发编程工具,比如最常见的Mutex、WaitGroup等。这些工具都非常简洁,几乎0学习成本。本篇将从源码角度简单看看这些工具的实现原理,以在未来有需求的时候,理解甚至是手动实现
阅读全文
摘要:原文博客:https://nosae.top/posts/golang-http源码阅读 基于go 1.25 介绍 golang的标准库中的net/http包提供了http相关的各种工具。本篇作为杂记,记录一些其中我觉得有意思的http工具。在探索源码的过程中,也顺便了解一下http这个我们日常总是
阅读全文
摘要:原文博客:https://nosae.top/posts/nsq阅读2 开篇 DiskQueue 是 NSQ 中的持久化组件,承担着将消息存储到磁盘的任务,它以高效、可靠的方式在内存与磁盘之间进行切换。在开始分析 nsq 那几个大件之前,先深入分析下 DiskQueue 的核心设计和实现,解密其背后
阅读全文
摘要:原文博客:https://nosae.top/posts/kitex源码阅读一 基于kitex@v0.11.3 开篇 随着分布式系统的发展,RPC(Remote Procedure Call,远程过程调用)已成为微服务架构中不可或缺的基础组件。RPC 通过让服务之间像调用本地方法一样发起远程调用,极
阅读全文
摘要:原文博客:https://nosae.top/posts/grpc阅读1服务端 gRPC介绍 gRPC 是一种由 Google 开发的高性能远程过程调用(RPC)框架,适用于分布式系统间的通信。它基于 HTTP/2 进行传输,使用 Protocol Buffers 进行序列化,提供跨平台的兼容性。g
阅读全文
摘要:原文博客:https://nosae.top/posts/golang-context详解 前言 本文基于go1.21,不同版本的Context内部实现可能会有细微差别 使用场景 为什么需要Context,首先思考一个场景:客户端去请求某个服务,这个服务依赖于多个可并行执行的下游服务,为了提高这个服
阅读全文
摘要:原文博客:https://nosae.top/posts/informer原理详解 基于 client-go@v0.31.13 informer 介绍 informer 是 k8s 客户端库提供的一个组件,用于 资源变更监听+资源缓存,用于高效感知 k8s 集群中的资源变化。 实际上它就是构建用户控
阅读全文
摘要:原文博客:https://nosae.top/posts/kafka源码阅读14-controller4 基于开源 kafka 2.5 版本。 如无特殊说明,文中代码片段将删除 debug 信息、异常触发、英文注释等代码,以便观看核心代码。 在上一篇中,多次出现了分区/副本状态机的身影,当时我们只知
阅读全文
摘要:原文博客:https://nosae.top/posts/kafka源码阅读13-controller3 基于开源 kafka 2.5 版本。 如无特殊说明,文中代码片段将删除 debug 信息、异常触发、英文注释等代码,以便观看核心代码。 本篇将针对 controller 的核心类——KafkaC
阅读全文
摘要:原文博客:https://nosae.top/posts/kafka源码阅读12-controller2 基于开源 kafka 2.5 版本。 如无特殊说明,文中代码片段将删除 debug 信息、异常触发、英文注释等代码,以便观看核心代码。 读者要注意,本篇要介绍的单线程事件处理器与上一篇的内容并没
阅读全文
摘要:原文博客:https://nosae.top 基于开源 kafka 2.5 版本。 如无特殊说明,文中代码片段将删除 debug 信息、异常触发、英文注释等代码,以便观看核心代码。 总结 参考 极客时间《Kafka核心源码解读》——胡夕
阅读全文
摘要:原文博客:https://nosae.top/posts/kafka源码阅读11-controller 基于开源 kafka 2.5 版本。 如无特殊说明,文中代码片段将删除 debug 信息、异常触发、英文注释等代码,以便观看核心代码。 在本 kafka 系列的源码阅读系列中,之前几篇涵盖了 lo
阅读全文
摘要:原文博客:https://nosae.top/posts/kafka源码阅读10-socketserver3 基于开源 kafka 2.5 版本。 如无特殊说明,文中代码片段将删除 debug 信息、异常触发、英文注释等代码,以便观看核心代码。 基于前几篇的 SocketServer 的内容,我们发
阅读全文
摘要:原文博客:https://nosae.top/posts/kafka源码阅读9-socketserver2 在本系列的kafka源码阅读(6)-SocketServer 之 Processor 与 Acceptor中,主要介绍了负责实现网络编程 reactor 模式的 Acceptor 以及 Pro
阅读全文
摘要:原文博客:https://nosae.top/posts/kafka源码阅读6-socketserver 基于开源 kafka 2.5 版本。 如无特殊说明,文中代码片段将删除 debug 信息、异常触发、英文注释等代码,以便观看核心代码。 上一篇简单过了一下 kafka 网络层中的请求队列,本章开
阅读全文
摘要:原文博客:https://nosae.top/posts/grpc阅读3-服务发现 服务发现概述 平时用浏览器上过网都知道,输入一个网址比如google.com就能访问内容,背后是DNS帮我们将google.com解析成IP地址,最终浏览器才能基于TCP协议,从本地连接到这个服务提供商的IP地址。所
阅读全文

浙公网安备 33010602011771号