gRPC概述 概览
gRPC是Google开发并开源的一套语言中立的RPC框架
特点
语言中立 基于IDL文件定义服务,通过proto3工具生成指定语言的数据结构,服务端接口以及客户端Stub 通信协议基于标准的HTTP/2设计,支持双向流,消息头压缩,单TCP的多路复用,服务端推送等特性,可以在移动端设备上更加省电和节省流量 序列化支持Protocol Buffer 和JSON协议,该协议是一种语言无关的高性能序列化框架 服务端创建流程 gRPC服务端java版本的实现使用了Build模式,对底层服务绑定,transportServer和NettyServer的创建和实例化都做了封装和屏蔽,让服务调用者不用关心gRPC的调用细节
…
server 学习 服务注册: 在进行rpc方法调用前,需要先进行方法注册
func (server *Server) register(rcvr interface{}, name string, useName bool) error { //整个工作就是构造service对象,填充属性 //最后调用`sync.Map.LoadOrStore(sname,s)`方法完成服务注册 s := new(service) s.typ = reflect.TypeOf(rcvr) s.rcvr = reflect.ValueOf(rcvr) sname := reflect.Indirect(s.rcvr).Type().Name() …
RPC原理解析 简介: RPC 的全称是 Remote Procedure Call,即远程过程调用
具有以下作用:
屏蔽远程调用跟本地调用的区别,让我们感觉就是调用项目内的方法; 隐藏底层网络通信的复杂性,让我们更专注于业务逻辑。 TIPs:
使用rpc的场景是否合适, 什么是否需要开启压缩,根据配置,根据部署机器配置,根据网络环境,根据传输数据大小 调用过程超时处理,以及失败重试机制,例如dubbo的failfast,failover等 服务集群注意点 服务注册,发现,服务注册中心 服务治理,服务分组,服务别名,服务限流,服务降级,服务调用链,链路跟踪 服务监控,调用链监控,方法监控,数据指标监控(TPS,调用量,可用率,调用返 …