-
go中的unsafe
所属栏目:[大数据] 日期:2021-05-21 热度:72
unsafe 前言 什么是unsafe,为什么需要unsafe unsafe实现原理 unsafe.Pointer uintptr类型 unsafe.Pointer uintptr 总结 参考 unsafe@H_301_25@ 前言 在阅读go源码的时候,发现很多地方使用了 unsafe.Pointer 来处理指针类型的转换,这次来深入的探究下。 什[详细]
-
go中的类型转换成interface之后如何复原
所属栏目:[大数据] 日期:2021-05-21 热度:185
go中interface转换成原来的类型 首先了解下interface 什么是interface? 如何判断interface变量存储的是哪种类型 fmt 反射 断言 来看下interface的底层源码 eface iface 接口的动态类型和动态值 interface如何支持泛型 参考 go中interface转换成原来的类型 首[详细]
-
go中的error小结
所属栏目:[大数据] 日期:2021-05-21 热度:68
go中的error error和panic error接口 go中err的困局 推荐方法 总结 参考 go中的error go中的错误处理,是通过返回值的形式来出来,要么你忽略,要么你处理(处理也可以是继续返回给调用者),对于golang这种设计方式,我们会在代码中写大量的if判断,以便做[详细]
-
golang环境安装和配置
所属栏目:[大数据] 日期:2021-05-21 热度:55
go中环境安装 前言 最近在工作中需要新配置go环境,每次都要去网上查找教程,浪费时间,那么就自己总结下。 下载安装 linux Golang官网下载地址:https://golang.org/dl/ 1、选择你要安装的版本 File name Kind OS Arch Size SHA256 Checksumgo1. 13.8 .src.[详细]
-
go语言学习--内核态和用户态(协程)
所属栏目:[大数据] 日期:2021-05-21 热度:139
go中的一个特点就是引入了相比于线程更加轻量级的协程(用户态的线程),那么什么是用户态和内核态呢? 一、什么是用户态和内核态 当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特[详细]
-
defer使用小结
所属栏目:[大数据] 日期:2021-05-21 热度:111
defer 前言 defer的定义 defer执行的规则 为什么需要defer defer进阶 作为匿名函数 作为函数参数 defer命令执行的时机 defer配合recover 总结 参考 defer 前言 defer作为go里面一个延迟调用的机制,它的存在能够大大的帮助我们优化我们的代码结构。但是我们[详细]
-
如何在客户端使用Java读取gRPC中的元数据
所属栏目:[大数据] 日期:2021-05-21 热度:114
我正在使用 Java和Protoc 3.0编译器,我的proto文件在下面提到. https://github.com/openconfig/public/blob/master/release/models/rpc/openconfig-rpc-api.yang Syntax = "proto3";package Telemetry;// Interface exported by Agentservice OpenConfigTelem[详细]
-
gRPC 中 Client 与 Server 数据交互的 4 种模式
所属栏目:[大数据] 日期:2021-05-21 热度:116
项目地址:grpc-modes 最近使用 gRPC 入门微服务开发,特此总结了 gRPC 中 4 种运行模式 目录结构 $GOPATH└── grpc ├── simple // 简单模式 RPC │ ├── client │ │ └── client.go # 客户端代码 │ ├── proto │ │ ├── user.pb.go │ │[详细]
-
go基于grpc构建微服务框架-集成opentracing
所属栏目:[大数据] 日期:2021-05-21 热度:114
1.概述 存在这样一种场景,当我们进行微服务拆分后,一个请求将会经过多个服务处理之后再返回,这时,如果在请求的链路上某个服务出现故障时,排查故障将会比较困难. 我们可能需要将请求经过的服务,挨个查看日志进行分析,当服务有几十上百个实例时,这无[详细]
-
go基于grpc构建微服务框架-结构化日志输出
所属栏目:[大数据] 日期:2021-05-21 热度:84
1.结构化日志的意义 1.1 日志格式化 日志主要用于跟踪服务的运行信息,作为后端攻城狮,一般都会有一种想法,平时的时候希望日志越少越好,出问题的时候又总是抱怨,怎么才tmd这点日志,还在关键的地方没打印. 因此,日志很重要,将日志进行格式化也很重要,日志格式[详细]
-
golang 网络框架之 grpc
所属栏目:[大数据] 日期:2021-05-21 热度:179
grpc 是 google 开源的一款网络框架,具有极好的性能,可能是目前性能最好的网络框架,支持流式 rpc,可以很方便地构建消息订阅发布系统,支持几乎所有主流的语言,使用上面也很简单,公司很多服务基于 grpc 框架构建,运行非常稳定 开始之前首先你要知道网[详细]
-
gRPC
所属栏目:[大数据] 日期:2021-05-21 热度:55
gRPC入门 SIMPLE RPC 客户端 server api SERVER-to-client streaming RPC 定义接口 客户端 server api A CLIENT-to-server streaming RPC 定义接口 客户端 @L_404_11@ A Bidirectional streaming RPC 定义接口 客户端 server api 遇到问题 gRPC入门 刚学习gR[详细]
-
Go实战--golang中使用gRPC和Protobuf实现高性能api(golang/proto
所属栏目:[大数据] 日期:2021-05-21 热度:64
生命不止,继续 go go go !!! 号外号外,插播一条广告,通过博客的uv可以看到周五,程序员是不怎么干活的: 本篇博客,使用gRPC和Protobuf,实现所谓的高性能api。 protobuf golang中的protobuf大家应该不会很陌生,之前也有博客介绍过: Go实战–go中使用go[详细]
-
golang安装gRpc
所属栏目:[大数据] 日期:2021-05-21 热度:139
安装官方安装命令: 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:[详细]
-
go的grpc实现
所属栏目:[大数据] 日期:2021-05-21 热度:98
??gRPC是Google的RPC框架, 开源、高性能、跨语言 ,基于HTTP/2通讯协议和Protocol Buffer 3数据序列化协议。 过程如下图所示: ??调用的双方可以使用完全不同的两种语言来实现,分别实现client端和server端,按照约定的protobuf协议进行交互。client端会保[详细]
-
Golang gRPC 示例
所属栏目:[大数据] 日期:2021-05-21 热度:166
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下载安装包,例如:pr[详细]
-
深入了解 gRPC:协议
所属栏目:[大数据] 日期:2021-05-21 热度:64
RC3 版本对于 TiKV 来说最重要的功能就是支持了 gRPC,也就意味着后面大家可以非常方便的使用自己喜欢的语音对接 TiKV 了。 gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,理解下 HTTP/2 是必要的,这里先简单介绍一下 HTTP/2 相关的知识,然后在介绍下 gRPC[详细]
-
gRPC golang开发指南
所属栏目:[大数据] 日期:2021-05-21 热度:138
为什么使用gRPC 样例代码和环境的建立 样例测试 服务定义 生成客户端和服务端代码 创建服务端 实现RouteGuide Simple RPC Server-side streaming RPC Client-side streaming RPC Bidirectional streaming RPC Starting the server Creating the client 创建[详细]
-
Golang gRPC实践 连载七 HTTP协议转换
所属栏目:[大数据] 日期:2021-05-21 热度:118
gRPC HTTP协议转换 正当有这个需求的时候,就看到了这个实现姿势。源自coreos的一篇博客,转载到了grpc官方博客gRPC with REST and Open APIs。 etcd3改用grpc后为了兼容原来的api,同时要提供http/json方式的API,为了满足这个需求,要么开发两套API,要么[详细]
-
Golang gRPC实践 连载六 内置Trace
所属栏目:[大数据] 日期:2021-05-21 热度:89
内置Trace grpc默认提供了客户端和服务端的trace日志,可惜没有提供自定义接口,当前只能查看基本的事件日志和请求日志,对于基本的请求状态查看也是很有帮助的,客户端与服务端基本一致,这里已服务端开启trace为例,修改hello项目的server代码: server/ma[详细]
-
Golang gRPC实践 连载五 拦截器 Interceptor
所属栏目:[大数据] 日期:2021-05-21 热度:125
Interceptor grpc服务端提供了interceptor功能,可以在服务端接收到请求时优先对请求中的数据做一些处理后再转交给指定的服务处理并响应,功能类似middleware,很适合在这里处理验证、日志等流程。 在自定义Token认证的示例中,认证信息是由每个服务中的方法[详细]
-
Golang gRPC实践 连载二 Hello gRPC
所属栏目:[大数据] 日期:2021-05-21 热度:74
Hello gRPC 按照惯例,这里从一个Hello项目开始,本项目定义了一个Hello Service,客户端发送包含字符串名字的请求,服务端返回Hello消息。 流程: 编写 .proto 描述文件 编译生成 .pb.go 文件 服务端实现约定的接口并提供服务 客户端按照约定调用方法请求服[详细]
-
grpc(4):使用 golang 调用consul api 接口,注册user-tomcat
所属栏目:[大数据] 日期:2021-05-21 热度:130
1,关于consul dubbo的注册中心是zookeeper,redis。 motan的注册中心是zookeeper,consul。 kubernetes的注册中心是 etcd。 使用consul的好处是服务发现啥的都支持了。 可以使用域名进行负载均衡。 也是一个不错的 Server-Side Discovery Pattern 。 2,启[详细]
-
golang protoc grpc编译没效果解决
所属栏目:[大数据] 日期:2021-05-21 热度:104
1、下载github.com/golang/protobuf https://github.com/golang/protobuf 放到$GOPATN/src/github.com/golang目录下 2、安装grpc gogetgoogle.golang.org/grpc 3、安装proto goget-ugithub.com/golang/protobuf/proto goget-ugithub.com/golang/protobuf/pro[详细]
-
golang grpc服务端客户端简单源码实现
所属栏目:[大数据] 日期:2021-05-21 热度:101
协议 hello.proto 文件: Syntax = "proto3"; package hello; message HelloRequest { string greeting = 1; } message HelloResponse { string reply = 1; repeated int32 number = 4; } service HelloService { rpc SayHello(HelloRequest) returns (Hello[详细]