Go处理每分钟100万个请求
引用原文
原文链接 http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/
问题描述
直入本文要描述的问题:网站流量上来了,高并发负载是不可避免滴问题了,当服务端需要处理大量耗时的任务时,我们一般都会考虑将耗时任务异步处理。那么如果使用Go如何实现?
传统上,我们会考虑使用以下 ...
go中bufio使用小结
bufio
前言
例子
bufio
源码解析
Reader对象
实例化
ReadSlice
ReadString
ReadLine
Peek
Scanner
Give me more data
Error
Writer 对象
实例化
Available
Buffered
Flush
写入的方法
ReadWriter
总结
bufio
前言
最近操作文件,进行优化使用到了bufio。好像也不太了解这个,那么就梳理下,bufio的使用。 ...
go中bytes.Buffer使用小结
buffer
前言
例子
了解下bytes.buffer
如何创建bytes.buffer
bytes.buffer的数据写入
写入string
写入[]byte
写入byte
写入rune
从文件写入
数据写出
写出数据到io.Writer
Read
ReadByte
ReadRune
ReadBytes
ReadString
Next
参考
buffer
前言
最近操作文件,进行优化使用到了buffer。好像也不太了解这个, ...
go语言的发展现状
GO语言的发展与现状
发展历史
2007年9月,Rob Pike在Google分布式编译平台上进行C++编译,在漫长的等待过程中,他和Robert Griesemer探讨了程序设计语言的一些关键性问题,他们认为,简化编程语言相比于在臃肿的语言上不断增加新特性,会是更大的进步。随后他们在编译结束之前说服了身边的Ken Thompson,觉得有必要为此做 ...
解决go包管理代理网址无法访问:proxy.golang.org
默认使用的是proxy.golang.org,在国内无法访问,如下图所示:
bogon:demo-path user$ make build_darwin
rm -rf target/demo-0.6.0
mkdir -p target/demo-0.6.0/bin
env CGO_ENABLED=1 GO111MODULE=on go run build/spec.go target/demo-0.6.0/bin/demo-spec-0.6.0.yaml
go: github.com/StackExchange/wmi@v0.0.0-201905 ...
Fabric-sdk-go操作Chaincode
因为工作的需要,最近了解了下如何通过sdk来操作Chaincode,本文是sdk使用时的一些操作总结。
在fabric网络启动过程中,一般分为“启动网络 -> 创建通道 -> 加入通道 -> 安装链码 -> 实例化链码 -> 调用链码”。本文以fabric-sdk-go项目中的end_to_end.go为例,介绍如何通过fabric-sdk-go来使用链码。
创建sdk实例
使用sdk ...
go解析xml的三种方式
go解析xml的三种方式
之前项目中用到过xml解析,在这里记录一下。
小文件简单解析
demo.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<smtpServer>smtp.163.com</smtpServer>
<smtpPort>25</smtpPort>
<sender>user@163.com</sender>
<senderPasswd>123456</senderPasswd>
<receivers flag="true" ...
kong go 插件开发
介绍
在Kong 2.0之前,Lua是唯一支持编写Kong插件的语言,并且仍然是开发和扩展Kong的主要方法。Go插件支持的新增功能使Kong用户可以进入Go生态系统。例如,有些数据库(例如MS SQL Server)没有很好的Lua客户端库,但Go很好地支持了这些数据库。Go插件可以直接访问此类服务器,而无需传递Kong的Lua代码。
结构
Go PDK完全 ...
Go文件操作
目录示例1: 打开和关闭文件示例2: 打开文件并读取内容示例3: 一次性读取文件示例4: 带缓冲的Reader读文件示例5: 创建文件并写入内容示例6: 写文件的四种方式示例7: 把一个文件内容写入到另一个文件示例8:使用bufio获取用户输入示例9: 判断文件或目录是否存在示例10: 拷贝文件、图片音视频示例11: 遍历目录遍历目录仅遍历目 ...
GO汇编-函数
GO汇编-函数
终于到函数了!因为Go汇编语言中,可以也建议通过Go语言来定义全局变量,那么剩下的也就是函数了。只有掌握了汇编函数的基本用法,才能真正算是Go汇编语言入门。本章将简单讨论Go汇编中函数的定义和用法。
基本语法
函数标识符通过TEXT汇编指令定义,表示该行开始的指令定义在TEXT内存段。TEXT语句后的指令一般 ...
go 注释讲解
引言
注释的重要性不言而寓,而怎么编写注释也是需要我们学习的,最好的学习教程就是源码,这篇文章将大量参考 go 库文件源码。
分类
go 的注释有行注释 // 和块注释 /* */ 之分。在实际的使用中,行注释使用得比较多,块注释主要用于格式化大段代码或包的注释中使用。
在 goland 中行注释的快捷键为 Ctrl+/, 块注释的快捷 ...
【GO】Go 三个点省略号"..."使用总结
Go语言中省略号"..."有3种用法,下面会一一介绍。
Tips:以下测试程序中所涉及地址在不同机器打印也不同。目录
使用在数组中
打散Slice
变长的函数参数
使用在数组中
q := [...]int{1,2,3}
fmt.Printf("%T\n",q) //"[3]int"
在数组字面量中,如果省略号"..."出现在数组长度的位置,那么数组的长度由初始化数组的元素个数 ...
go操作mysql
mysql常用语句
操作
方法
用户登录
mysql -u root -p
退出
exit
选中数据库
USE 数据库名 ; use RUNOOB
列出 MySQL 数据库管理系统的数据库列表
SHOW DATABASES;
显示某个数据库列表
SHOW TABLES;
显示数据表的属性
SHOW COLUMNS FROM 数据表:
显示数据表的详细索引信息
SHOW INDEX FRO ...
Go语言切片详解
目录1. 切片底层实现1.1 切片简介1.2 切片底层实现2. 切片的基础操作2.1 创建和初始化2.2 nil和空切片2.3 切片增长2.4 迭代切片2.5 在函数间传递切片3. 多维切片4. 参考文献
1. 切片底层实现
1.1 切片简介
Go语言中的切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数append来实 ...
Go语言中使用K8s API及一些常用API整理
Go Client
在进入代码之前,理解k8s的go client项目是对我们又帮助的。它是k8s client中最古老的一个,因此具有很多特性。 Client-go 没有使用Swagger生成器,就像前面我们介绍的openAPI一样。它使用的是源于k8s项目中的源代码生成工具,这个工具的目的是要生成k8s风格的对象和序列化程序。
该项目是一组包的集合,该包能够 ...
Go语言读取各种配置文件
配置文件结构体
config.go
package config
type System struct {
Mode string `mapstructure:"mode" json:"mode" ini:"mode"`
}
type Log struct {
Prefix string `mapstructure:"prefix" json:"prefix" ini:"prefix"`
LogFile bool `mapstructure:"log-file" json:"log-file" ini:"log-file" yaml:"log-file" tom ...
使用docker部署一个go应用
使用docker部署一个go应用
前言
直接部署
构建镜像
创建并运行容器
使用docker-compose部署
上传到docker-hub,然后拉取镜像,部署
参考
使用docker部署一个go应用
前言
使用docker部署应用已经成为现在的主流。Docker 是一个开源的轻量级容器技术,让开发者可以打包他们的应用以及应用运行的上下文环境到一个可 ...
go 模板详说
模板是我们常用的手段用于动态生成页面,或者用于代码生成器的编写等。比如把数据库的表映射成go语言的struct,这些体力活,写个代码生成器是最合适不过的了.
示例把表转成 struct :
这里--> go模板-代码生成器
当然这篇帖子不是写关于代码生成器的,是详细说一下go的Template,对Template的操作熟悉了后,就可以利用他实 ...
Go 查找元素
目录数组查找元素遍历map借助sort包
数组查找元素
go中没有类似其他语言p中in_array() 方法
遍历
package main
import "fmt"
// Contains 数组是否包含某元素
func Contains(slice []string, s string) int {
for index, value := range slice {
if value == s {
return index
}
}
return -1
}
func main() {
...
go mod 如何导入本地的包
missing dot in first path element问题解决
技术就是一层窗户纸,能捅破便是拨开云天见月明,捅不破就是一叶障目,不见泰山呀!
今天碰到了个问题,卡了我半天。
malformed module path "XXXX": missing dot in first path element
问题原因
因为在 go1.13 中, go module 名称规范要求路径的第一部分必须满足域名规范 ...