微服务系列(3)gRPC介绍

gRPC是一个高性能、开源和通用的RPC框架,面向移动和HTTP/2设计。gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多路复用请求等待。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。 RPC RPC(Remote Procedure Call Protocol) – 远……

阅读全文

Go操作Redis

Go操作Redis Redis简介 Redis是一个开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询和流的地理空间索引。Redis具有内置的复制,Lua脚本,LRU……

阅读全文

GORM(2)-CURD操作

CURD操作 一、创建 1.1 创建记录 1user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()} 2 3db.NewRecord(user) // => 主键为空返回`true` 4 5db.Create(&user) 6 7db.NewRecord(user) // => 创建`user`后返回`false` 1.2 默认值 你可以通过 tag 定义字段的默认值,比如: 1type Animal struct { 2 ID int64 3 Name string `gorm:"default:'galeone'"` 4 Age int64 5} 生成的 SQL 语句会排除没有值或值为 零值 的字段。 将记录插入到数据库后,Gorm会从数据……

阅读全文

GORM(1)-入门指南

GORM(1)-入门指南 一、概述 1.1 特性 全功能ORM(几乎) 关联(包含一个,包含多个,属于,多对多,多种包含) Callbacks(创建/保存/更新/删除/查找之前/之后) 预加载(急加载) 事务 复合主键 SQL Builder 自动迁移 日志 可扩展,编写基于GORM回调的插件 每个功能都有测试 开发人员友好 1.2 安装……

阅读全文

Go微服务框架go-micro学习(1)基本使用

Go微服务框架go-micro学习(1)基本使用 1. 简介 Go Micro提供了分布式系统开发的核心要求,包括RPC和事件驱动的通信。go-micro哲学是可插拔体系结构的默认设置。我们提供了默认设置,可帮助您快速入门,但所有内容都可以轻松换出。 2. 特性 Go Micro提取了分布式系统的详细信……

阅读全文

Go语言gRPC快速入门

go语言gRPC快速入门 先决条件 需要golang1.6+版本 gRPC安装 使用以下命令安装gRPC。 1go get -u google.golang.org/grpc Protocol Buffers v3 安装用于生成gRPC服务代码的协议编译器。最简单的方法是protoc-<version>-<platform>.zip从此处下载适用于您的平台的……

阅读全文

Go运维开发之日志收集(9)logTransfer支持多个Topic

Go运维开发之日志收集(9)logTransfer支持多个Topic Go运维开发之日志收集(1)收集应用程序日志到kafka中 Go运维开发之日志收集(2)从etcd中获取配置信息 Go运维开发之日志收集(3)根据etcd配置项创建多个tailTask Go运维开发之日志收集(4)监视……

阅读全文

软件开发规范之语义化版本

语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。 简介 在软件管理……

阅读全文

Go Web框架Gin学习

Go Web框架Gin学习 一、Gin入门 1. 介绍 Gin号称是运行速度最快,特性最全的Goweb框架。 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自……

阅读全文

Go运维开发之日志收集(8)将应用程序日志写入到文件中

Go运维开发之日志收集(8)将应用程序日志写入到文件中 Go运维开发之日志收集(1)收集应用程序日志到kafka中 Go运维开发之日志收集(2)从etcd中获取配置信息 Go运维开发之日志收集(3)根据etcd配置项创建多个tailTask Go运维开发之日志收集(4)监视etcd配置项……

阅读全文