go语言
文章平均质量分 93
学习一波go语言
daliucheng
这个作者很懒,什么都没留下…
展开
-
GO-日志分析
官网:https://github.com/uber-go/zapzap在很多开源的库中使用,比如etcddubbo-go等中。原创 2023-09-19 23:47:06 · 845 阅读 · 1 评论 -
Go 异步任务
异步任务在开发中很常见,用来做解耦。本文介绍一下异步队列的实现的几个问题,并且结合三方库实现来分析。带着上面的问题,对比https://github.com/golang-queue/queue的实现,说明一下。原创 2023-08-08 23:54:29 · 710 阅读 · 0 评论 -
Dubbogo 详解
dubbo功能很强大的微服务开发框架,支持多种通信协议,并具有流量治理的功能。dubbo在有了大转变,拥抱了云原生,从哪些方面可以体现呢?原创 2023-07-23 22:09:10 · 1125 阅读 · 0 评论 -
GO web开发
go官方提供了http服务,但它的功能很简单。这里介绍web开发中的一些问题,和web框架(echo)怎么解决这些问题 ,对于具体的echo的使用,可看官网官网:它的特点:关于echo和gin的不同可以看下面的内容对于我来说,有下面几点官网提供了详细的例子和使用说明,具体可以看官网。除此之外,还需要注意未知的错误发生,导致程序发生意外。在开始之前先列举go原生和echo的两种方式。原创 2023-07-01 23:49:26 · 693 阅读 · 0 评论 -
GO 多线程工具使用和分析
Mutex不是一个可重入锁有两种模式,并且两种模式在Mutex运行期间是可以互相切换的。原创 2023-06-28 21:21:59 · 912 阅读 · 0 评论 -
GO channel解析
官方文档:https://go.dev/ref/spec#Channel_types在 Go 语言中,channel 是一种用于在 goroutine 之间进行通信和同步的机制。可以用于在不同的 goroutine 之间传递数据。原创 2023-06-26 15:12:56 · 364 阅读 · 1 评论 -
GO defer详解
关于defer,找到了两篇官方的文章defer是Go语言的一种延迟调用的机制,可以在函数执行完毕之后执行动作。在函数return或者painc(这两种情况下,当前函数执行结束了,这也算函数执行完毕之后)执行。原创 2023-06-20 23:15:34 · 726 阅读 · 1 评论 -
Go-unsafe详解
Go语言的unsafe包提供了一些底层操作的函数,这些函数可以绕过Go语言的类型系统,直接操作内存。虽然这些函数很强大,但是使用不当可能会导致程序崩溃或者产生不可预料的行为。因此,使用unsafe包时必须小心谨慎。此外,他提供了一些方法和类型如下其中Pointer的功能是很强大的,reflect包的功能大多基于它实现,具体可看下面内容。原创 2023-06-18 18:22:37 · 1066 阅读 · 0 评论 -
GO-slice详解
slice(切片)是go中常见和强大的类型,这篇文章不是slice使用简介,从源码角度来分析slice的实现,slice的一些迷惑的使用方式,同时也讲清楚一些问题。官方有slice相关的博客。原创 2023-06-11 13:55:53 · 1522 阅读 · 0 评论 -
GO 性能分析
go提供了内存分析工具,pprof利用它可以看cpu和内存的情况。pprof分为大体分为两个部分数据采集有两种方式:官方官方提供了两种方式这是用来给没http服务来使用给http服务来使用的,提供了路由来方便访问。三方库profile数据分析:官方文档:https://github.com/google/pprof。原创 2023-06-06 01:24:40 · 432 阅读 · 0 评论 -
go调试工具-delve
上面的快速开始介绍了一些常用的使用方式,它的help写的很好,很清晰,关于单个命令就不再这里介绍了。下面主要介绍几个命令debugexectest除此之外还有一个子命令(开始dlv session之后的输入的命令)disassemble-官方文档。原创 2023-06-04 18:45:24 · 1124 阅读 · 0 评论 -
etcd-PageWriter分析
etcd PageWriter分析PageWriter实现了批量保存,分析一下具体实现原创 2023-03-06 23:34:24 · 175 阅读 · 1 评论 -
echo和swagger的结合使用(oapi-codegen使用)
echo和swagger结合使用,oapi-codegen使用介绍原创 2023-02-20 22:54:06 · 1069 阅读 · 0 评论 -
go-cli
在使用flag的时候,一般来说,有两个步骤定义flag。调用解析。正常使用。cobra是一个cli的框架,利用他可以创建强大的现代化的CLI的应用程序并且可以生成命令文件,他包含一下特点支持子命令和命令嵌套。完全的遵从的POSIX的flag。全局和局部的flag。智能建议(app server… did you mean app server?)。自动生成help命令和flag(-h --help)支持命令别名。…原创 2022-11-30 23:26:01 · 689 阅读 · 0 评论 -
go nil介绍
在 Go 中,为了简单和方便,nil 被设计为一个标识符,可以用来表示某些类型的零值。他不是一个不变的值,而是随着不同类型有不同的类型,在日常的编码中,编译器会根据上下文来推导出。原创 2022-11-09 00:34:52 · 1036 阅读 · 0 评论 -
go反射的基本介绍
反射可以在程序运行的时候检查代码的元信息,动态的修改代码行为。开始之前,得先说说go中的类型。原创 2022-08-29 23:40:46 · 355 阅读 · 0 评论 -
go mock使用介绍
go mock使用介绍单元测试需要mock一些东西(比如,RPC的远程调用),这里介绍goMock的使用方式。安装需要安装两个东西gomock的包用来做mock代码库的。仓库:github.com/golang/mock/gomockgo get github.com/golang/mock/gomockgogen工具仓库:github.com/golang/mock/mockgen一个工具,用来帮助生成mock代码的。理论上来说,不用这个工具是可以的,自己用手写。go版原创 2022-05-29 16:16:50 · 3674 阅读 · 3 评论 -
go 实现内网穿透
go实现内网穿透1. 实现思路主要分为服务端和客户端服务端主要有两个线程socket线程,负责和客户端的通信,将http线程的数据通过socket线程传递给客户端,http线程,负责接受http请求,将调用的数据传递给socket线程,等待socket线程的返回go结果。并将结果返回客户端socket线程和服务端建立连接,接受服务端的消息,看是什么方法,是get?还是post?客户端调用本地的映射地址。将调用的结果返回给服务端。1.1 思维导图https:/原创 2020-11-11 23:26:05 · 1557 阅读 · 2 评论 -
go网络编程
go网络编程go网络编程主要是使用net包下面的东西我参考下面的教程https://github.com/daliuchen/build-web-application-with-golang/blob/master/zh/08.1.mdhttps://studygolang.com/articles/203681. 服务端定时发送消息给客户端(时间同步)1.1 时序图1.2 代码服务端package mainimport ( "fmt" "log" "net" "t原创 2020-10-18 21:25:45 · 639 阅读 · 0 评论 -
多线程编码-消费者模式(go )
消费者模式这种模式耳熟能详,在java中和go中都有不同的实现。这种模式就很适合两个速率不一样的组件,一个快,一个慢,中间套一个 消费者模式的组件,就能很好的缓解这种尴尬,大数据的kafka 就是这个作用,从 flume中抽取的日志进kafka,在从kafaka到某个组件,kafka扮演的角色就是缓冲的作用。这个例子模拟的是一个线程读,多个线程更改,。模拟从数据库中读取数据,数据更新之后,在做更新。为了方便,我用内存模拟数据库了这是我写的思维导图可以看看https://www.processon.c原创 2020-10-17 19:13:39 · 190 阅读 · 0 评论 -
多线程编码-发送邮件(go和java 实现)
发送邮件我的一个简单的 思维导图 https://www.processon.com/mindmap/5f8a9fcc07912906db2cd5af简单来讲,就是线程之间数据交互的问题简单的时序图如下:(时序图这个东西就是一个随着时间线往下走的)1. go实现go天生就支持并发,chan就是在协程之间同步数据的。/**go 的主函数的包名必须为 main*/package mainimport ( "log" "strconv" "sync" "time")/**原创 2020-10-17 17:48:08 · 460 阅读 · 0 评论