微服务系列(5)Micro

微服务系列(5)Micro 1. 准备etcd 这边使用etcd作为服务发现工具,你也可以使用consul或者其它服务发现工具 下载etcd 直接下载二进制包运行,下载地址:https://github.com/etcd-io/etcd/releases 1wget https://github.com/etcd-io/etcd/releases/download/v3.4.4/etcd-v3.4.4-linux-amd64.tar.gz 2tar xf etcd-v3.4.4-linux-amd64.tar.gz -C /usr/bin/ --strip-components 1 etcd-v3.4.4-linux-amd64/{etcd,etcdctl} 验证安装 1etcd --version 运行e……

阅读全文

微服务系列(1)微服务介绍

什么是微服务 微服务是一种软件架构模式,用于将大型整体应用程序分解为更小的可管理独立服务,这些独立服务通过跨语言的协议进行通信,每个服务都专注于做好一件事情。 微服务的概念并不新鲜,这是对面向服务的体系结构的重新构想,而是采用了一种更加全面的方式与unix进程和管道对齐的方法。 微服务……

阅读全文

微服务系列(2)Protobuf介绍

Protobuf是Google旗下的一款与平台无关,语言无关,可扩展的序列化结构数据格式。所以很适合做数据存储和作为不同应用,不同语言之间互相通信的数据交换格式,只要实现相同的协议格式即同一proto文件被编译成不同的语言版本,加入到各自的工程中去。这样不同语言就可以解析其他语言……

阅读全文

微服务系列(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)监视……

阅读全文