golang-goroutine goroutine golang

golang解决kafka消息重复发送和重复消费

1、解决消息重复发送 当使用Kafka生产者发送消息时,可以设置消息的Key,使用Key来保证相同Key的消息不会被重复发送。在发送消息时,可以使用带Key的消息发送方式,如下所示: msg := &sarama.ProducerMessage{ Topic: "test", Partition: ......
消息 golang kafka

golang条件编译

方式 文件名 条件编译之文件名 命名方式 # 操作系统区分 xx_$GOOS.go # 区分架构 x86 / x64 _$GOOS_$GOARCH.go ......
条件 golang

Golang 大杀器之性能剖析 PProf

参考文章: Golang 大杀器之性能剖析 PProf Graphviz安装及入门教程 接触了那么久的go,一直也在用go写项目代码,有时遇到一些性能、内存问题,一时不好下手,幸好go自带性能大杀器,帮助我们及时知悉项目代码运行情况与cpu耗时、内存占用等一系列问题。 本次分享主要基于 Golang ......
性能 Golang PProf

golang 版本管理(windows版本)

golang 版本管理(windows版本) 一、下载版本管理器 使用的开源项目地址:https://github.com/voidint/g 下载release安装包 https://github.com/voidint/g/releases/tag/v1.5.0 二、安装 打开powershel ......
版本 windows golang

golang 反射reflect

1.基本介绍 1)反射可以在运行时动态获取变量的各种信息,比如变量的类型(type),类别(kind) 2)如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段,方法) 3)通过反射,可以修改变量的值,可以调用关联的方法 4)通过反射,需要import("reflect") packag ......
reflect golang

Go 语言:如何利用好 TDD 学习指针并了解 Golang 中的 error 处理

我们在上一节中学习了结构体(structs),👉Go语言:利用 TDD 驱动开发测试 学习结构体、方法和接口 它可以组合与一个概念相关的一系列值。 你有时可能想用结构体来管理状态,通过将方法暴露给用户的方式,让他们在你可控的范围内修改状态。 金融科技行业都喜欢 Go 和比特币吧?那就来看看我们能创 ......
指针 语言 Golang error TDD

使用 GVM 搭建可维护的 Golang 开发环境

当你想完成 Golang 开发环境的便捷安装以及随时更新和保障多个版本的 Golang 共存的时候,就需要使用到 Golang 的专门版本管理工具 ——gvm 本篇随笔记录了在 Ubuntu 下安装使用 gvm 的过程 Gvm 的下载 我们可以使用国内镜像下载包含安装脚本的仓库代码,然后直接执行安装 ......
环境 Golang GVM

golang中关于deadlock的思考与学习

1、Golang中死锁的触发条件 1.1 书上关于死锁的四个必要条件的讲解 发生死锁时,线程永远不能完成,系统资源被阻碍使用,以致于阻止了其他作业开始执行。在讨论处理死锁问题的各种方法之前,我们首先深入讨论一下死锁特点。 必要条件: 如果在一个系统中以下四个条件同时成立,那么就能引起死锁: 互斥:至 ......
deadlock golang

小心golang中的无类型常量

对于无类型常量,可能大家是第一次听说,但这篇我就不放进拾遗系列里了。 因为虽然名字很陌生,但我们每天都在用,每天都有无数潜在的坑被埋下。包括我本人也犯过同样的错误,当时代码已经合并并发布了,当我意识到出了什么问题的时候为时已晚,最后不得不多了个合并请求留下了丢人的黑历史。 为什么我要提这种尘封往事呢 ......
常量 类型 golang

解决golang 的内存碎片问题

解决golang 的内存碎片问题 本文译自Why I encountered Go memory fragmentation? How did I resolve it?,作者通过分析golang的堆管理方式,解决了内存碎片的问题。 背景 我们的团队正在搭建运行一个兼容Prometheus的内存时序 ......
碎片 内存 golang 问题

golang使用JWX进行认证和加密

golang使用JWX进行认证和加密 最近看了一个名为go-auth的库,它将JWT作为HTTP cookie对用户进行验证,但这个例子中缺少了对JWT的保护,由此进行了一些针对JWX的研究。 下面描述来自golang-jwt的官方描述: 概述 JWT是一个签名的JSON对象,通常用作Oauth2的 ......
golang JWX

golang拾遗:实现一个不可复制类型

这是golang拾遗系列的第六篇。这个系列主要用来记录一些平时不常见的知识点,偶尔也会实现些有意思的小功能,比如这篇。 golang拾遗系列目录: golang拾遗:指针和接口 golang拾遗:为什么我们需要泛型 golang拾遗:嵌入类型 golang拾遗:内置函数len的小知识 golang拾 ......
类型 golang

Golang HTTP编程及源码解析-路由分发

1、网络基础 基本TCP客户-服务器程序Socket编程流程如如下图所示。 TCP服务器绑定到特定端口并阻塞监听客户端端连接, TCP客户端则通过IP+端口向服务器发起请求,客户-服务器建立连接之后就能开始进行数据传输。 Golang的TCP编程也是基于上述流程的。 2、Golang HTTP编程 ......
路由 源码 Golang HTTP

【Go并发编程】Goroutine的基本使用

goroutine是什么 goroutine即协程,使用go关键字开启一个协程异步执行代码。 注意,main函数也是个goroutine。 基本使用 使用go执行子任务,会交替执行(和时间片一样)。 主goroutine退出后,其它的工作goroutine也会自动退出(有点父子进程的感觉): pac ......
Goroutine

千姿百态,瞬息万变,Win11系统NeoVim打造全能/全栈编辑器(前端/Css/Js/Vue/Golang/Ruby/ChatGpt)

我曾经多次向人推荐Vim,其热情程度有些类似现在卖保险的,有的时候,人们会因为一些弥足珍贵的美好暗暗渴望一个巨大的负面,比如因为想重温手动挡的快乐而渴望买下一辆二十万公里的老爷车,比如因为所谓完美的音质而舍不得一个老旧的有线耳机,比如因为一个铜炉火锅而期待北京那漫长而寒冷的冬天。 ......

Golang如何实现节假日不打扰用户?

想象下以下场景,嘿嘿...! > 一个iphone用户,闹钟是可以按节假日不响的! > 每日新闻机器人,节假日是可以不打扰我的! > 我的业务,节假日是可以... ......
用户 Golang

防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18

奉行长期主义的开发者都有一个共识:对于服务器来说,数据备份非常重要,因为服务器上的数据通常是无价的,如果丢失了这些数据,可能会导致严重的后果,伴随云时代的发展,备份技术也让千行百业看到了其“云基因”的成长与进化,即基于云存储的云备份。 本次我们使用Golang1.18完成百度网盘(百度云盘)接口AP ......

周而复始,往复循环,递归、尾递归算法与无限极层级结构的探究和使用(Golang1.18)

所有人都听过这样一个歌谣:从前有座山,山里有座庙,庙里有个和尚在讲故事:从前有座山。。。。,虽然这个歌谣并没有一个递归边界条件跳出循环,但无疑地,这是递归算法最朴素的落地实现,本次我们使用Golang1.18回溯递归与迭代算法的落地场景应用。 递归思想与实现 递归思想并非是鲜为人知的高级概念,只不过 ......
层级 周而复始 算法 Golang1 结构

golang在win10安装、环境配置 和 goland开发工具golang配置 及Terminal的git配置

前言 本人在使用goland软件开发go时,对于goland软件配置网上资料少,为了方便自己遗忘、也为了希望和我一样的小白能够更好的使用,所以就写下这篇博客,废话不多说开搞。 一、查看自己电脑系统版本 (1)这里本人放一种查看,如果不适用还请大家自行百度 如何查看win系统版本 (2)处理器 上图中 ......
golang 开发工具 Terminal 环境 工具

区块链,中心去,何曾着眼看君王?用Go语言实现区块链技术,通过Golang秒懂区块链

区块链技术并不是什么高级概念,它并不比量子力学、泡利不相容原则、哥德巴赫猜想更难以理解,但却也不是什么类似“时间就是金钱”这种妇孺皆知的浅显道理。区块链其实是一套统筹组织记录的方法论,或者说的更准确一些,一种“去中心化”的组织架构系统。 去中心化 众所周知,任何一个公司、组织、或者是机构,都遵循同一 ......
区块 君王 语言 Golang 技术

巧如范金,精比琢玉,一分钟高效打造精美详实的Go语言技术简历(Golang1.18)

研发少闲月,九月人倍忙。又到了一年一度的“金九银十”秋招季,又到了写简历的时节,如果你还在用传统的Word文档寻找模板,然后默默耕耘,显然就有些落后于时代了,本次我们尝试使用云平台flowcv高效打造一份巧如范金、精比琢玉的高品质Golang技术简历。 首先来到云平台:flowcv.com 点击 t ......
Golang1 语言 简历 Golang 技术

使用 SmartIDE 开发golang项目

很荣幸在去年加入到 SmartIDE 产品组,从事开发工作,期间产品经历了无数个迭代,一段非常难忘的经历...... 项目之初一位大牛提出了一个哲学问题 —— 先有鸡还是有蛋(SmartIDE 如何开发 SmartIDE),借着这话题,本文将以 Golang 项目 SmartIDE CLI 为例进行 ......
SmartIDE 项目 golang

秒懂 Golang 中的 条件变量(sync.Cond)

本篇文章面向的读者: 已经基本掌握Go中的 协程(goroutine),通道(channel),互斥锁(sync.Mutex),读写锁(sync.RWMutex) 这些知识。如果对这些还不太懂,可以先回去把这几个知识点解决了。 首先理解以下三点再进入正题: Go中的一个协程 可以理解成一个独立的人, ......
变量 条件 Golang Cond sync

Golang反射修改变量值

1. 前言 前面的随笔Golang反射获取变量类型和值分享了如何通过反射获取变量的类型和值, 也就是Golang反射三大定律中的前两个,即从interface{}到反射对象和从反射对象到interface{}。 这篇随笔主要分享通过反射修改各种类型变量值的方法。 2. 判断是否可修改 reflect ......
量值 Golang

Golang反射获取变量类型和值

1. 什么是反射 反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 Golang反射包中有两对非常重要的函数和类型,两个函数分别是: reflect.TypeOf 能获取类型信息reflect.Type; reflect.ValueOf 能获取数据的运行时表示reflect.Val ......
变量 类型 Golang
共805篇  :27/27页 首页上一页27下一页尾页