golang

golang 实现的零依赖、高性能、并发 mysqldump 工具。

mysqldump golang 中实现的零依赖、高性能、并发 mysqldump 工具。 项目地址: https://github.com/dengjiawen8955/mysqldump/blob/master/README-zh.md 文章地址: https://bmft.tech/#/2-p ......
高性能 mysqldump 工具 golang

【golang实现即时通讯系统】(一)

即时通讯系统 1.基础server构建 创建一个Server的结构体,结构体应该包含服务端的IP和端口 写一个创建Server的方法 创建一个启动Server函数 创建一个业务链接函数 server.go package main import ( "fmt" "net" ) type Server ......
通讯系统 通讯 golang 系统

golang pprof 监控系列(1) —— go trace 统计原理与使用

golang pprof 监控系列(1) —— go trace 统计原理与使用 服务监控系列文章 服务监控系列视频 关于go tool trace的使用,网上有相当多的资料,但拿我之前初学golang的经验来讲,很多资料都没有把go tool trace中的相关指标究竟是统计的哪些方法,统计了哪段 ......
原理 golang pprof trace go

使用golang+antlr4构建一个自己的语言解析器(一)

Antlr4 简介 ANTLR(全名:ANother Tool for Language Recognition)是基于LL(*)算法实现的语法解析器生成器(parser generator),用Java语言编写,使用自上而下(top-down)的递归下降LL剖析器方法。由旧金山大学的Terence ......
语言 golang antlr4 antlr

golang相关介绍

前言: golang的语言介绍,发展介绍,相关网站 正文: golang介绍 Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。 Go 是非常年轻的一门语言,它的主要目标是 兼 ......
golang

(转)golang beego后端开发框架(二):配置、路由和控制器

原文:https://www.dianjilingqu.com/178381.html 1. beego参数配置 beego目前支持INI、XML、JSON、YAML格式的配置文件解析,但是默认采用了INI格式解析,用户可以通过简单的配置就可以获得很大的灵活性 1.1 默认配置解析 neego会默认 ......
路由 控制器 框架 golang beego

linux 下 golang jdk 环境变量配置

export GOPROXY=https://goproxy.cn,direct export GOROOT=/usr/local/go export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT/bin:$GO ......
变量 环境 golang linux jdk

golang 异常捕获和处理(panic/recover)

1.异常处理 Golang 没有结构化异常,使用 panic 抛出错误,recover 捕获错误。 异常的使用场景简单描述:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处理。 1.1. panic 内置函数假如函数F中书写了panic语句,会终止其后 ......
recover golang panic

wails 基于golang 的跨平台开发解决方案

wails 是可以使用golang 进行跨平台开发的框架 参考使用 依赖 需要go 18+,node 15+ 安装 go install github.com/wailsapp/wails/v2/cmd/wails@latest 创建项目 wails init -n myproject -t van ......
解决方案 方案 golang wails

golang解决kafka消息丢失

Kafka是一个高吞吐量的分布式发布订阅消息系统,由于其高效的消息传递机制,被广泛应用于大规模数据处理、日志收集和实时数据流处理等场景中。但是,由于网络、硬件等原因,Kafka的消息有时可能会出现丢失的情况。下面是一些Go语言中解决Kafka消息丢失问题的方法: 1.设置合适的Kafka配置 在创建 ......
消息 golang kafka

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

千姿百态,瞬息万变,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 技术