软件下载https://golang.google.cn/https://dl.google.com/go/go1.19.3.linux-amd64.tar.gz环境变量设置export GOWKS=/data/wks/tpfexport GOROOT=$GOWKS/app/goexport GOBIN=$GOWKS/binexport GOPATH=$GOWKSexport PATH
转载
2024-04-23 22:16:39
48阅读
(1)命令源码文件声明自己属于main 代码包、包含无参数声明和结果声明的main 函数。命令源码文件被安装以后,GOPATH 如果只有一个工作区,那么相应的可执行文件会被存放当前工作区的bin文件夹下;如果有多个工作区,就会安装到GOBIN指向的目录下。命令源码文件是Go程序的入口。(2)库源码文件库源码文件就是不具备命令源码文件上述两个特征的源码文件。存在于某个代码包中的普通的源码文件。库源码
转载
2023-12-16 15:38:42
113阅读
Go语言作为服务器编程的一种语言,非常适合处理数据打包、日志、虚拟机处理、文件系统、数据库等。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。
原创
2022-10-12 15:28:07
133阅读
1.代码结构代码分层结构是一个老生常谈的话题,好的代码结构能够使得系统易于理解、开发及维护,如果代码结构很混乱就会使得不同层级的代码块耦合,导致难以维护和拓展。 比较经典的代码结构(宏观)有Web的MVC模式分层结构,将代码分为Controller路由层、Model模型层、View视图层。更加具体地来看,对于微服务来说(不考虑前后端一体化情况),后端只有Controller及Model层, 可以细
1.安装相关包 设置代理set GOPROXY=https://goproxy.cn 安装 golang 的proto工具包go get -u github.com/golang/protobuf/proto安装 goalng 的proto编译支持go get -u github.com/golan ...
转载
2021-07-27 16:45:00
365阅读
2评论
两个进程执行两个goroutine 输出 一个进程执行两个goroutine 输出
转载
2019-01-27 21:03:00
231阅读
2评论
文章篇幅较长,可以先收藏防止迷路~目录zap日志库1. why zap?2. 简单使用3. 自定义logger例子4. Gin项目使用zap6. lumberjack 日志切割组件zap日志库在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能:能够将事件记录到文件中,而不是应用程序控制台;日志切割-能够根据文件大小、时间或间隔等来切割日志文件;支持不同的日志级别。例如INFO,D
1、导语目前Go语言已经为大多数人所熟知,越来越多的开发人员选择使用Go语言来进行开发,但是如何使用Go来进行web开发,在其他编程语言中都有对应的开发框架,当然在Go中也有,就是即将要介绍的——iris,它号称为速度最快的Go后端开发框架。在iris的网站文档上,列出该框架具备的一些特点和框架特性,列举如下:1)聚焦高性能
2)健壮的静态路由支持和通配符子域名支持
3)视图系统支持超过5以上模板
转载
2023-12-01 10:16:11
62阅读
协程进程, 线程, 协程概念进程:概念: 资源分配的基本单位通信: 进程之间的通信只能通过进程通信的方式进行多进程: 拷贝,使用fork(),生成子进程。每个进程拥有独立的地址空间(代码段、堆栈段、数据段)线程:概念: 调度运行的最小单位通信: 同一进程中的线程共享数据(比如全局变量,静态变量)多线程: 同一个进程中的线程,它们之间共享大部分数据,使用相同的地址空间。当然线程是拥有自己的局部变量和
转载
2024-07-24 21:58:21
27阅读
相信很多学go的小伙伴,不清楚go mod的具体用法,这里专门写篇文章备忘。 go mod是在1.11版本以后出现的,所以在1.11版本之前,我们必须将项目建立在 $GOPATH/src 目录下go mod的具体语法 1.module:指明根目录 2.go 后面跟版本号是指定go的版本 3.require是个动作指令,对依赖包起作用,比如require(依赖),还有exclude(排除),repl
thrift 的原理和使用 Thrift 架构 Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过IDL(Interface Definition Language,接口定义语言)来定义RPC(Remote Procedure Call,远程过程调用)的接口和数据类型,然后通过thrif
转载
2024-07-10 05:19:21
73阅读
以下 star数截止2023年1月份1.Gin(65.4K) 项目简介:Gin 是一个用 Go (Golang) 编写的 HTTP Web 框架。 它具有类似 Martini 的 API,但性能比 Martini 快 40 倍。仓库地址: https://github.com/gin-gonic/gin https://github.com/gin-gonic/gin官方文档地址: 文档 | Gi
以下源码都摘自 golang 1.16.15 版本。1. channel 底层结构Golang 中的 channel 对应的底层结构为 hchan 结构体(channel的源码位置在Golang包的 runtime/chan.go):type hchan struct {
qcount uint // buf当前元素的数量
dataqsiz uint
首先加入引用go get github.com/Shopify/sarama@latest 消费者,Sarama客户提供了AsyncProducer和SyncProdcer两种类型的生产者,这里以SyncProducer为例package main
import (
"fmt"
"github.com/Shopify/sarama"
)
func main() {
config := s
原创
2024-05-15 09:16:11
81阅读
线上介绍了 go 命令的最新 weekly 发布后,我决定写一些关于它的内容。我得承认,在第一次听说统一 go 工具的时候,我满是怀疑并对此非常恐惧。我担心它会像大多数其他语言特定的包管理器一样混乱。个人认为多数这种包管理器都是在重新发明轮子,并且与操作系统的包管理器发生冲突,让系统管理员生活的更加艰辛。另外,我确实喜欢 makefile,它们简单并且直接,工作得也很好。幸运的是,新的 go 工具
Go类型断言demo go package main import ( "bytes" "encoding/json" "fmt" "io" "net/http" "time" "github.com/unknwon/com" ) //空接口 func test1() { a := make(map
原创
2021-08-07 12:21:12
415阅读
Go是Google开发的一种静态、强类型、编译型、并发型,并具有垃圾回收功能的类C编程语言。2009以开源项目的形式发布,2012年发布1.0稳定版本,距今已经十年了,其性能类似于Java和C++,但速度极快,适合搭载于web服务器,用于高性能分布式系统开发。作为热门的编程语言之一,Go语言吸引了很多关注。根据TIOBE编程排行榜,2016年,Go语言成为年度最受欢迎的编程语言;2019年,Go语
结合其他博主的一些文章,本文介绍了使用IntelliJ IDEA 14创建基于Maven3的Java Web Project 的步骤。同时也介绍了可能出现的错误以及解决方案。环境介绍:系统:OS X Yosemite (10.10.5)IDE :IntelliJ IDEA 14.1.4Java :Oracle Java 1.8.0_51Maven:3.3.3创建步骤:创建项目:Create New
转载
2024-10-11 11:13:02
28阅读
准备工作: 1. 安装protobuf 编译环境 https://github.com/protocolbuffers/protobuf/releases 2. 安装go语言的protobuf代码转换工具protoc-gen-go go get -u github.com/golang/protob ...
转载
2021-11-03 17:19:00
647阅读
2评论
参考文章: 1. https://www.cnblogs.com/kaixinyufeng/p/9651513.html 2. http://jia-shun.cn/2018/08/12/gRPC/ 文章1应该是参考的文章2. 文章1在2的基础上增加了如何安装protobuf软件.一起整理出来 这篇
原创
2021-06-04 14:20:38
308阅读