Thrift RPC开发
文章平均质量分 91
NullPointerExcept
这个作者很懒,什么都没留下…
展开
-
RPC学习----Thrift快速入门和Java简单示例
一.什么是RPC?RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。转载 2016-06-08 17:03:10 · 983 阅读 · 0 评论 -
开源RPC(gRPC/Thrift)框架性能评测
海量互联网业务系统只能依赖分布式架构来解决,而分布式开发的基石则是RPC;本文主要针对两个开源的RPC框架(gRPC、 Apache Thrift),以及配合GoLang、C++两个开发语言进行性能对比分析。C++、Thrift都是比较成熟的技术,先简单介绍一下GoLang以及gRPC;GoLangGo语言是由Google开发的一个开源项目,目的之一为了提高开发人员的编转载 2016-11-29 16:52:14 · 22280 阅读 · 0 评论 -
gRPC初探
gRPC是google新开源的一个基于protobuf的rpc框架,使用通信协议为HTTP2,网络通信层基于netty实现;它首先提供移动客户端的rpc功能,同时也是一个通用的rpc框架。下面是我做的一个简单的gRPC的demo。通过IDL定义服务接口和消息格式如下IDL文件,定义了服务接口和消息格式,SearchService.prot转载 2016-11-29 16:53:30 · 5078 阅读 · 0 评论 -
rpc框架之gRPC 学习 - hello world
grpc是google在github于2015年开源的一款RPC框架,虽然protobuf很早google就开源了,但是google一直没推出正式的开源框架,导致github上基于protobuf的rpc五花八门,国内比较著名的有百度的sofa-pbrpc,但是遗憾的是soft-pbrpc没有对应的java实现版本。rgpc还有一个独立的官网:http://www.grpc.io/,目前已经支持的转载 2016-11-29 16:54:47 · 2333 阅读 · 0 评论 -
基于ZooKeeper和Thrift构建动态RPC调用
说明:这次的博客是自己在复旦大学一个课程的作业。有修改、调整一、基本功能 实现服务端向ZooKeeper集群注册自己提供的服务,并且把自己的IP地址和服务端口创建到具体的服务目录下。客户端向ZooKeeper集群监听自己关注的RPC服务(例如:sayHello和天气服务), 监听服务目录下的IP地址列表变化。若要在自己的项目中使用,可以采用阿里的Dubbo分布式服务框架。转载 2016-11-17 11:27:06 · 616 阅读 · 0 评论 -
通过 Spring + Netty + Protostuff + ZooKeeper 实现了一个轻量级 RPC 框架
RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。众所周知,TCP 是传输转载 2016-11-17 15:26:11 · 3208 阅读 · 5 评论 -
基于Zookeeper的服务注册与发现
背景大多数系统都是从一个单一系统开始起步的,随着公司业务的快速发展,这个单一系统变得越来越庞大,带来几个问题:1. 随着访问量的不断攀升,纯粹通过提升机器的性能来已经不能解决问题,系统无法进行有效的水平扩展2. 维护这个单一系统,变得越来越复杂3. 同时,随着业务场景的不同以及大研发的招兵买马带来了不同技术背景的工程师,在原有达达Python技术栈的基础上,引入了J转载 2016-11-17 16:21:23 · 1730 阅读 · 0 评论 -
Zookeeper实现简单的分布式RPC框架
在分布式系统中,为了提供系统的可用性和稳定性一般都会将服务部署在多台服务器上,为了实现自动注册自动发现远程服务,通过ZK,和ProtocolBuffe 以及Nettyr实现一个简单的分布式RPC框架。首先简单介绍一下Zookeeper和ProtocalBufferZookeeper 是由Apache Handoop的子项目发展而来。是知名的互联网公司Yahoo创建的。Zookeep转载 2016-11-17 16:22:12 · 1188 阅读 · 0 评论 -
阿里巴巴前架构师360度无死角剖析微服务
微服务是当前软件架构领域非常热门的词汇,在社区中也有很多热烈的讨论。因此,OSC第130期高手问答的主题是“究竟什么才是微服务”,并邀请了黄勇作为高手嘉宾。黄勇,现任特赞公司CTO,曾任阿里巴巴公司系统架构师。对微服务架构与大数据技术有深入研究,具有丰富的网站架构设计经验与项目管理经验,擅长敏捷开发模式。国内开源软件推动者之一,活跃于“开源中国”社区网站,Smart 开源框架创始人,图书《转载 2016-12-06 10:12:07 · 1114 阅读 · 0 评论 -
深度解析gRPC以及京东分布式服务框架跨语言实战
gRPC是什么 gRPC是Google 开发的基于HTTP/2和Protocol Buffer 3的RPC 框架。 gRPC是开源的,有 C、Java、Go等多种语言的实现,可以轻松实现跨语言调用。 声称是"一个高性能,开源,将移动和HTTP/2放在首位的通用的RPC框架" 当前版本1.1.1,主要技术栈:Netty-4.1.8,Protobuff-3.1.0,Guava-转载 2017-03-03 09:53:27 · 6398 阅读 · 0 评论 -
降级特技之使用Hystrix实现降级和熔断—《亿级流量网站架构核心技术》
使用Hystrix实现降级 通过配置中心可以人工进行降级,而我们也需要根据服务的超时时间进行自动降级,本部分将演示使用Hystrix实现超时自动降级。Hystrix介绍请参考“第3章 隔离术”中的Hystrix简介部分。 public class GetStockServiceCommand extends HystrixCommand { private StockServic转载 2017-04-18 09:27:12 · 5855 阅读 · 0 评论 -
从Protocol Buffers 到 gRPC
从Protocol Buffers 到 gRPC标签: ProtoBuf gRPC HTTP/2我们项目中准备使用Protocol Buffers来进行服务器和客户端的消息交互,采用gRPC开源框架,服务器使用Java,客户端有Android和iOS。从Protocol Buffers 到 gRPC一Protocol Buffers文转载 2016-11-29 16:50:21 · 627 阅读 · 0 评论 -
初识google多语言通信框架gRPC系列(二)编译gRPC
目录一、概述二、编译gRPC三、C#中使用gRPC四、C++中使用gRPC无论通过哪种语言调用gRPC,都必须要编译gRPC,因为生成proto访问类时,除了产生标准的数据定义类之外,还需要产生客户端代理类。客户端代理类必须由gRPC的各个语言的protoc插件来完成。而这些插件需要在gRPC编译后才能编译生成。下面我们一步步的来说明如何得到gRPC转载 2016-11-29 16:48:18 · 886 阅读 · 0 评论 -
Thrift在windows下的安装以及thrift命令生成java文件
一、安装Thrift首先下载thrift,地址http://apache.fayea.com/thrift/0.9.2/,下载thrift-0.9.2.exe。重命名为thrift.exe,复制到D盘或者C盘下,本文复制到D盘根目录下,然后配置环境变量,如下图所示。在命令行下输入,thrift -version如下图所示,即为安装成功。二、使用命令行生成java文件。编原创 2016-06-14 16:06:45 · 10511 阅读 · 1 评论 -
序列化和反序列化的概念
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是转载 2016-09-27 15:55:38 · 259 阅读 · 0 评论 -
Google Protocol Buffers Java实例
Google Protocol Buffers 是 Google 公司开发的一款简洁、高效的数据序列化/反序列化的工具,有着跨平台、可扩展的优点,尤其适合作为数据存储和RPC数据交换格式。目前,已经被 Hadoop 用作其 RPC 模块的基础依赖。本文将根据网络上流行的一个例子,用Java程序来直观地展示如何用 Protocol Buffers 进行代码生成、数据序列化存储以及转载 2016-09-28 16:44:29 · 1116 阅读 · 0 评论 -
RPC框架性能基本比较测试
gRPC是Google最近公布的开源软件,基于最新的HTTP2.0协议,并支持常见的众多编程语言。 我们知道HTTP2.0是基于二进制的HTTP协议升级版本,目前各大浏览器都在快马加鞭的加以支持。 我们可以设想一下,未来浏览器支持HTTP2.0,并通过现有开源序列化库比如protobuf等,可以直接和各种语言的服务进行高效交互,这将是多么“美好”的场景!gPRC的Java实现底层网络库转载 2016-11-29 16:38:27 · 441 阅读 · 0 评论 -
GRPC原理解析
GRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP2协议,基于protobuf 3.x,基于Netty 4.x +。GRPC与thrift、avro-rpc等其实在总体原理上并没有太大的区别,简而言之GRPC并没有太多突破性的创新。(如下描述,均基于JAVA语言的实现) 对于开发者而言: 1)需要使用protobuf定义接口,即.proto文件转载 2016-11-29 16:39:14 · 13827 阅读 · 0 评论 -
ProtoBuf 与 gRPC 你需要知道的知识
ProtoBuf 是一套接口描述语言(IDL)和相关工具集(主要是 protoc,基于 C++ 实现),类似 Apache 的 Thrift)。用户写好 .proto 描述文件,之后使用 protoc 可以很容易编译成众多计算机语言(C++、Java、Python、C#、Golang 等)的接口代码。这些代码可以支持 gRPC,也可以不支持。gRPC 是 Google 开源的 RP转载 2016-11-29 16:42:38 · 677 阅读 · 0 评论 -
grpc 的协议分析
grpc 和通常的基于TCP的实现不同,是直接基于HTTP2 协议的。HTTP2 使得grpc 能够更好的适用于移动客户端和服务端通信的使用场景,并且连接多路复用也保证了RPC 的效率。grpc 的协议设计上很好的使用了HTTP2 现有的语义,请求和响应的数据使用HTTP Body 发送,其他的控制信息则用Header 表示。先看个例子,假设Protobuf 定义如下:packag转载 2016-11-29 16:43:47 · 7078 阅读 · 1 评论 -
gRPC的简单Go例子
gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节转载 2016-11-29 16:44:24 · 1764 阅读 · 0 评论 -
初识google多语言通信框架gRPC系列(一)概述
gRPC概述3/26/2016 9:16:08 AM目录一、概述二、编译gRPC三、C#中使用gRPC四、C++中使用gRPC一直在寻找多平台多语言的通信框架,微软的WCF框架很强大和灵活,虽然也能通过自定义绑定和其他技术的客户端通信,但是始终没有实现多平台的技术框架的统一。google的gRPC是一个不错的选择,相比于类似框架Thrift等转载 2016-11-29 16:47:44 · 878 阅读 · 0 评论 -
分布式RPC框架性能大比拼
Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。不过,略有遗憾的是,据说在淘宝内部,dubbo由于跟淘宝另一个类似的框架HSF(非开源)有竞争关系,导致dubbo团队已经解散(参见http://www.oschina.net/news/55059/druid-1-0-9 中的评论),反到是转载 2017-04-17 10:11:03 · 3674 阅读 · 0 评论