摘要:
在 Linux 中,虚拟 IP(Virtual IP,VIP)是指一组与物理网络接口卡 (NIC) 绑定的虚拟 IP 地址,这些 IP 地址并不是物理上存在的,而是通过软件模拟实现的。 Linux 实现虚拟 IP 的方法有多种,其中常用的方式是通过网络接口的别名(alias)实现。在 Linux 系 阅读全文
摘要:
安装第三方包: go get github.com/IBM/sarama 生产者实例: package main import ( "fmt" "github.com/IBM/sarama" ) func main() { //1.生产者配置 config := sarama.NewConfig() 阅读全文
摘要:
PProf 是一个 Go 程序性能分析工具,可以分析 CPU、内存等性能。Go 在语言层面上集成了 profile 采样工具,只需在代码中简单地引入 runtime/ppro 或者 net/http/pprof 包即可获取程序的 profile 文件,并通过该文件来进行性能分析。 第一种: 共用一套 阅读全文
摘要:
decimal库包是用来解决float类型对象之间运算不准确的问题的。所以,如果你想使用decimal库包,你必须先把float类型对象通过decimal.NewFromFloat()函数转成decimal.Decimal类型,然后再计算,最后还得再转成你所需要的类型。 范例: package ma 阅读全文
摘要:
gorilla/mux是 gorilla Web 开发工具包中的路由管理库。gorilla Web 开发包是 Go 语言中辅助开发 Web 服务器的工具包。它包括 Web 服务器开发的各个方面, 有表单数据处理包gorilla/schema, 有 websocket 通信包gorilla/webso 阅读全文
摘要:
转载:https://www.jianshu.com/p/92a12de11f18 一、问题背景 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几 阅读全文
摘要:
介绍sync包中常用的方法, - sync:提供基本的同步原语(比如Mutex、RWMutex、Locker)和 工具类(Once、WaitGroup、Cond、Pool、Map) - sync/atomic:提供变量的原子操作(基于硬件指令 compare-and-swap) [Mutex] 互斥 阅读全文
摘要:
1. 前言 在实际项目开发中,我们经常将 MySQL 作为业务数据库,ES 作为查询数据库,用来实现读写分离,缓解 MySQL 数据库的查询压力,应对海量数据的复杂查询。 这其中有一个很重要的问题,就是如何实现 MySQL 数据库和 ES 的数据同步,今天和大家聊聊 MySQL 和 ES 数据同步的 阅读全文
摘要:
快速开始 创建工作区 写一个最简单的基础项目实际演练一下 Go workspace。 首先,创建 workspace 工作区。 $: mkdir workspace $: cd workspace $: go work init 完成以上步骤后,工作区目录就会出现一个新的文件 go.work . 内 阅读全文
摘要:
什么是tag git仓库的tag是git版本库的一个标记,指向某个commit id标记的快照记录指针,所以,标签也是版本库的一个快照。 tag主要用于发布版本的管理,一个当版本发布后,可以为git当前的HEAD(commit id)打上 v.1.0.1、v.1.0.2等这样的标签。 tag感觉跟b 阅读全文
摘要:
现存账号类型: gitee账号,国产github,码云值得拥有 github账号,全球最大同性交友网站 gitlab账号,公司内部的工作开发 解决方案 解决办法很简单,新建一个config文件就可以了。 1、本地生成SSH-Key 生成一个gitee用的SSH-Key ssh-keygen -t r 阅读全文
摘要:
(一)命令定义和区别 go install 和 go get 都是 Go 语言的工具命令,但它们之间有一些区别。 go get:用于从远程代码存储库(如 GitHub)中下载或更新 Go 代码包。它会下载代码包并将其存储在 $GOPATH/src 目录下对应的位置,并编译代码包中的程序和库。如果目标 阅读全文
摘要:
之前文章:https://www.cnblogs.com/xingxia/p/mysql_basic.html mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'othe 阅读全文
摘要:
今天我们要介绍的copier库就能处理不同类型之间的赋值。除此之外,copier还能: 调用同名方法为字段赋值; 以源对象字段为参数调用目标对象的方法,从而为目标对象赋值(当然也可以做其它的任何事情); 将切片赋值给切片(可以是不同类型哦); 将结构体追加到切片中。 快速使用 先安装: $ go g 阅读全文
摘要:
github: https://github.com/davecgh/go-spew 我们在使用Golang(Go语言)开发的过程中,会通过经常通过调试的方式查找问题的原因,解决问题,尤其是当遇到一个很棘手的问题的时候,就需要知道一段代码在执行的过程中,其上下文的变量对应的数据,以便进行推测出问题的 阅读全文
摘要:
Go 语言作为强类型语言,在使用 Golang 开发项目时,经常会遇到类型转换的场景,整型之间可以直接转换,字节切片和字符串之间也可以直接转换。 但是,如果整型和字符串之间做类型转换,则需要使用 strconv 标准库提供的函数。 01 标准库 strconv 类型转换 Go 语言标准库 strco 阅读全文
摘要:
context 用来解决 goroutine 之间退出通知、元数据传递的功能。 context 使用起来非常方便。源码里对外提供了一个创建根节点 context 的函数: func Background() Context background 是一个空的 context, 它不能被取消,没有值,也 阅读全文
摘要:
github: https://github.com/go-resty/resty go-resty 特性# go-resty 有很多特性: 发起 GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, etc. 请求 简单的链式书写 自动解析 JSON 和 XM 阅读全文
摘要:
errors包常用方法 func Unwrap(err error) error // 获得err包含下一层错误 func Is(err, target error) bool // 判断err是否包含target func As(err error, target interface{}) boo 阅读全文
摘要:
常用fmt中用于格式化的占位符 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:zhangsan} %#v 相应值的Go语法表 阅读全文
摘要:
golang-jwt是go语言中用来生成和解析jwt的一个第三方库。本文中使用目前最新的v5版本。 安装 go get -u github.com/golang-jwt/jwt/v5 在代码中引用 import "github.com/golang-jwt/jwt/v5" 结构体 假设jwt原始的p 阅读全文
摘要:
使用golang开发也有一段时间,在此总结一些自己从0入门到掌握所涉及一些资源,希望可以帮助其他人 [初级] 基础语法练习: https://gobyexample.com/ [中级] 1.golang wiki: https://github.com/golang/go/wiki 阅读全文
摘要:
viper简介 Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序。它旨在在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持: 设置默认值 从JSON、TOML、YAML、HCL、envfile和Java属性配置文件中读取 实时观看和重新读取配置文件(可选) 从环 阅读全文
摘要:
Go 1.0[1] - 2012 年 3 月: 随着 Go 第一个版本发布的还有一份兼容性说明文档[2] 。该文档承诺,Go 的未来版本会尽可能确保向后兼容性,不会破坏现有程序。 For instance, code that runs under Go 1.2 should be compatib 阅读全文
摘要:
当使用命令行终端进行开发时,环境配置文件可以用来自动化执行一些命令或设置环境变量,以提高工作效率和方便使用。在 Mac 上,常见的环境配置文件有以下几种: 1. 在.bash_profile文件中配置.bash_profile 是 Bash Shell的配置文件之一,在用户登录时会被执行。该文件可以 阅读全文