/BlogsA minimal, responsive, and powerful Jekyll theme for presenting professional writing. 2026-03-22T11:59:49+08:00 CompetitiveLin / Jekyll © 2026 CompetitiveLin /assets/img/favicons/favicon.ico /assets/img/favicons/favicon-96x96.png Zookeeper 学习2024-08-11T09:56:08+08:00 2024-09-24T09:23:03+08:00 /posts/zookeeper/ CompetitiveLin Zookeeper 是什么 Zookeeper 是一个分布式的协调服务,可以实现 统一配置管理。比如现在有A.yml,B.yml,C.yml配置文件,里面有一些公共的配置。将这些公共配置信息放到ZK中,修改ZK的信息,会通知A,B,C配置文件。 统一命名服务。节点存储ip地址,只需要访问Znode节点就可以获取这些ip地址。 统一集群管理。Kafka 的集群管理基于Zookeeper。 统一服务管理。Dubbo 的服务发现基于Zookeeper。 分布式锁。通过在持久节点下建立临时顺序节点,可以保证锁的有序,监听机制保障锁传递的高效。 原理 文件系统 数据结构 文件系统类似的,整体上可以看成一棵树,每个节点称作一个 ZNode,每个 ZNode 都可以通过其路径得到唯一标识。默认只能最多存储 1MB 的数据 但与文件系统不同,每一个 ZNode... Go 语言学习2024-02-27T14:25:08+08:00 2024-11-29T13:42:43+08:00 /posts/go/ CompetitiveLin 基本语法 变量初始化 var s string = "string" var s = "string" s := "string" 二维切片初始化 slice1 := make([][]bool, m) for i := range slice1 { slice1[i] = make([]bool, n) } 变量自增 只有后缀自增或自减,并且必须单独一行(除了在range语句中)。 条件判断语句中的初始变量可以在布尔表达式里,并且不能使用0/1作为判断条件。 if cond := true; cond { fmt.Println() } 随机数 生成 [0, 99] 的随机数 rand.Seed(time.Now().UnixNano()) r := rand.Intn(100) fmt.Println(r) 栈/队列 Go 语言中的... Note from Work2023-09-07T10:41:22+08:00 2025-04-20T20:46:20+08:00 /posts/note-from-work/ CompetitiveLin Grafana 的数据显示会五分钟自动补全。当向 Prometheus 中插入某个时间戳的值时,其值会延续五分钟。 K8S 中的 Sidecar 模式:通常情况下一个 Pod 只包含一个容器,但是 Sidecar 模式是指为主容器提供额外功能(例如监控) 从而将其他容器加入到同一个 Pod 中。再例如 Istio 实现 Sidecar 自动注入。 Federated cluster,联邦集群 限流算法:漏桶和令牌桶算法,漏桶算法处理请求的速度固定,突发请求过多时会丢弃;令牌桶算法除了限制数据的平均传输速率外,还要求允许某种程度的突发传输。 常见 HTTP 状态码:2XX,成功响应;3XX,重定向消息;4XX,客户端错误响应;5XX,服务端错误响应。 请求分为四部分:请求... Kafka vs RocketMQ2023-08-25T17:10:22+08:00 2024-10-19T12:43:41+08:00 /posts/kafka-vs-rocketmq/ CompetitiveLin 基本概念 RocketMQ 由 Producer, Brocker, Consumer 组成 Producer 负责生产消息 Consumer 负责消费消息 Broker 负责存储消息,每一个 Broker 对应一台服务器但可以存储多个 Topic 的消息,每个 Topic 的消息也分片存储在不同的 Broker 里。 Topic 是逻辑概念,队列(Kafka 中叫分区)是物理概念。每个主题包含多个消息,每条消息只属于一个主题。一个 Producer 可以同时发送多种 Topic 的消息,而一个 Consumer 只能订阅一个 Topic 的消息。Tag 类似于子主题。 MessageQueue用于存储消息的物理地址,每个Topic中的消息地址存储于多个MessageQueue,是... SpringBoot2023-08-10T15:08:32+08:00 2024-12-04T18:22:37+08:00 /posts/springboot/ CompetitiveLin Spring, SpringBoot, Spring MVC 区别: Spring框架(Framework)是最流行的Java应用程序开发框架。 Spring框架的主要功能是依赖项注入或控制反转(IoC)。 Spring MVC是Spring的一个MVC框架,包含前端视图,文件配置等。XML和config配置比较复杂。 Spring Boot 是为简化Spring配置的快速开发整合包,允许构建具有最少配置或零配置的独立应用程序。 SpringBoot项目启动流程: 总体来说分两部分,先初始化 SpringApplication,再运行 SpringApplication。 运行 SpringApplication 又分为: 1、获取并启动监听器 2、根据监听器和参数来创建运行环境 3、准备 Banner 打印器 4、创建 Spring 容器 5、Sprin...