#GO

Mysql、MongoDB对比和使用场景

更高的写入负载默认情况下,MongoDB更侧重高数据写入性能,而非事务安全,MongoDB很适合业务系统中有大量“低价值”数据的场景。但是应当避免在高事务安全性的系统中使用MongoDB,除非能从架构设计上保证事务安全。高可用性MongoDB的复副集(Master-Slave)配置非常简洁方便,...

Golang 协程调度

一、线程模型N:1模型,N个用户空间线程在1个内核空间线程上运行。优势是上下文切换非常快但是无法利用多核系统的优点。1:1模型,1个内核空间线程运行一个用户空间线程。这种充分利用了多核系统的优势但是上下文切换非常慢,因为每一次调度都会在用户态和内核态之间切换。(POSIX线程模型(pthread),Java)M:N模型...
代码星球 ·2020-07-14

MongoDB使用优化

一、监控mongodb可以通过profile来监控数据,进行优化。查看当前是否开启profile功能用命令:db.getProfilingLevel()返回level等级,值为0|1|2,分别代表意思:0代表关闭,1代表记录慢命令,2代表全部。开始profile功能为db.setProfilingLevel(level...
代码星球 ·2020-07-14

Go Context

转自:https://www.cnblogs.com/zhangboyu/p/7456606.html1、什么是ContextContext通常被译作上下文,它是一个比较抽象的概念。在公司技术讨论时也经常会提到上下文。一般理解为程序单元的一个运行状态、现场、快照,而翻译中上下又很好地诠释了其本质,上下上下则是存在上下层...
代码星球 ·2020-07-14

Go 压测

1. 单测+压测压测gotest-bench=.-benchmem单元测试gotest-v.2.pprof+火焰图(查看cpu占用,内存占用)嵌入代码import(rawhttp"net/http"_"net/http/pprof")funcinit(){ifconf.GetConfig().GetEnv()...
代码星球 ·2020-07-14

Go 单元测试、基准测试、并发基准测试

要开始一个单元测试,需要准备一个go源码文件,在命名文件时需要让文件必须以_test结尾。单元测试源码文件可以由多个测试用例组成,每个测试用例函数需要以Test为前缀,例如:funcTestXXX(t*testing.T)测试用例文件不会参与正常源码编译,不会被包含到可执行文件中。测试用例文件使用gotest指令来执行...

Go url编码和字符转码

类似php中的urlencode和htmlspecialchars:packagemainimport("fmt""html""net/url""testing")funcTest_Escape(t*testing.T){  //url编码str:="中文-_."unstr:="%2f"fmt.Printf("url....
代码星球 ·2020-07-14

Golang gRPC 和 gRPC-gateway 结合使用

一、安装goget-ugithub.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gatewaygoget-ugithub.com/grpc-ecosystem/grpc-gateway/protoc-gen-swaggergoget-ugithub.com/golan...

Golang gRPC 使用

1、gRPC默认使用protocolbuffers,这是google开源的一套成熟的结构数据序列化机制(当然也可以使用其他数据格式如JSON),可以用protofiles创建gRPC服务,用protocolbuffers消息类型来定义方法参数和返回类型。1、yuminstallautoconfautomakelibto...
代码星球 ·2020-07-14

glide 解决 golang.org/x/net 等依赖包无法获取

知道glide有设置镜像功能,可以把某个依赖包的源地址切换为另一个地址,相当于切换到镜像地址,用于某些依赖包被墙的原因之前碰到 golang.org/x/net,设置镜像:glidemirrorsetgolang.org/x/cryptogithub.com/golang/crypto发现没有效果,还是会报e...

Go 程序执行顺序

在一个go程序中通常包含:包、常量、变量、init()、main()等元素,如果同时存在多个包,包之间存在依赖关系,每个包中存在多个init函数,每个文件中存在多个init函数,那么问题来了,他们之间的执行顺序是什么样的?通过本文我们来对它们之间的执行顺序做尽可能详尽的说明。如有不正之处,欢迎批评指正。包的执行顺序在m...
代码星球 ·2020-07-14

Go 提高性能的特性

1、值的高效处理和存储,允许创建紧凑的数据结构,避免不必要的填充字节。紧凑的数据结构能更好地利用缓存。更好的缓存利用率可带来更好的性能。2、函数的调用有开销,减少函数调用开销的解决方案是内联。简单的函数可以被Go编译器内联。3、强制垃圾回收使Go成为一种更简单,更安全的语言。这意味着在堆上分配的内存是有代价的。每次GC...
代码星球 ·2020-07-14

Go 编译和runtime

一篇题为:AnalysisoftheGoruntimescheduler的论文,其中部分章节介绍到了Goruntime。先上图,这张图描述了Go语言程序,Runtime和操作系统之间的关系。 其中,Runtime管理任务调度,垃圾收集及运行环境。大家知道Go语言程序是编译为机器代码来执行的。同时,Go提供了一...
代码星球 ·2020-07-14

Nginx 为 Golang 配置 web 服务

server{charsetutf-8;client_max_body_size128M;#listen80;##监听ipv4上的80端口#listen[::]:80default_serveripv6only=on;##监听ipv6上的80端口server_namego.etcchebao.com;location/...

beego 遇到的一些问题

1、安装beego出现的问题今天在通过 go get -ugithub.com/astaxie/beego 安装beego应用时,出现下面问题:#cd.;gitclonehttps://github.com/astaxie/beego/home/go-plugin/src/git...
代码星球 ·2020-07-14
首页上一页...9394959697...下一页尾页