随笔分类 -  Go

摘要:Go实现日志收集系统1 项目背景 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 当系统机器比较少时,登陆到服务器上查看即可满足 当系统机器规模巨大,登陆到机器上查看几乎不现实 当然即使是机器规模不大,一个系统通常也会涉及到多种语言的开发,拿我们公司来说,底层是通过c++开发的,而也业务应 阅读全文
posted @ 2021-02-23 09:33 小学弟- 阅读(437) 评论(0) 推荐(0)
摘要:Elasticsearch 本文简单介绍了ES、Kibana和Go语言操作ES。 Elasticsearch 介绍 Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引 阅读全文
posted @ 2021-02-22 13:58 小学弟- 阅读(1173) 评论(0) 推荐(0)
摘要:go操作kafka Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,具有高性能、持久化、多副本备份、横向扩展等特点。本文介绍了如何使用Go语言发送和接收kafka消息。 sarama Go语言中连接kafka使用第三方库:github.com/Shop 阅读全文
posted @ 2021-02-22 10:05 小学弟- 阅读(774) 评论(0) 推荐(0)
摘要:Go语言操作etcd etcd是近几年比较火热的一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现,本文主要介绍etcd的安装和使用。 etcd etcd介绍 etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。 阅读全文
posted @ 2021-02-22 10:03 小学弟- 阅读(429) 评论(0) 推荐(0)
摘要:Go语言操作influxDB 本文介绍了influxDB时序数据库及Go语言操作influxDB。 InfluxDB是一个开源分布式时序、事件和指标数据库。使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。 安装 下载 https://portal.influxdata.com/ 阅读全文
posted @ 2021-02-22 09:44 小学弟- 阅读(1119) 评论(0) 推荐(0)
摘要:Go语言操作NSQ NSQ是目前比较流行的一个分布式的消息队列,本文主要介绍了NSQ及Go语言如何操作NSQ。 NSQ NSQ介绍 NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异。 NSQ的优势有以下优势: NSQ提倡分布式和分散的拓扑,没有单点故障,支持容错和高可用性,并提 阅读全文
posted @ 2021-02-22 09:21 小学弟- 阅读(358) 评论(0) 推荐(0)
摘要:Go语言操作mongoDB package main import ( "context" "fmt" "log" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.or 阅读全文
posted @ 2021-02-20 09:24 小学弟- 阅读(3610) 评论(0) 推荐(0)
摘要:Go操作Redis实战 安装Redis客户端 Go语言中使用第三方库https://github.com/go-redis/redis连接Redis数据库并进行操作。使用以下命令下载并安装: go get github.com/go-redis/redis/v8 go get gopkg.in/re 阅读全文
posted @ 2021-02-19 17:44 小学弟- 阅读(579) 评论(0) 推荐(0)
摘要:Go语言操作Redis 在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。 Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片 阅读全文
posted @ 2021-02-17 00:40 小学弟- 阅读(191) 评论(0) 推荐(0)
摘要:Go语言操作MySQL MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。 Go操作MySQL 连接 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱 阅读全文
posted @ 2021-02-17 00:37 小学弟- 阅读(596) 评论(0) 推荐(0)
摘要:Go语言之依赖管理 Go语言的依赖管理随着版本的更迭正逐渐完善起来。 依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? godep Go语言从v1 阅读全文
posted @ 2021-02-16 23:34 小学弟- 阅读(197) 评论(0) 推荐(0)
摘要:Go性能调优 在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章就要讲解怎么在 golang 中做 profiling。 Go性能优化 Go语言项目中 阅读全文
posted @ 2021-02-16 23:10 小学弟- 阅读(335) 评论(0) 推荐(0)
摘要:Go语言基础之单元测试 不写测试的开发不是好程序员。我个人非常崇尚TDD(Test Driven Development)的,然而可惜的是国内的程序员都不太关注测试这一部分。 这篇文章主要介绍下在Go语言中如何做单元测试和基准测试。 go test工具 Go语言中的测试依赖go test命令。编写测 阅读全文
posted @ 2021-02-15 16:33 小学弟- 阅读(101) 评论(0) 推荐(0)
摘要:Go语言基础之网络编程 现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程。 关于网络编程其实是一个很庞大的领域,本文只是简单的演示了如何使用net包进行TCP和UDP通信。如需了解更详细的网 阅读全文
posted @ 2021-02-15 00:16 小学弟- 阅读(182) 评论(0) 推荐(0)
摘要:Go语言基础之并发 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因。 Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。 并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天)。 Go语言的 阅读全文
posted @ 2021-02-12 13:58 小学弟- 阅读(200) 评论(0) 推荐(0)
摘要:Go语言基础之反射 本文介绍了Go语言反射的意义和基本使用。 变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息。 值信息:程序运行过程中可动态变化的。 反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写 阅读全文
posted @ 2021-02-10 18:23 小学弟- 阅读(192) 评论(0) 推荐(0)
摘要:Go语言文件操作 本文主要介绍了Go语言中文件读写的相关操作。 文件是什么? 计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。 打开和关闭文件 os.Open()函数能够打开一个文件,返回一个*File和一个err。对得到的文件实例调用close()方法能够关 阅读全文
posted @ 2021-02-08 20:25 小学弟- 阅读(220) 评论(0) 推荐(0)
摘要:Go语言基础之包 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定义包、如何导出包的内容及如何导入其他包。 Go语言的包(package) 包介绍 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供 阅读全文
posted @ 2021-02-08 18:39 小学弟- 阅读(111) 评论(0) 推荐(0)
摘要:Go语言基础之接口 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 接口 接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组method的集合,是duck-type programming的一种 阅读全文
posted @ 2021-02-08 14:42 小学弟- 阅读(190) 评论(0) 推荐(0)
摘要:Go语言基础之结构体 Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型, Go语言中可以使用ty 阅读全文
posted @ 2021-02-05 01:53 小学弟- 阅读(269) 评论(0) 推荐(0)