<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[_____________________________________simanstar____]]></title><description><![CDATA[think different__]]></description><link>https://blog.youkuaiyun.com/simanstar</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; simanstar]]></copyright><item><title><![CDATA[面试题目整理]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/151156309</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/151156309</guid><author>simanstar</author><pubDate>Wed, 03 Sep 2025 20:07:00 +0800</pubDate><description><![CDATA[1. golang。]]></description><category></category></item><item><title><![CDATA[k8s学习]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/149912176</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/149912176</guid><author>simanstar</author><pubDate>Mon, 04 Aug 2025 18:24:42 +0800</pubDate><description><![CDATA[1. 2. 3。]]></description><category></category></item><item><title><![CDATA[Redis学习]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/149882403</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/149882403</guid><author>simanstar</author><pubDate>Sun, 03 Aug 2025 16:42:54 +0800</pubDate><description><![CDATA[2. redis后面版本的更新。学习redis基本原理。1. redis设计与实现。]]></description><category></category></item><item><title><![CDATA[Linux操作系统原理与应用]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/149614898</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/149614898</guid><author>simanstar</author><pubDate>Thu, 24 Jul 2025 20:45:51 +0800</pubDate><description><![CDATA[1. 2.]]></description><category></category></item><item><title><![CDATA[Golang各版本特性]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/149573080</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/149573080</guid><author>simanstar</author><pubDate>Wed, 23 Jul 2025 15:31:25 +0800</pubDate><description><![CDATA[1.2.]]></description><category></category></item><item><title><![CDATA[DDD领域驱动设计]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/149227360</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/149227360</guid><author>simanstar</author><pubDate>Wed, 09 Jul 2025 16:26:46 +0800</pubDate><description><![CDATA[1. 2.]]></description><category></category></item><item><title><![CDATA[设计模式文章]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/149178981</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/149178981</guid><author>simanstar</author><pubDate>Mon, 07 Jul 2025 18:30:20 +0800</pubDate><description><![CDATA[1.]]></description><category></category></item><item><title><![CDATA[Zookeeper文章记录]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/149052135</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/149052135</guid><author>simanstar</author><pubDate>Tue, 01 Jul 2025 18:04:45 +0800</pubDate><description><![CDATA[1.2.]]></description><category></category></item><item><title><![CDATA[分布式原理与协议]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/148933669</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/148933669</guid><author>simanstar</author><pubDate>Thu, 26 Jun 2025 21:22:12 +0800</pubDate><description><![CDATA[1. 2.3.]]></description><category></category></item><item><title><![CDATA[Golang WaitGroup 原理深度剖析]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/147316667</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/147316667</guid><author>simanstar</author><pubDate>Fri, 18 Apr 2025 01:00:47 +0800</pubDate><description><![CDATA[Waitgroup 虽然只有 100 行左右的代码。作为语言的内置库，我们从中可以看出作者对每个细节的极致打磨，非常精细的针对场景优化性能，这也给我们写程序带来了很多启发。]]></description><category></category></item><item><title><![CDATA[深度分析 Golang sync.Pool 底层原理]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/147290090</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/147290090</guid><author>simanstar</author><pubDate>Thu, 17 Apr 2025 01:35:23 +0800</pubDate><description><![CDATA[sync.Pool 是 Golang 内置的对象池技术，可用于缓存临时对象，以缓解因频繁建立临时对象带来的性能损耗以及对 GC 带来的压力。在许多知名的开源库中都可以看到 sync.Pool 的大量使用。例如，HTTP 框架 Gin 用 sync.Pool 来复用每个请求都会创建的对象。在 grpc-Go、kubernetes 等也都可以看到对 sync.Pool 的身影。但需要注意的是，sync.Pool 缓存的对象随时可能被，因此不能将 sync.Pool 用于存储持久对象的场景。]]></description><category></category></item><item><title><![CDATA[Golang三色标记混合写屏障GC模式全分析]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/147262046</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/147262046</guid><author>simanstar</author><pubDate>Wed, 16 Apr 2025 00:56:53 +0800</pubDate><description><![CDATA[以上便是Golang的GC全部的标记-清除逻辑及场景演示全过程。GoV1.3- 普通标记清除法，整体过程需要启动STW，效率极低。GoV1.5- 三色标记法， 堆空间启动写屏障，栈空间不启动，全部扫描之后，需要重新扫描一次栈(需要STW)，效率普通GoV1.8-三色标记法，混合写屏障机制， 栈空间不启动，堆空间启动。整个过程几乎不需要STW，效率较高。5、Golang三色标记混合写屏障GC模式全分析 · 语雀。]]></description><category></category></item><item><title><![CDATA[Golang的协程调度器原理及GMP设计思想]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/147200195</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/147200195</guid><author>simanstar</author><pubDate>Mon, 14 Apr 2025 01:35:29 +0800</pubDate><description><![CDATA[本节为重点章节
本章节含视频版:视频链接地址：Golang深入理解GPM模型_哔哩哔哩_bilibili我们知道，一切的软件都是跑在操作系统上，真正用来干活(计算)的是CPU。早期的操作系统每个程序就是一个进程，直到一个程序运行完，才能进行下一个进程，就是“单进程时代”一切的程序只能串行发生。早期的单进程操作系统，面临2个问题：1.单一的执行流程，计算机只能一个任务一个任务处理。2.进程阻塞所带来的CPU时间浪费。那么能不能有多个进程来宏观一起来执行多个任务呢？后来操作系统就具有了最早的并发能力：多进程并发]]></description><category></category></item><item><title><![CDATA[一站式Golang内存管理洗髓经]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/147185069</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/147185069</guid><author>simanstar</author><pubDate>Sun, 13 Apr 2025 00:44:19 +0800</pubDate><description><![CDATA[Golang的内存管理及设计也是开发者需要了解的领域之一，要理解 Go 语言的内存管理，就必须先理解操作系统以及机器硬件是如何管理内存的。因为 Go 语言的内部机制是建立在这个基础之上的，它的设计，本质上就是尽可能的会发挥操作系统层面的优势，而避开导致低效情况。本章节会围绕以下六个话题逐步展开。（1）何为内存。（2）内存为什么需要管理。（3）操作系统是如何管理内存的。（4）如何用Golang自己实现一个内存管理模型。（5）Golang内存管理之魂：TCMalloc。]]></description><category></category></item><item><title><![CDATA[架构设计总结]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/123782723</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/123782723</guid><author>simanstar</author><pubDate>Sun, 27 Mar 2022 21:55:21 +0800</pubDate><description><![CDATA[1.常见的架构设计面试题总结 - 知乎

2.一口气说出9种分布式ID生成方式，面试官有点懵了 - 知乎

3.架构设计面试题 （史上最全、持续更新、吐血推荐）_架构师-尼恩的博客-优快云博客_架构设计面试题
...]]></description><category></category></item><item><title><![CDATA[kafka相关博客]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/123540870</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/123540870</guid><author>simanstar</author><pubDate>Thu, 17 Mar 2022 02:42:34 +0800</pubDate><description><![CDATA[kafka必知必会系列原始博客：Kafka最全面试题整理|划重点要考_朱小厮的博客-优快云博客
]]></description><category></category></item><item><title><![CDATA[Kafka消费组重平衡的流程]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/123539049</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/123539049</guid><author>simanstar</author><pubDate>Wed, 16 Mar 2022 22:59:10 +0800</pubDate><description><![CDATA[前面说过了重平衡，它的作用是让组内所有的消费者实例就消费哪些主题分区达成一致。重平衡需要借助KafkaBroker 端的 Coordinator 组件，在Coordinator 的帮助下完成整个消费者组的分区重分配。在给我们带来的便利和一些问题。这篇来分析一下重平衡的整个流程。1.触发条件
大体的触发条件有下面三个


1. 组成员数量发生变化。
2. 订阅主题数量发生变化。
3. 订阅主题的分区数发生变化。


1
	2
	3
上一篇文章也提到过这些。一般对于生产环境来说订阅主题数量发生变化和订阅分区..]]></description><category></category></item><item><title><![CDATA[Golang sync.Mutex源码分析]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/122749300</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/122749300</guid><author>simanstar</author><pubDate>Sun, 30 Jan 2022 00:07:00 +0800</pubDate><description><![CDATA[sync.Mutex是一个不可重入的排他锁。 这点和Java不同，golang里面的排它锁是不可重入的。当一个 goroutine 获得了这个锁的拥有权后， 其它请求锁的 goroutine 就会阻塞在 Lock 方法的调用上，直到锁被释放。

数据结构与状态机

　　sync.Mutex由两个字段 state 和 sema 组成。其中 state 表示当前互斥锁的状态，而 sema 是用于控制锁状态的信号量。


type Mutex struct {
    state int32
    sem...]]></description><category></category></item><item><title><![CDATA[sync.map原理分析]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/122748867</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/122748867</guid><author>simanstar</author><pubDate>Sat, 29 Jan 2022 23:13:59 +0800</pubDate><description><![CDATA[一、疑惑开篇#

有了map为什么还要搞个sync.map 呢？它们之间有什么区别？
答：重要的一点是，map并发不是安全的。


在Go 1.6之前， 内置的map类型是部分goroutine安全的，并发的读没有问题，并发的写可能有问题。自go 1.6之后， 并发地读写map会报错，这在一些知名的开源库中都存在这个问题，所以go 1.9之前的解决方案是额外绑定一个锁，封装成一个新的struct或者单独使用锁都可以。



go version go1.13.9 windows/amd64


测试一波#
]]></description><category></category></item><item><title><![CDATA[深度解密Go语言之unsafe]]></title><link>https://blog.youkuaiyun.com/simanstar/article/details/122732504</link><guid>https://blog.youkuaiyun.com/simanstar/article/details/122732504</guid><author>simanstar</author><pubDate>Fri, 28 Jan 2022 15:50:37 +0800</pubDate><description><![CDATA[目录

指针类型
	什么是 unsafe
	为什么有 unsafe
	unsafe 实现原理
	unsafe 如何使用
	获取 slice 长度
		获取 map 长度
		map 源码中的应用
		Offsetof 获取成员偏移量
		string 和 slice 的相互转换
	
	总结
	参考资料
指针类型

在正式介绍 unsafe 包之前，需要着重介绍 Go 语言中的指针类型。

我本科开始学编程的时候，第一门语言就是 C。之后又陆续学过 C++，Java，Python，这些语言都挺强大的，但是没了]]></description><category></category></item></channel></rss>