- 博客(13)
- 收藏
- 关注
原创 kafka 消费并行度提升
本文介绍 Kafka 消费的一个例子,以及如何优化提升消费的并行度。例子Kafka 消费一般使用github.com/Shopify/sarama包实现,现已支持消费组消费。下面是一个消费组消费的例子:funcconsume(){//定义一个消费者,并开始消费consumer:=Consumer{}ConsumerHighLevel.Consume(ctx...
2023-03-29 18:03:50 1170
原创 Golang 一致性Hash算法实现
❝一致性 hash 算法是在分布式应用中使用广泛。其主要作用是为了解决服务中的热点问题。例如在分布式数据存储,比如Redis缓存集群、有状态的任务作业等,通过其解决请求的热点问题,并且可...
2020-07-17 19:00:00 622
原创 Golang 限流器的使用和实现
❝限流器是服务中非常重要的一个组件,在网关设计、微服务、以及普通的后台应用中都比较常见。它可以限制访问服务的频次和速率,防止服务过载,被刷爆。❞限流器的算法比较多,常见的比如令牌桶算法、...
2020-06-26 19:00:00 717
原创 Go Web 框架 Gin 路由的学习
Gin 是目前应用比较广泛的Golang web 框架。目前,Github Star 数已经达到了3.8w. 框架的实现非常简单,可定制性非常强,性能也比较好,深受golang开发者的喜...
2020-06-05 19:00:00 270
原创 Golang net/rpc 包的深度解读和学习
Golang 提供了一个开箱即用的RPC服务,实现方式简约而不简单。本文对net/rpc 包做深度解读和学习实战。RPC 简单介绍远程过程调用 (Remote Procedure Cal...
2020-05-29 19:00:00 523 1
原创 Golang Http 学习(二) Http Client 的实现
golang http client 的实现众所周知,在golang 中实现的 http client 是自带连接池的。当我们做 http 请求时,极有可能就是复用了之前建立的 tcp ...
2020-05-22 18:59:06 3491
原创 Golang Http 学习(一) Http Server 的实现
Http 服务是基于 Tcp 的应用层的实现,也是最常见的网络协议之一。go 语言提供了丰富的http协议的实现包 net/http 包。http 是典型的C/S 架构(也是B/S架构)...
2020-05-13 19:00:00 718
原创 Golang net 包学习和实战
golang 的 net 包,相关接口和结构比较多,今天做个简单的梳理。网络模型 在总结 net 包之前,还需要温习模糊的网络模型知识。下图是大学课本上的网络...
2020-05-07 19:00:00 709
原创 Golang 容器的学习与实践
Golang 提供了几个简单的容器供我们使用,本文在介绍几种 Golang 容器的基础上,实现一个基于 Golang 容器的LRU算法。容器介绍Golang 容器位于 container...
2020-05-03 20:00:00 184
原创 Golang Context 原理与实战
本文让我们一起来学习 golang Context 的使用和标准库中的Context的实现。golang context 包一开始只是 Google 内部使用的一个 Golang 包,...
2020-05-01 19:00:00 245
原创 golang 协程追踪术
简介对于绝大部分服务,跟踪刨析是用不到的。但是如果遇到了下面问题,可以不妨一试:怀疑哪个协程慢了系统调用有问题协程调度问题 (chan 交互、互斥锁、信号量等)怀疑是 gc (Garbage-Collect) 影响了服务性能网络阻塞等等坦白的讲,通过跟踪刨析可以看到每个协程在某一时刻在干什么。做跟踪刨析,首先需要获取trace 数据。可以通过代码中插入trace, 或者上节提...
2020-04-17 10:42:25 484
原创 Golang 性能测试(2) 性能分析
本文介绍 golang 如何做性能分析。对服务做了基准性能测试后,如果服务出现问题,可以通过性能分析工具,查出消耗资源的瓶颈,并做针对性的性能优化。Golang 语言也为我们提供了方便的性能分析工具pprof,方便我们做必要的服务优化。pprof 可以做cpu分析,统计所有调用方法执行的时间片(通过采样); 可以查看内存分配,找到是否有内存泄漏,哪里泄露了(调用栈);还可以查看Block、事...
2020-04-13 10:10:20 290
原创 golang 性能测试 (1)
本文介绍golang 如何做基准性能测试。编写完代码除了跑必要的单元测试外,还需要考虑代码跑起来的性能如何。性能的衡量其实就是程序运行时候进程的内存分配,CPU消耗情况。golang 语言在提供了功能测试的基础上,提供了丰富的性能测试功能。SHOW CODE首先,从一个例子来讲起。 随便写一个简单的快速排序,然后和系统自带的排序做一个性能比较。如下为简版快排的代码:package b...
2020-04-13 10:00:32 138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人