随笔分类 -  [01]Golang

摘要:## 什么是重试 如果服务出现了错误,主要是网络,服务器出现了短暂异常的时候,该怎么办? 我们都会人工或者自动的重新连接服务试试,看服务是否恢复可用了。 这种重新进行连接服务的一种方式就是重试。如果是在微服务里,应该属于微服务治理的范畴。 重试是处理网络服务出现暂时不可用的一种方法。 ## 怎么进行 阅读全文
posted @ 2023-07-28 17:03 九卷 阅读(693) 评论(0) 推荐(0) 编辑
摘要:Go 中 time.After 可能导致的内存泄露 ## 一、Time 包中定时器函数 > go v1.20.4 ### 定时函数:NewTicker,NewTimer 和 time.After 介绍 time 包中有 3 个比较常用的定时函数:NewTicker,NewTimer 和 time.A 阅读全文
posted @ 2023-05-04 00:17 九卷 阅读(2476) 评论(7) 推荐(3) 编辑
摘要:Go 日志记录库:uber-go 的日志操作库 zap 使用 一、简介 zap 是 uber 开源的一个高性能,结构化,分级记录的日志记录包。 go1.20.2 zap v1.24.0 zap的特性 高性能:zap 对日志输出进行了多项优化以提高它的性能 日志分级:有 Debug,Info,Warn 阅读全文
posted @ 2023-04-11 00:28 九卷 阅读(12345) 评论(1) 推荐(1) 编辑
摘要:sync包下:Once,Pool,Cond 一、sync.Once 执行一次 Once 简介 sync.Once 是 Go 提供的让函数只执行一次的一种实现。 如果 once.Do(f) 被调用多次,只有第一次调用会调用 f。 常用场景: 用于单例模式,比如初始化数据库配置 Once 提供的方法: 阅读全文
posted @ 2023-03-23 19:03 九卷 阅读(306) 评论(0) 推荐(0) 编辑
摘要:一、sync 包简介 在并发编程中,为了解决竞争条件问题,Go 语言提供了 sync 标准包,它提供了基本的同步原语,例如互斥锁、读写锁等。 sync 包使用建议: 除了 Once 和 WaitGroup 类型之外,大多数类型旨在供低级库程序使用。更高级别的同步最好用 channel 通道和通信来完 阅读全文
posted @ 2023-03-23 19:02 九卷 阅读(342) 评论(0) 推荐(0) 编辑
摘要:一、简介 channel 不仅可以用于 goroutine 间进行安全通信,还可以用于同步内存访问。 而且 Go 社区强烈推荐使用 channel 通道实现 goroutine 之间的通信, 不要通过共享内存来通信,而应该通过通信来共享内存。 Go 从语言层面保证了同一时间只有一个 goroutin 阅读全文
posted @ 2023-03-23 19:01 九卷 阅读(131) 评论(0) 推荐(0) 编辑
摘要:Redis 高级数据结构操作和其它特性 第一篇:go-redis使用,介绍Redis基本数据结构和其他特性,以及 go-redis 连接到Redis https://www.cnblogs.com/jiujuan/p/17207166.html 第二篇:go-redis使用,Redis5种基本数据类 阅读全文
posted @ 2023-03-18 20:48 九卷 阅读(1368) 评论(0) 推荐(0) 编辑
摘要:第一篇:go-redis使用,介绍Redis基本数据结构和其他特性,以及 go-redis 连接到Redis https://www.cnblogs.com/jiujuan/p/17207166.html 第二篇:go-redis使用,Redis5种基本数据类型操作(本篇) https://www. 阅读全文
posted @ 2023-03-14 15:33 九卷 阅读(2521) 评论(0) 推荐(0) 编辑
摘要:Gin Web 框架基础学习系列目录 01-quickstart 02-parameter 03-route 04-middleware 05-log 06-logrus 07-bind 08-validate 09-restful 10-blog 11-jwt 12-shutdown/gracef 阅读全文
posted @ 2023-03-13 14:05 九卷 阅读(277) 评论(0) 推荐(0) 编辑
摘要:第一篇:go-redis使用,介绍Redis基本数据结构和其他特性,以及 go-redis 连接到Redis(本篇) https://www.cnblogs.com/jiujuan/p/17207166.html 第二篇:go-redis使用,Redis5种基本数据类型操作 https://www. 阅读全文
posted @ 2023-03-11 22:07 九卷 阅读(3296) 评论(0) 推荐(0) 编辑
摘要:## 一、Consul 简介 ### consul 是什么 HashiCorp Consul 是一种服务网络解决方案,它能够管理服务之间以及跨本地和多云环境和运行时的安全网络连接。Consul 它能提供服务发现、服务网格、流量管理和自动更新等功能。 Conslul 提供了一个控制平面,使得你能够注册 阅读全文
posted @ 2023-03-08 21:43 九卷 阅读(1417) 评论(0) 推荐(0) 编辑
摘要:一、进程和线程 对操作系统进程和线程以及协程的了解,可以看看我前面的文章: 对进程、线程和协程的理解以及它们的区别:https://www.cnblogs.com/jiujuan/p/16193142.html。 这篇文章我用了多张图片,尽可能清楚表达对它们的理解和区别。 还有一篇 Linux 进程 阅读全文
posted @ 2023-02-24 15:17 九卷 阅读(1513) 评论(0) 推荐(0) 编辑
摘要:一、什么是反射 在计算机科学中,反射(英语:reflection)是指计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。(来自wikipedia) 反射是程序审查自身结构的能力,并能对程序做出一定的 阅读全文
posted @ 2023-02-21 22:15 九卷 阅读(4613) 评论(0) 推荐(0) 编辑
摘要:一、kratos设计理念 这里主要讲解 kratos v2 的设计理念。 kratos 框架制定接口规范,然后通过插件来实现具体需求,实现自由定制、可插拔的微服务框架。 我们既可以选择 kratos 框架提供的插件,也可以自己定制实现相关插件,实现高度定制化。 也能整合相关 Go 的第三方工具。构建 阅读全文
posted @ 2022-10-31 19:58 九卷 阅读(2318) 评论(0) 推荐(1) 编辑
摘要:转自 kcq 的 https://github.com/golang-standards/project-layout https://github.com/golang-standards/project-layout 英文版本 https://github.com/golang-standard 阅读全文
posted @ 2022-10-19 12:13 九卷 阅读(401) 评论(0) 推荐(0) 编辑
摘要:一、sync.WaitGroup简介 1.1 sync.WaitGroup 解决了什么问题 在编程的时候,有时遇到一个大的任务,为了提高计算速度,会用到并发程序,把一个大的任务拆分成几个小的独立的任务各自执行,因为这几个小任务相互没有关系,可以独立执行,这时候就可以用 Go 协程来处理这种并发任务。 阅读全文
posted @ 2022-09-27 16:25 九卷 阅读(1312) 评论(0) 推荐(0) 编辑
摘要:Golang 汇编asm语言基础学习 一、CPU 基础知识 cpu 内部结构 cpu 内部主要是由寄存器、控制器、运算器和时钟四个部分组成。 寄存器:用来暂时存放指令、数据等对象。它是一个更快的内存。cpu 内部一般有 20 - 100 个寄存器。不同类型的cpu,它内部的寄存器数量、种类以及寄存器 阅读全文
posted @ 2022-08-05 17:28 九卷 阅读(2275) 评论(0) 推荐(1) 编辑
摘要:一、kratos 配置介绍 配置文件的作用就是把一些会变化的配置项单独存放,与程序相剥离。 把配置项进行单独管理。 kratos 支持多种形式的配置, 比如 file,环境变量。 还支持一些配置软件,比如: apollo consul etcd nacos 等等。 它也支持多种格式,比如 json、 阅读全文
posted @ 2022-07-20 15:03 九卷 阅读(1843) 评论(0) 推荐(0) 编辑
摘要:一、分布式链路追踪发展简介 1.1 分布式链路追踪介绍 关于分布式链路追踪的介绍,可以查看我前面的文章 微服务架构学习与思考(09):分布式链路追踪系统-dapper论文学习(https://www.cnblogs.com/jiujuan/p/16097314.html) 。 这里的 OpenTel 阅读全文
posted @ 2022-06-07 14:27 九卷 阅读(3879) 评论(0) 推荐(1) 编辑
摘要:一、简介 关于服务注册和服务发现介绍,我前面的文章有介绍过 - 服务注册和发现的文章(https://www.cnblogs.com/jiujuan/p/15087196.html)。 作为服务中心的软件有很多,比如 etcd,consul,nacos,zookeeper 等都可以作为服务中心。 g 阅读全文
posted @ 2022-06-04 05:18 九卷 阅读(3338) 评论(0) 推荐(0) 编辑