自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 kafka 消费并行度提升

本文介绍 Kafka 消费的一个例子,以及如何优化提升消费的并行度。例子Kafka 消费一般使用github.com/Shopify/sarama包实现,现已支持消费组消费。下面是一个消费组消费的例子:funcconsume(){//定义一个消费者,并开始消费consumer:=Consumer{}ConsumerHighLevel.Consume(ctx...

2023-03-29 18:03:50 894

原创 Golang 一致性Hash算法实现

❝一致性 hash 算法是在分布式应用中使用广泛。其主要作用是为了解决服务中的热点问题。例如在分布式数据存储,比如Redis缓存集群、有状态的任务作业等,通过其解决请求的热点问题,并且可...

2020-07-17 19:00:00 582

原创 Golang 限流器的使用和实现

❝限流器是服务中非常重要的一个组件,在网关设计、微服务、以及普通的后台应用中都比较常见。它可以限制访问服务的频次和速率,防止服务过载,被刷爆。❞限流器的算法比较多,常见的比如令牌桶算法、...

2020-06-26 19:00:00 652

原创 Go Web 框架 Gin 路由的学习

Gin 是目前应用比较广泛的Golang web 框架。目前,Github Star 数已经达到了3.8w. 框架的实现非常简单,可定制性非常强,性能也比较好,深受golang开发者的喜...

2020-06-05 19:00:00 237

原创 Golang net/rpc 包的深度解读和学习

Golang 提供了一个开箱即用的RPC服务,实现方式简约而不简单。本文对net/rpc 包做深度解读和学习实战。RPC 简单介绍远程过程调用 (Remote Procedure Cal...

2020-05-29 19:00:00 467 1

原创 Golang Http 学习(二) Http Client 的实现

golang http client 的实现众所周知,在golang 中实现的 http client 是自带连接池的。当我们做 http 请求时,极有可能就是复用了之前建立的 tcp ...

2020-05-22 18:59:06 3395

原创 Golang Http 学习(一) Http Server 的实现

Http 服务是基于 Tcp 的应用层的实现,也是最常见的网络协议之一。go 语言提供了丰富的http协议的实现包 net/http 包。http 是典型的C/S 架构(也是B/S架构)...

2020-05-13 19:00:00 632

原创 Golang net 包学习和实战

golang 的 net 包,相关接口和结构比较多,今天做个简单的梳理。网络模型 在总结 net 包之前,还需要温习模糊的网络模型知识。下图是大学课本上的网络...

2020-05-07 19:00:00 643

原创 Golang 容器的学习与实践

Golang 提供了几个简单的容器供我们使用,本文在介绍几种 Golang 容器的基础上,实现一个基于 Golang 容器的LRU算法。容器介绍Golang 容器位于 container...

2020-05-03 20:00:00 169

原创 Golang Context 原理与实战

本文让我们一起来学习 golang Context 的使用和标准库中的Context的实现。golang context 包一开始只是 Google 内部使用的一个 Golang 包,...

2020-05-01 19:00:00 220

原创 golang 协程追踪术

简介对于绝大部分服务,跟踪刨析是用不到的。但是如果遇到了下面问题,可以不妨一试:怀疑哪个协程慢了系统调用有问题协程调度问题 (chan 交互、互斥锁、信号量等)怀疑是 gc (Garbage-Collect) 影响了服务性能网络阻塞等等坦白的讲,通过跟踪刨析可以看到每个协程在某一时刻在干什么。做跟踪刨析,首先需要获取trace 数据。可以通过代码中插入trace, 或者上节提...

2020-04-17 10:42:25 423

原创 Golang 性能测试(2) 性能分析

本文介绍 golang 如何做性能分析。对服务做了基准性能测试后,如果服务出现问题,可以通过性能分析工具,查出消耗资源的瓶颈,并做针对性的性能优化。Golang 语言也为我们提供了方便的性能分析工具pprof,方便我们做必要的服务优化。pprof 可以做cpu分析,统计所有调用方法执行的时间片(通过采样); 可以查看内存分配,找到是否有内存泄漏,哪里泄露了(调用栈);还可以查看Block、事...

2020-04-13 10:10:20 251

原创 golang 性能测试 (1)

本文介绍golang 如何做基准性能测试。编写完代码除了跑必要的单元测试外,还需要考虑代码跑起来的性能如何。性能的衡量其实就是程序运行时候进程的内存分配,CPU消耗情况。golang 语言在提供了功能测试的基础上,提供了丰富的性能测试功能。SHOW CODE首先,从一个例子来讲起。 随便写一个简单的快速排序,然后和系统自带的排序做一个性能比较。如下为简版快排的代码:package b...

2020-04-13 10:00:32 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除