RPC 框架之 Goole protobuf

Goole 的 protobuf  即 Protocol Buffers  是一个很好的RPC 框架,支持 c++ python  java 接下来进行官方文档的解读,然后你会对protobuf 会有一个很好的认识:

Protocol buffers  are language-neutral, platform-netural extensible mechanism for serializing strutctured data ,think xml . but smaller,faster . and simpler

You define how you want your data to be structured once 。then you can use special generated of soure code to easilly write and read your structured data

to and from a variety of data streams and using a variety of languages

即 protocol buffers 是一个语言中立,平台中立的 可扩展机制用于序列化结构化的数据,就像xml 一样,但是它的体积更小,更快,和更简单(放屁用的,难了谁学),

你需要定义一次你的什么样的数据结构,然后即就可以使用特殊生成的源代码去使用各种语言很轻松的读和写你的结构化数据进入到你的各种数据流中

Protocol buffers  currently supports generated code in java python ,Objective-C and c++ .With our new proto3 language version ,you can also work with Go ,Ruby ....with more

languages to come

Protocol buffers   当前支持 python .java ob c++ 代码的生成,在proto3 版本中,支持了GO Ruby 等更多语言;

java 如何使用之官方文档 tutorials ---指南,教程

the complete sample code for each application is also provided

在官网中每一个应用都提供了完整的例子代码

this tutorial  provides a basic java programmers‘s introduction to  working with protocol buffeers ,By walking through creating a simple example application 。it shows you how to

      1.Define meassage formats in a .proto file

      2.Use the protocol buffer compiler

      3.Use the java protocol  api to write and read message

这个指南提供了额一个基础的 java 程序在protobuf 运行介绍,通过建立一个简单的例子应用,展示你怎么去

      1. 定义消息格式在你的。proto file 文件中

      2. 使用protbuf 编译器

      3.使用java api 去读写消息

How do you serialize and retrieve structured data like this ?  There are a few ways to solve this problem

那你怎么去序列化和收到结构化数据呢,这是一些方式去解决这些问题

1.use java Seralization  this is the default approach since it‘s build into the language ,but it has a host of well-known problems ,and also dosen‘t work very well  if you need to

share data with applications written  in C++ or python

使用java 序列化,它是默认的方法,因为他是java 的内置的,但是它有很多已知的问题,所以如果你需要去分享数据和其他语言,它不能进行很好的工作就是不能用的意思

原文地址:https://www.cnblogs.com/iscys/p/9654405.html

时间: 2024-08-02 04:33:40

RPC 框架之 Goole protobuf的相关文章

谷歌发布的首款基于HTTP/2和protobuf的RPC框架:GRPC

Google 刚刚开源了grpc,  一个基于HTTP2 和 Protobuf 的高性能.开源.通用的RPC框架.Protobuf 本身虽然提供了RPC  的定义语法,但是一直以来,Google 只开源了Protobuf 序列化反序列化的代码,而没有开源RPC 的实现,于是存在着众多良莠不齐的第三方RPC 实现,不过我在项目中采用WCF搭配Protobuf是一个很不错的RPC实现,Google这个框架是是基于HTTP2的,这是他有特色的地方,带来诸如双向流.流控.头部压缩.单TCP连接上的多复用

gRPC:Google开源的基于HTTP/2和ProtoBuf的通用RPC框架

gRPC:Google开源的基于HTTP/2和ProtoBuf的通用RPC框架 Google Guava官方教程(中文版) | 并发编程网 - ifeve.com Google Guava官方教程(中文版)

一个入门rpc框架的学习

一个入门rpc框架的学习 参考 huangyong-rpc 轻量级分布式RPC框架 该程序是一个短连接的rpc实现 简介 RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样. RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC, 它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC.会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化. 众所

RPC框架性能基本比较测试

gRPC是Google最近公布的开源软件,基于最新的HTTP2.0协议,并支持常见的众多编程语言. 我们知道HTTP2.0是基于二进制的HTTP协议升级版本,目前各大浏览器都在快马加鞭的加以支持. 我们可以设想一下,未来浏览器支持HTTP2.0,并通过现有开源序列化库比如protobuf等,可以直接和各种语言的服务进行高效交互,这将是多么“美好”的场景! gPRC的Java实现底层网络库是Netty,而且是用到最新的Netty5.0.0.Alpha3的开发版本,因为最新版本针对HTTP/2做了很

C# 的轻量级 RPC 框架

Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标:20000 tps. Concurrency level: 8 threads Complete requests: 20000 Time taken for tests: 0.886 seconds Time per request: 0.044 ms (avg) Requests per second: 22573 [#/sec] (avg) Concurrency level: 8

Google 高性能 RPC 框架 gRPC 1.0.0 发布(附精彩评论)

gRPC是一个高性能.开源.通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架. gRPC基于HTTP/2标准设计,带来诸如双向流.流控.头部压缩.单TCP连接上的多复用请求等特性.这些特性使得其在移动设备上表现更好,更省电且节省空间占用. gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产.API现在也是很稳定的. 关于Java版本发布情况,大家阅读发布日志:https://github.com/g

【转】轻量级分布式 RPC 框架

第一步:编写服务接口 第二步:编写服务接口的实现类 第三步:配置服务端 第四步:启动服务器并发布服务 第五步:实现服务注册 第六步:实现 RPC 服务器 第七步:配置客户端 第八步:实现服务发现 第九步:实现 RPC 代理 第十步:发送 RPC 请求 总结 附录:Maven 依赖 RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样. RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 H

轻量级分布式 RPC 框架

原文出处: 黄勇 RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样. RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC.会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化. 众所周知,TCP 是传输层协议,HTTP 是应用层协议,而传输层较应用层更加底层,在数据传输方面,越底层越快,

Java实现简单的RPC框架

一.RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用).Hessian.Http invoker等.另外,RPC是与语言无关的. RPC示意图 如上图所示,假设Computer1在调用sayHi()方法,对于Computer1而言调用sayHi()方法就像调用本地方法一样,调用 –>返回.但从后续调用可以看出Computer1调用的是Computer2