Go语言中文网 为您找到相关结果 426

gRPC的简单Go例子

gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、和电池寿命。 这次看到的例子来自: gRPC in 3 minutes (Go) http://www.grpc.io/docs/installation/go.html 分别获得客户端和服务器端的代码如下: $ go get -u github.com/grpc/grpc-commo...阅读全文

博文 2015-06-04 03:00:00 ghj1976

golang gRPC示例

gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、和电池寿命。 1、普通帐号安装protobuf unzip protobuf-cpp-3.0.0-alpha-3.zip cd protobuf-3.0.0-alpha-3/ ./configure make && sudo make install go get -u github....阅读全文

博文 2015-06-22 22:02:29 dazheng

Golang 微服务教程(一)

译文链接:wuYin/blog原文链接:ewanvalentine.io,翻译已获作者授权。 本节对 gRPC 的使用浅尝辄止,更多可参考:gRPC 中 Client 与 Server 数据交互的 4 种模式 前言 系列概览 《Golang 微服务教程》分为 10 篇,总结微服务开发、测试到部署的完整过程。 本节先介绍微服务的基础概念、术语,再创建我们的第一个微服务 consignment-service 的简洁版。在接下来的第 2~10 节文章中,我们会陆续创建以下微服务: consignment-service(货运服务) inventory-service(仓库服务) user-service(用户服务) authentication-service(认证服务) role-servic...阅读全文

博文 2018-06-01 16:34:38 wuYin

grpc加密TLS初体验(go、java版本)

grpc加密TLS初体验(go、java版本) grpc-go、java的安装编译helloworld可以参考如下文章 http://my.oschina.net/ysh3940/blog/403591 openssl的安装、生成秘钥证书可以参考如下文章 http://my.oschina.net/ysh3940/blog/464208 示例代码go版本 服务端代码 package main import ( "fmt" "log" "net" pb "github.com/grpc/grpc-common/go/helloworld" "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/cr...阅读全文

博文 2015-06-10 16:00:00 晓阳

Golang 中的微服务 - 第一部分

## 介绍 Golang 中的微服务系列总计十部分,预计每周更新。本系列的解决方案采用了 protobuf 和 gRPC 作为底层传输协议。为什么采用这两个技术呢?我花了相当长的时间,才想出并决定采用这个方案。这个方案对开发者来说,非常清晰而简明。我也很乐意把自己在搭建、测试和部署端到端的微服务过程中的心得,分享给想接触这块的朋友们。 在这个教程中,我们将先接触几个基础的概念和术语,然后开始搭建第一个简单的微服务模型。 本系列中,我们将会创建以下服务: - 委托 - 存货清单 - 用户 - 认证 - 角色 - 容器 整个技术栈从底至顶主要可划分为:golang、mongodb、grpc、docker、Google Cloud、Kubernetes、NATS、CircleCI、Terrafor...阅读全文

博文 2017-12-26 14:20:00 polaris

编写一个go gRPC的服务

前置条件: 获取 gRPC-go 源码 $ go get google.golang.org/grpc 简单例子的源码位置: $ cd $GOPATH/src/google.golang.org/grpc/examples/helloworld 复杂些例子的源码位置: $ cd $GOPATH/src/google.golang.org/grpc/examples/route_guide 写一个gRPC的服务,一般分下面几步: 在一个 .proto 文件内定义服务。 用 protocol buffer 编译器生成服务器和客户端代码。 使用 gRPC 的 Go API 为你的服务实现一个简单的客户端和服务器。 定义服务 在一个 .proto 文件中定义服务 简单的例子服务定义在: exampl...阅读全文

博文 2016-04-18 22:00:00 ghj1976

Golang通过Thrift框架完美实现跨语言调用

每种语言都有自己最擅长的领域,Golang 最适合的领域就是服务器端程序。 做为服务器端程序,需要考虑性能同时也要考虑与各种语言之间方便的通讯。采用http协议简单,但性能不高。采用TCP通讯,则需要考虑封包、解包、粘包等等很多因素,而且想写个高效的TCP服务,也很难。 其实,对于此类需求,采用RPC(Remote Procedure Call Protocol)编程最靠谱。使用 RPC 编程被认为是在分布式环境中运行的客户机和服务器应用程序之间进行可靠通信的最强大、最高效的方法之一。 Golang内置了对RPC支持,但只能适用于go语言程序之间调用,且貌似序列化、反序列化性能不高。如果go语言能使用Thrift开发,那么就如虎添翼了。可惜,thrift虽然很早就包含了golang的代码,但...阅读全文

博文 2015-08-26 18:00:01 scut1135

分布式RPC服务框架rpcx

rpcx是一个类似阿里巴巴 [Dubbo](https://www.oschina.net/p/dubbo) 和微博 [Motan](https://www.oschina.net/p/motan-weibo) 的分布式的RPC服务框架,基于Golang net/rpc实现。 [![吞吐率](https://static.oschina.net/uploads/img/201701/31092925_nmK2.png)](https://github.com/smallnest/rpcx/blob/master/_documents/throughput.png) [![超低的延迟Latency](https://static.oschina.net/uploads/img/201701...阅读全文

开源项目 2017-02-07 04:00:07 smallnest

Go Context的踩坑经历

---- 0 引言 ---- context 是Go中广泛使用的程序包,由Google官方开发,在1.7版本引入。它用来简化在多个go routine传递上下文数据、(手动/超时)中止routine树等操作,比如,官方http包使用context传递请求的上下文数据,gRpc使用context来终止某个请求产生的routine树。由于它使用简单,现在基本成了编写go基础库的通用规范。笔者在使用context上有一些经验,遂分享下。 本文主要谈谈以下几个方面的内容: * context的使用。 * context实现原理,哪些是需要注意的地方。 * 在实践中遇到的问题,分析问题产生的原因。 ---- 1 使用 ---- --------------- 1.1 核心接口Context -----...阅读全文

博文 2018-03-13 14:26:18 包增辉

Google 新实现的Protobuf RPC: grpc

自: http://www.dongliu.net/post/622450 Google 刚刚开源了grpc, 一个基于HTTP2 和 Protobuf 的RPC 实现。 Protobuf 本身虽然提供了RPC 的定义语法,但是一直以来,Google 只开源了Protobuf 序列化反序列化的代码,而没有开源RPC 的实现,于是存在着众多良莠不齐的第三方RPC 实现。 从实现和特性看来,grpc 更多的是考虑移动场景情况下客户端和服务端的通信,正如其自称的「general RPC framework that puts mobile and HTTP/2 first」。HTTP2 本身提供了连接多路复用、Body 和 Header 压缩等机制,grpc 基于此可以提供比较高效的实现。 grp...阅读全文

博文 2015-02-28 03:00:01 huangfox

protoc 和 protoc-gen-go 产生的 proto 文件代码对比

protoc 命令来自 https://github.com/google/protobuf, 由于这里没有 go 的产生代码, go的产生代码在 protoc-gen-go (https://github.com/golang/protobuf/)这里。 $ protoc --go_out=./go/ ./proto/helloworld.proto $ protoc --go_out=plugins=grpc:./go2/ ./proto/helloworld.proto 上面两个命令,第一个产生的只是 protobuffer 文件序列化和反序列化的代码。 第二个产生的则除了第一个的代码外,还增加服务器和客户端通讯、实现的公共库代码。 https://github.com/grpc/gr...阅读全文

博文 2016-05-20 02:00:01 ghj1976

gRPC服务发现&负载均衡

gRPC服务发现&负载均衡 构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案: 1、集中式LB(Proxy Model) 在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy等实现。LB上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向LB发起请求,由LB以某种策略,比如轮询(Round-Robin)做负载均衡后将请求转发到目标服务。LB一般具备健康检查能力,能自动摘除不健康的服务实例。 该方案主要问题: 单点问题,所有服务调用流量都经过LB,当服务数量和调用量大的时候,LB容易成为瓶颈,且一旦LB发生故障...阅读全文

博文 2017-03-13 07:01:10 SOFTFN

Google GRPC初试

GRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(ProtocolBuffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、和电池寿命。 1 安装 go get google.golang.org/grpc 2 创建helloworld.proto syntax = "proto3"; option java_package = "io.grpc.examples"; package helloworld; ...阅读全文

博文 2015-04-21 18:00:05 jiangsoft

开源图书《Go语言高级编程》

本书针对Go语言有一定经验,想深入了解Go语言各种高级用法的开发人员。 ![image](https://raw.githubusercontent.com/chai2010/advanced-go-programming-book/master/cover.png) [第一章 语言基础](https://github.com/chai2010/advanced-go-programming-book/blob/master/ch1-basic/readme.md) [1.1. Go语言创世纪](https://github.com/chai2010/advanced-go-programming-book/blob/master/ch1-basic/ch1-01-genesis.md...阅读全文

开源项目 2018-07-18 12:30:01 chai2010

编译gRPC Go版本使用的 ProtoBuffer 文件

本篇文章主要解决mac下安装ProtoBuffer,编译go版本gRPC用的.proto文件 安装 protoc 注意,gRPC 需要用到 proto3, 而目前 Release 的版本是 2.6.1, 所以我们需要去下载源码并编译。 https://developers.google.com/protocol-buffers/docs/downloads?hl=zh-cn protobuf 的源码在: https://github.com/google/protobuf Mac的特有前置安装需求 对Mac 用户来说, Unix tools 默认是不可用的, 需要首先安装 Xcode , 然后在 terminal 运行下面命令:$ sudo xcode-select –install Mac...阅读全文

博文 2015-06-10 03:00:05 ghj1976

Go 微服务实践

简介 近一两年来,微服务架构已经成为热门话题(microservices.io),与传统的一体化应用架构相比,微服务架构在开发、测试、部署方面都有众多吸引人之处,越来越多没有历史包袱的新项目都启用微服务架构的模式来开发。 我们这个团队经过深入思考之后,决定在一起美这个APP的后端开发中,选择Go作为开发语言,采用微服务模式来实现,经过近半年的实践,形成了一些心得,简单总结后分享出来,希望能够给大家一些帮助。 框架选择 不同的团队在选择基础框架(库)时考虑的要素不同,我们团队更喜欢小而美的框架,尽可能不要让框架侵入业务,易于升级、维护和替换,所以我们更愿意选择Library而不是Framework。 在web方面,我们选择了negroni作为middleware库,采用性能不错的httprou...阅读全文

博文 2017-02-20 07:00:34 徐学良

Google gRPC 简介

Google gRPC 简介 1. 简介 Google 刚刚开源了grpc, 一个基于HTTP2 和 Protobuf 的RPC 实现。 其中github地址: https://github.com/grpc/grpc Protobuf 本身虽然提供了RPC 的定义语法,但是一直以来,Google 只开源了Protobuf 序列化反序列化的代码,而没有开源RPC 的实现,于是存在着众多良莠不齐的第三方RPC 实现。 从实现和特性看来,grpc 更多的是考虑移动场景情况下客户端和服务端的通信,正如其自称的「general RPC framework that puts mobile and HTTP/2 first」。HTTP2 本身提供了连接多路复用、Body 和 Header 压缩等机制,...阅读全文

博文 2015-06-17 20:12:47 chenglinhust

Go 微服务实践

简介近一两年来,微服务架构已经成为热门话题(microservices.io),与传统的一体化应用架构相比,微服务架构在开发、测试、部署方面都有众多吸引人之处,越来越多没有历史包袱的新项目都启用微服务架构的模式来开发。我们这个团队经过深入思考之后,决定在一起美这个APP的后端开发中,选择Go作为开发语言,采用微服务模式来实现,经过近半年的实践,形成了一些心得,简单总结后分享出来,希望能够给大家一些帮助。框架选择不同的团队在选择基础框架(库)时考虑的要素不同,我们团队更喜欢小而美的框架,尽可能不要让框架侵入业务,易于升级、维护和替换,所以我们更愿意选择Library而不是Framework。在web方面,我们选择了negroni作为middleware库,采用性能不错的httprouter替换...阅读全文

博文 2017-02-10 11:43:52 Elvizlai

Google 发布 gRPC 云微服务, - a HTTP/2 RPC

gRPC 是谷歌提供的一套 RPC 框架支持10种语言( C, C++, C#, Go,Java, Node.js, Objective-C, PHP, Python, Ruby)为手机应用提供后台云服务。 gRPC 语言是跨平台的RPC系统开发,并且在google内部的很多区域得到了应用其中包括云计算服务。并且提供公共的API gRPC 特点:低cpu开销,快速开发分布式系统(包括手机应用)和即时通讯等。 本人英语火候欠佳,只能简单概括一下 。文章摘自:http://www.infoq.com/news/2015/02/grpc 本人强烈推荐: http://www.infoq.co...阅读全文

博文 2015-03-01 03:00:01 summer-arvin

Go 支持Protocol Buffers的配置

安装 protoc (The protocol compiler)是由C++写的,支持的 C++、Java、Python、Objective-C、C#、JavaNano、JavaScript、Ruby、PHP 的实现都在 https://github.com/google/protobuf 这个项目中, 例外的是 Go 的实现是在 https://github.com/golang/protobuf 这里。 所以Go 支持 Protocol Buffers的安装需要下面三步: Install the standard C++ implementation of protocol buffers from https://developers.google.com/protocol-buffe...阅读全文

博文 2016-04-28 02:00:04 ghj1976

跨境电商平台为何抛弃C#转投Go的怀抱

前言:跨境电商平台如何将业务从 C# 转换到 Go 语言,并最终均使用 Go 来实现?怎样从零打造一整套 Go 服务体系?怎样避免遇到转型微服务的坑?本文将通过 ezbuy 的资深开发工程师陈冶在 Gopher China 2017大会上的分享做详细介绍。正文:我们的平台在整个 Go 语言转型过程中涉及到一些微服务的转型,牵扯到微服务,如何管理这些服务,包括环境,这次分享我会从开发环境的构建,微服务选型,分布式追踪和跨数据中心四个方面来说。 一、开发环境构建1、规范开发环境每个人都有自己开发的环境,公司层面上很难保证每个人的环境是一样的,这样会导致很多兼容性的问题。有很多时候在本地开发很顺利,但一部署到线上或者到其他人的电脑就出现了莫名奇妙的问题,根源就在于环境不同。另一方面,我们在用微服务...阅读全文

博文 2017-08-10 00:48:21 陈治

Go使用grpc+http打造高性能微服务

大家可以发现,Go越来越流行,其一是目前云计算领域基本是使用Go作为底层开发语言;其二是随着区块链的火爆,引申出了其背后很多开源项目,很多都是使用Go语言进行开发;其三就是在微服务方面,Go也展示很大的优势性。那么微服务是什么,如何将其与Go做一个整合,来提升整体开发生产效率,下面会进行详细讲解。什么是微服务微服务的概念最早由 Martin Fowler 提出,在他的理论当中,微服务是一整套小的服务,其中每一个服务互相之间都是独立的,它们之间通过 lightweight 机制进行交互。图 1图 1 所示是最传统的一个应用软件架构,最顶层是 load balancer ,下面布局很多cuisine,这些cuisine共享一个数据库。图 2图 2 是微服务的架构图,由图中我们可以看出整体架构分布...阅读全文

博文 2017-11-22 09:32:26 astaxie

godep的save和update

godep save ./... 把依赖的包从GOPATH里找到,然后固化到当前目录Godeps目录里. 但是它不分版本:如果GOPATH里某个包升级了,godep save不会把它更新到Godeps里(假设Godeps里已有)。 godep update google.golang.org/grpc/... 把依赖的grpc包固化到当前目录Godeps目录里,用GOPATH里当前的版本...阅读全文

博文 2015-11-05 03:00:02 xiaouisme

grpc golang学习心得(1)----安装与测试

go语言小白,最近开始接触grpc,特此记录一下。 1.grpc安装 GRPC是一个高性能、开源、通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架。 目前grpc提供C、JAVA、GO语言版本,其代码都托管于github上,分别是:grpc, grpc-java, grpc-go。其中C版本支持C,C++,Node.js,Python,Ruby,Objective-C,PHP 和 C#。 本文只介绍grpc-go的安装及使用。 1.1 检查go语言版本 $go version go version go1.6.3 linux/amd64 grpc要求go语言版本至少为1.5+,版本过低的请先更新go语言版本:Getting St...阅读全文

博文 2016-09-08 11:00:01 xylin821

初识google多语言通信框架gRPC系列(二)编译gRPC

无论通过哪种语言调用gRPC,都必须要编译gRPC,因为生成proto访问类时,除了产生标准的数据定义类之外,还需要产生客户端代理类。客户端代理类必须由gRPC的各个语言的protoc插件来完成。而这些插件需要在gRPC编译后才能编译生成。 下面我们一步步的来说明如何得到gRPC。 获取gRPC源码 gRPC是开源框架,项目代码在github上,所以首先要安装github。 github安装后,在指定文件夹中,执行git命令就可以获取gRPC的所有源码。 git clone https://github.com/grpc/grpc.git 虽然在github的gRPC主页上提供了源代码打包下载,但是gRPC的依赖组件就无法自动获取了。 获取gRPC的依赖组件 正如所有的项目一样,gRPC也是...阅读全文

博文 2016-03-28 08:00:00 polinzhuo

初识google多语言通信框架gRPC系列(一)概述

gRPC概述 3/26/2016 9:16:08 AM 一直在寻找多平台多语言的通信框架,微软的WCF框架很强大和灵活,虽然也能通过自定义绑定和其他技术的客户端通信,但是始终没有实现多平台的技术框架的统一。google的gRPC是一个不错的选择,相比于类似框架Thrift等,google的解决方案更成熟和通用。不足的是由于刚刚开源,使用范围有限,国内资料更少。例如仅仅编译C++的gRPC,花了我两天的时间。在这个系列中,我会逐一介绍各个语言使用gRPC的细节。 gRPC是google2015年初开源的通信框架。 使用gRPC可以在客户端调用不同机器上的服务端的方法,而客户端和服务端的开发语言和运行环境可以有很多种,基本涵盖了主流语言和平台。双方交互的协议可以在proto文件中定义,客户端和服...阅读全文

博文 2016-03-26 22:00:01 polinzhuo

go基于grpc构建微服务框架-服务注册与发现

概述 grpc 是谷歌开源的rpc框架,基于http2实现,并支持跨语言,目前基本涵盖了主流语言.跨语言的实现主要得益于protobuf,通过编写proto文件,通过protobuf工具生成对应语言的类库进行使用. 对于go这样一门新生语言来说,生态链还处于发展阶段,微服务框架也是如此,下面将基于grpc-go版本搭建一个微服务通讯框架. 1.服务注册与发布的机制 1.1 解决的问题 服务注册与发布主要解决的服务依赖问题,通常意义上,如果A服务调用B服务时,最直接的做法是配置IP地址和端口.但随着服务依赖变多时,配置将会是否庞杂,且当服务发生迁移时,那么所有相关服务的配置均需要修改,这将十分难以维护以及容易出现问题.因此为了解决这种服务依赖关系,服务注册与发布应运而生. 1.2 机制 服务注...阅读全文

博文 2018-04-20 15:34:58 沐风

golang grpc thrift with aerospike

面对着数百G的数据,数万的TPS,一直在找合适的数据库及RPC框架。最近对aerospike和google grpc、apache thrift进行了简单的测试。 测试的内容比较简单,就是客户端根据KEY到服务端进行查找,返回value。为了测试简单,数据库中只有一对key_value。数据库用的aerospike,RPC框架分别用grpc\thrift,客户端、服务端都用GO语言开发。 grpc定义如下: syntax = "proto3"; package inf; message AuthRq { string clientId = 1; string token = 2; } message AuthRp { string token = 1; } message DataTypeR...阅读全文

博文 2015-10-17 22:00:02 dazheng

RPC 框架 GRPC

GRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:[grpc](https://github.com/grpc/grpc), [grpc-java](https://github.com/grpc/grpc-java), [grpc-go](https://github.com/grpc/grpc-go). 其中 C 版本支持 [C](https://github.com/grpc/grpc), [C++](https://github.com/grpc/grpc/tree/master/src/cpp), [Node.js](https://github.com/grpc/grpc/tree/mast...阅读全文

开源项目 2015-02-26 16:00:00 github

google多语言通信框架gRPC

google多语言通信框架gRPC系列(一)概述 gRPC概述 3/26/2016 9:16:08 AM 目录 一、概述 二、编译gRPC 三、C#中使用gRPC 四、C++中使用gRPC 一直在寻找多平台多语言的通信框架,微软的WCF框架很强大和灵活,虽然也能通过自定义绑定和其他技术的客户端通信,但是始终没有实现多平台的技术框架的统一。google的gRPC是一个不错的选择,相比于类似框架Thrift等,google的解决方案更成熟和通用。不足的是由于刚刚开源,使用范围有限,国内资料更少。例如仅仅编译C++的gRPC,花了我两天的时间。在这个系列中,我会逐一介绍各个语言使用gRPC的细节。 gRPC是google2015年初开源的通信框架。 使用gRPC可以在客户端调用不同机器上的服务端的...阅读全文

博文 2016-03-31 11:00:06 Leo_wl

Golang gRPC实践 连载七 HTTP协议转换

gRPC HTTP协议转换 正当有这个需求的时候,就看到了这个实现姿势。源自coreos的一篇博客,转载到了grpc官方博客gRPC with REST and Open APIs。 etcd3改用grpc后为了兼容原来的api,同时要提供http/json方式的API,为了满足这个需求,要么开发两套API,要么实现一种转换机制,他们选择了后者,而我们选择跟随他们的脚步。 他们实现了一个协议转换的网关,对应github上的项目grpc-gateway,这个网关负责接收客户端请求,然后决定直接转发给grpc服务还是转给http服务,当然,http服务也需要请求grpc服务获取响应,然后转为json响应给客户端。结构如图: 下面我们就直接实战吧。基于hello-tls项目扩展,客户端改动不大,服...阅读全文

博文 2017-04-14 06:00:42 徐学良

基于docker的分布式爬虫服务 Zerg

#  zerg     基于docker的分布式爬虫服务 [![image](https://camo.githubusercontent.com/e4deb67aa41f71d46774f192b05b75be5c3da112/68747470733a2f2f7261772e6769746875622e636f6d2f6875696368656e2f7a6572672f6d61737465722f646f632f7a6572672e706e67)](https://camo.githubusercontent.com/e4deb67aa41f71d46774f192b05b75be5c3da112/68747470733a2f2f7261772e6769746875622e636f6...阅读全文

开源项目 2016-04-17 16:00:00 huichen

万字解读:Service Mesh服务网格新生代--Istio

Service Mesh新秀,初出茅庐便声势浩荡,前有Google,IBM和Lyft倾情奉献,后有业界大佬俯首膜拜,这就是今天将要介绍的主角,扛起Service Mesh大旗,掀起新一轮微服务开发浪潮的Istio!讲师简介:敖小剑,十五年软件开发经验,微服务专家,专注于基础架构,cloud native拥护者,敏捷实践者。曾在亚信,爱立信,唯品会和ppmoney任职, 现任数人云资深架构师。以下内容为敖小剑在9月21号晚上进行的线上分享实录。今天的主角名叫 Istio,估计很多同学在此之前可能完全没有听过这个名字。请不必介意,没听过很正常,因为Istio的确是一个非常新的东西,出世也才四个月而已。今天的内容将会分成三个部分:介绍: 让大家了解Istio是什么,以及有什么好处,以及Istio背...阅读全文

博文 2017-10-20 11:23:51 敖小剑

Golang gRPC 示例

1、安装gRPC runtime go get google.golang.org/grpc 为了自动生成Golang的gRPC代码,需要安装protocal buffers compiler以及对应的GoLang插件 2、protocal buffer安装 从https://github.com/google/protobuf/releases下载安装包,例如:protobuf-cpp-3.0.0-beta-3.zip,解压后 ./configure make && make install 再添加环境变量:export LD_LIBRARY_PATH=/usr/local/lib,之后protoc命令即可运行 3、安装GoLang protoc 插件 go get -a github.c...阅读全文

博文 2016-05-19 16:00:02 YaoDD

gRPC

简介 gRPC是一个高性能、开源和通用的RPC框架,面向移动和HTTP/2设计。 目前提供C、Java和Go语言版本,分别是grpc、grpc-java、grpc-go。 gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。 这些特性使得其在移动设备上表现更好,更省电和节省空间占用。 gRPC由google开发,是一款语言中立、平台中立、开源的远程过程调用系统。 gRPC是什么 在gRPC里客户端应用可以像调用本地对象一样直接调用另一台不同机器上服务端应用的方法, 使得你能够更容易地创建分布式应用和服务。与许多RPC系统类似,gRPC也是基于以下理念: 定义一个服务,指定其能够被远程调用的方法(包括参数和返回类型)。 在服务端实现这个接口,并运...阅读全文

博文 2017-10-11 19:04:55 莫名FCJ

Golang gRPC实践 连载一 gRPC介绍与安装

gRPC 是一个高性能、开源、通用的RPC框架,由Google推出,基于HTTP/2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言。gRPC提供了一种简单的方法来精确的定义服务,并且为客户端和服务端自动生成可靠的功能库。 主要特性 强大的IDL gRPC使用ProtoBuf来定义服务,ProtoBuf是由Google开发的一种数据序列化协议(类似于XML、JSON、hessian)。ProtoBuf能够将数据进行序列化,并广泛应用在数据存储、通信协议等方面。 多语言支持 gRPC支持多种语言,并能够基于语言自动生成客户端和服务端功能库。目前已提供了C版本grpc、Java版本grpc-java 和 Go版本grpc-go,其它语言的版本正在积极开发...阅读全文

博文 2017-04-14 06:00:38 徐学良

golang安装gRpc

golang安装gRpc 安装官方安装命令: go get google.golang.org/grpc 是安装不起的,会报: package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc"(https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) 原因是这个代码已经转移到github上面了,但是代码里面的包依赖还是没有修改,还是google.golang.org这种, 所以不能使用go get的方式安装,正确的安装方式: git clone https:/...阅读全文

博文 2018-08-07 16:34:47 小线亮亮

继续寻找真心喜欢Go的兄弟加盟

公司:创业团队,拿到千万级别的天使投资,方向是医美领域的O2O和金融服务。这是一个还没有巨头的大市场。 坐标:上海,长寿路上,靠近7号地铁线。 环境:开发人员配备rmbp,再加一个28寸4k显示器 待遇:因人而异,可以谈,半年后可根据表现给予原始股激励。 技术体系:微服务体系,gRPC+nsq+go+docker 联系方式:加我微信吧 yun1ong (中间的是数字1...阅读全文

游戏分布式服务器pitaya

Pitaya是一款易于使用,快速且轻量级的分布式游戏服务器框架 Pitaya is an simple, fast and lightweight game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. It provides a basic development framework for distributed multiplayer games and server-side applications. Getting Started Prerequisites Go >= 1.10 e...阅读全文

开源项目 2019-01-31 10:14:52 topfreegames

golang protoc grpc编译没效果解决

1、下载github.com/golang/protobuf https://github.com/golang/protobuf 放到$GOPATN/src/github.com/golang目录下 2、安装grpc go get google.golang.org/grpc 3、安装proto go get -u github.com/golang/protobuf/proto go get -u github.com/golang/protobuf/protoc-gen-go 编译grpc/examples/helloworld/helloworld/下的proto文件 protoc --go_out=plugins=grpc:. helloworld.proto 如果编出来的没有加载...阅读全文

博文 2017-02-21 09:00:29 徐学良

go 的 protoc 插件调用逻辑

要让protoc使用插件,需要做下面事情: Place the plugin binary somewhere in the PATH and give it the name "protoc-gen-NAME" (replacing "NAME" with the name of your plugin). If you then invoke protoc with the parameter –NAME_out=OUT_DIR (again, replace "NAME" with your plugin's name), protoc will invoke your plugin to generate the output, which will be placed in OUT...阅读全文

博文 2016-05-14 10:00:00 ghj1976