golang
reboot_xwa
这个作者很懒,什么都没留下…
展开
-
GO 语言操作 redis 数据库
redis数据库是一种高性能的Key-Value数据库 NoSQL数据库 缓存型数据库 key-value型数据库 错误的说法非关系型数据库1.redis介绍1.1NoSQL:一类新出现的数据库(not only sql)泛指缓存型的数据库不支持SQL语法存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式NoSQ...原创 2020-03-27 17:10:13 · 388 阅读 · 1 评论 -
运维大神如何使用 Golang 日志监控应用程序
你是如何使用 Golang 日志监控你的应用程序的呢?Golang 没有异常,只有错误。因此你的第一印象可能就是开发 Golang 日志策略并不是一件简单的事情。不>支持异常事实上并不是什么问题,异常在很多编程语言中已经失去了其异常性:它>们过于被滥用以至于它们的作用都被忽视了。-- Nils本文导航1、Golang 日志基础使用 Golang “log” 库...转载 2020-02-27 11:08:32 · 1257 阅读 · 0 评论 -
GO 语言之 Goroutine 原理解析
并发一个 CPU 上能同时执行多项任务,在很短时间内,CPU 来回切换任务执行(在某段很短时间内执行 程序 a,然后又迅速得切换到程序 b 去执行),有时间上的重叠(宏观上是同时的,微观仍是顺序执行),这样看起来多个任务像是同时执行,这就是并发。并行当系统有多个 CPU 时,每个 CPU 同一时刻都运行任务,互不抢占自己所在的 CPU 资源,同时进行, 称为并行。进程CPU 在切换程...原创 2020-02-13 11:39:32 · 2611 阅读 · 0 评论 -
Go 微服务框架 micro
微服务是什么 微服务是一种架构风格,也是一些协同工作小而自治的服务 微服务的颗粒度比较小,一个大型软件应用由多个微服务组成 每种服务只做一件事,一种松耦合能够被独立开发和部署的无状态服务我们怎么做的微服务 使用 micro 微服务框架+代码生成器提高开发效率 持续集成:代码提交后,自动发布测试环境 使用分布式调用链追踪 ...原创 2020-01-02 11:06:10 · 229 阅读 · 0 评论 -
Go 和 Android 集成实战
看到这个标题,你可能会问,为什么要在 Android 中运行 Go,直接使用 Java 不挺好吗?是的,如果你有现成很强大的 Java 团队,这没有问题,但并不是所有团队都是如此。而且我在这里想强调的是 Android 与 Go 的集合,即在 Android 程序中使用 Go 而不是完全用 Go 来写 Android 程序。我能想到在 Android 中用 Go 的一些原因:团队熟...原创 2019-12-20 16:29:45 · 513 阅读 · 0 评论 -
如何在 Ubuntu 上交叉编译 ARM 架构的 CGO 程序
我们都知道在不涉及 CGO 的时候,Go 的交叉编译非常简单,只需要设置对应的 GOOS 和 GOARCH 即可,但当涉及到 CGO 时,问题就变得有点复杂了,因为你需要指定特定的 GCC。例如,想在 Ubuntu 上交叉编译一个带有 CGO 的动态库,目标 CPU 架构为 arm,我们该如何操作呢?示例代码# shared.gopackage mainimport "C"...原创 2019-11-26 10:37:59 · 2224 阅读 · 0 评论 -
Go http.Flusher 在实际项目中的应用
最近在使用 Docker Go SDK 做开发的时候,参考了官方的示例代码:package mainimport ( "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" "...原创 2019-11-22 12:25:34 · 709 阅读 · 0 评论 -
如何在 Go 中使用 TLS 连接 MongoDB
通常我们的数据库都配置为内网访问,但由于业务部署架构的不同,有时也需要通过公网访问 MongoDB 数据库,此时为了防止被端口扫描和脱库,MongoDB 需要配置为 TLS 访问,那在 Go 中应该如何实现呢?依赖配置了 TLS 公网访问的 MongoDB 实例Go 的 MongoDB 驱动 globalsign/mgoGo 实现代码:package modelimport...原创 2019-06-17 15:38:34 · 609 阅读 · 0 评论 -
如何在 Go 中使用 CGroup 实现进程内存控制
背景从 Linux 内核 2.6.25 开始,CGroup 支持对进程内存的隔离和限制,这也是 Docker 等容器技术的底层支撑。使用 CGroup 有如下好处:在共享的机器上,进程相互隔离,互不影响,对其它进程是种保护。对于存在内存泄漏的进程,可以设置内存限制,通过系统 OOM 触发的 Kill 信号量来实现重启。CGroup 快速入门默认挂载分组Linux 系统默认支持...原创 2019-06-11 17:56:56 · 1527 阅读 · 0 评论 -
如何在 Go 中优雅关闭子进程
有时我们会遇到这样的需求,在一个主进程中启动另外一个进程,而在 Go 中可以使用 exec 包的 Cmd 来轻松实现这类需求,例如代码:package mainimport ( "fmt" "log" "os" "os/exec" "os/signal")func main() { cmd := exec.Cmd{ P...原创 2019-06-19 18:01:20 · 2425 阅读 · 0 评论