Find me on

Writing

深入解析kafka高性能背后的实现原理

在探究 Kafka 核心知识之前,我们先思考一个问题:什么场景会促使我们使用 Kafka? 说到这里,我们头脑中或多或少会蹦出异步解耦和削峰填谷等字样,是的,这就是 Kafka 最重要的落地场景。 异步解耦:同步调用转换成异步消息通知,实现生产者和消费者的解耦。想象一个场景,在商品交易时,在订单创建

golang性能优化

1.拼接字符串 优先使用strings.Builder拼接,不要使用+ 或者 +=, 使用+操作符进行拼接时,会对字符串进行遍历,计算并开辟一个新的空间来存储原来的两个字符串。 旧的字符串会被垃圾回收,导致大量的内存分配和 CPU 开销。

如何优雅的关闭channel

有一条广泛流传的关闭 channel 的原则: don’t close a channel from the receiver side and don’t close a channel if the channel has multiple concurrent senders. 不要从一个 r

docker运行中涉及到哪些系统调用

在Linux系统中,系统调用(System Calls)是用户空间程序与内核进行交互的接口,允许程序请求内核执行特权操作,如文件读写、进程控制、内存管理和网络通信等。常见的系统调用包括: 进程管理: fork()、execve()、waitpid() 等。 文件操作: open()、read()、w

go gc总结

1.3之前的标记清除算法 第一步,暂停程序业务逻辑, 分类出可达和不可达的对象,然后做上标记。 第二步, 开始标记,程序找出它所有可达的对象,并做上标记 第三步, 标记完了之后,然后开始清除未标记的对象 第四步, 停止暂停,让程序继续跑。然后循环重复这个过程,直到process程序生命周期结束。 标

定制化go的error

Go语言的Error处理一直被人吐槽,吐槽的点除了一个接一个的 if err != nil 的判断外,还有人说Go的错误太原始不能像其他语言那样在抛出异常的时候的时候传一个Casue Exception 把导致异常的整个原因链串起来。 第一点确实是事实,但是写习惯了也能接受,而且对新手友好。第二点属

Bitmap和布隆过滤器

Bitmap Redis中的Bitmap(位图)是一种较为特殊数据类型,它以最小单位bit来存储数据,我们知道一个字节由 8个 bit 组成,和传统数据结构用字节存储相比,这使得它在处理大量二值状态(true、false 或 0、1等只有两种状态)数据时具有极高的空间效率。不过,它不是一种全新的数据

xin

x新建标题阿达阿萨德啊asdsd啊撒的

golang的参数传递

一、总体概述 在 Go 语言中,所有的参数传递都是值传递。也就是说,当我们将一个变量作为参数传递给函数或方法时,实际上是将该变量的副本传递过去。 然而,某些类型的变量在复制时会复制其引用(指针),这使得在函数中对这些变量的修改会影响到原始变量。这种行为类似于引用传递,但实际上仍然是值传递。 二、值类

nginx配置https

准备证书: 确保您已经拥有域名的 SSL 证书文件(一般包含 .crt 和 .key 文件)。 上传证书: 将证书文件上传到服务器的某个目录(例如 /etc/nginx/ssl/),并确保 Nginx 对这些文件有读取权限。 修改 Nginx 配置文件: 打开 Nginx 配置文件(通常在 /etc