<feed xmlns="http://www.w3.org/2005/Atom"> <id>/</id><title>Blogs</title><subtitle>A minimal, responsive, and powerful Jekyll theme for presenting professional writing.</subtitle> <updated>2026-03-22T11:59:49+08:00</updated> <author> <name>CompetitiveLin</name> <uri>/</uri> </author><link rel="self" type="application/atom+xml" href="/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 CompetitiveLin </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Zookeeper 学习</title><link href="/posts/zookeeper/" rel="alternate" type="text/html" title="Zookeeper 学习" /><published>2024-08-11T09:56:08+08:00</published> <updated>2024-09-24T09:23:03+08:00</updated> <id>/posts/zookeeper/</id> <content src="/posts/zookeeper/" /> <author> <name>CompetitiveLin</name> </author> <category term="Backend" /> <category term="Zookeeper" /> <summary> Zookeeper 是什么 Zookeeper 是一个分布式的协调服务，可以实现 统一配置管理。比如现在有A.yml，B.yml，C.yml配置文件，里面有一些公共的配置。将这些公共配置信息放到ZK中，修改ZK的信息，会通知A，B，C配置文件。 统一命名服务。节点存储ip地址，只需要访问Znode节点就可以获取这些ip地址。 统一集群管理。Kafka 的集群管理基于Zookeeper。 统一服务管理。Dubbo 的服务发现基于Zookeeper。 分布式锁。通过在持久节点下建立临时顺序节点，可以保证锁的有序，监听机制保障锁传递的高效。 原理 文件系统 数据结构 文件系统类似的，整体上可以看成一棵树，每个节点称作一个 ZNode，每个 ZNode 都可以通过其路径得到唯一标识。默认只能最多存储 1MB 的数据 但与文件系统不同，每一个 ZNode... </summary> </entry> <entry><title>Go 语言学习</title><link href="/posts/go/" rel="alternate" type="text/html" title="Go 语言学习" /><published>2024-02-27T14:25:08+08:00</published> <updated>2024-11-29T13:42:43+08:00</updated> <id>/posts/go/</id> <content src="/posts/go/" /> <author> <name>CompetitiveLin</name> </author> <category term="Backend" /> <category term="Go" /> <summary> 基本语法 变量初始化 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 语言中的... </summary> </entry> <entry><title>Note from Work</title><link href="/posts/note-from-work/" rel="alternate" type="text/html" title="Note from Work" /><published>2023-09-07T10:41:22+08:00</published> <updated>2025-04-20T20:46:20+08:00</updated> <id>/posts/note-from-work/</id> <content src="/posts/note-from-work/" /> <author> <name>CompetitiveLin</name> </author> <summary> Grafana 的数据显示会五分钟自动补全。当向 Prometheus 中插入某个时间戳的值时，其值会延续五分钟。 K8S 中的 Sidecar 模式：通常情况下一个 Pod 只包含一个容器，但是 Sidecar 模式是指为主容器提供额外功能（例如监控） 从而将其他容器加入到同一个 Pod 中。再例如 Istio 实现 Sidecar 自动注入。 Federated cluster，联邦集群 限流算法：漏桶和令牌桶算法，漏桶算法处理请求的速度固定，突发请求过多时会丢弃；令牌桶算法除了限制数据的平均传输速率外，还要求允许某种程度的突发传输。 常见 HTTP 状态码：2XX，成功响应；3XX，重定向消息；4XX，客户端错误响应；5XX，服务端错误响应。 请求分为四部分：请求... </summary> </entry> <entry><title>Kafka vs RocketMQ</title><link href="/posts/kafka-vs-rocketmq/" rel="alternate" type="text/html" title="Kafka vs RocketMQ" /><published>2023-08-25T17:10:22+08:00</published> <updated>2024-10-19T12:43:41+08:00</updated> <id>/posts/kafka-vs-rocketmq/</id> <content src="/posts/kafka-vs-rocketmq/" /> <author> <name>CompetitiveLin</name> </author> <summary> 基本概念 RocketMQ 由 Producer, Brocker, Consumer 组成 Producer 负责生产消息 Consumer 负责消费消息 Broker 负责存储消息，每一个 Broker 对应一台服务器但可以存储多个 Topic 的消息，每个 Topic 的消息也分片存储在不同的 Broker 里。 Topic 是逻辑概念，队列（Kafka 中叫分区）是物理概念。每个主题包含多个消息，每条消息只属于一个主题。一个 Producer 可以同时发送多种 Topic 的消息，而一个 Consumer 只能订阅一个 Topic 的消息。Tag 类似于子主题。 MessageQueue用于存储消息的物理地址，每个Topic中的消息地址存储于多个MessageQueue，是... </summary> </entry> <entry><title>SpringBoot</title><link href="/posts/springboot/" rel="alternate" type="text/html" title="SpringBoot" /><published>2023-08-10T15:08:32+08:00</published> <updated>2024-12-04T18:22:37+08:00</updated> <id>/posts/springboot/</id> <content src="/posts/springboot/" /> <author> <name>CompetitiveLin</name> </author> <summary> 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... </summary> </entry> </feed>
