Pebble-RPC

分布式开发框架
授权协议 BSD
开发语言 C/C++
所属分类 Web应用开发、 RPC/XMLRPC项目
软件类型 开源软件
地区 国产
投 递 者 轩辕远
操作系统 Linux
开源组织 腾讯
适用人群 未知
 软件概览

Pebble是一个分布式开发框架。基于该框架,可以让开发者只需专注于业务逻辑的实现,而不需要关注基础功能的开发,如网络通信,数据存储,集群管理等。使用pebble配套的运营系统,可方便的进行游戏开区开服,版本升级,扩容缩容等操作。

当前发布的Pebble版本,是一个Linux平台C++版本的后台开发框架。整个分布式开发框架包括:服务管理、集群管理、RPC通信、协程、广播、进程框架。

  • 服务管理:有了服务管理功能,客户端无需手工配置服务器端的地址即可通信。每一个服务(service)都有一个唯一的名字,服务由一组具体的函数组成,每个服务器进程可以管理多个服务。我们使用ZooKeeper来帮助完成服务和集群状态管理:使用Pebble框架,服务端可方便的将服务的地址注册到ZooKeeper,客户端根据服务名字可方便的从ZooKeeper获得服务器地址。

  • 集群管理:服务进程启动后,会自动与ZooKeeper之间维持心跳。客户端会定时从ZooKeeper获取服务器端的地址信息,一旦服务进程故障,客户端会自动将其从服务列表中去除。同理,增加服务进程也是一样。从而可方便的实现集群状态管理,可方便的对服务器进行扩容和缩容。

  • RPC通信:RPC(Remote Procedure Call,远程过程调用),可以让开发者基于接口编程,更加专注于业务逻辑。借用于接口描述语言(IDL)和工具,可以自动生成客户端和服务器端的接口代码,服务器按需实现自己的业务逻辑,客户端只需要按接口调用。双方均无需要关心协议编解码、网络发送的细节,减轻了开发量的同时也减少出错的可能。

  • 协程:协程可降低异步代码的复杂度,让代码看起来像同步一样,同时具有异步的性能。开发框架很好的集成了协程的功能,服务器端的处理已经在一个协程里面。当服务器端收到客户端的RPC请求时,系统会自动为你创建协程,请注意不要调用阻塞操作。如果要调用阻塞操作,需要将其修改为以协程的方式调用,否则整个server的处理能力会受到影响。

  • 广播:广播是游戏业务的一个常见需求。pebble支持服务器端server之间的广播,也支持多服务器与多手机客户端之间的广播。无论是手机客户端还是后台服务器,只要大家加入一个相同的频道(channel),就可以做到一呼百应。广播功能是在RPC的基础上实现,所以它的编程体验与RPC是一致的。

  • 进程框架:它是一个单线程的开发框架,集成了上述功能。使用我们的框架,只需要调用少量接口,即可快速开发出游戏后台server

  • 分布式计算场景下,在一台计算机上运行的程序,需要跟另一台计算机上的程序进行交互。从开发角度而言,如果这种交互看起来跟本地函数调用是一模一样的,成本是最低。 因此,RPC设计需要考虑以下三个因素: 1.在本地和远程计算机之间,传递对象。 对象的角色是入参和返回值。这种传递对方的方式叫序列化和反序列化。对象是类的实例化,对象内部有函数和变量。一个对象在生命周期内可以经历多种计算,形成特定的状态,序列化

  • 什么样的RPC才是好用的RPC 现在RPC框架很多,但是真正好用的RPC却是少之又少。那么什么是好用的RPC,什么是不好用的RPC呢,有一个评判标准吗?下面是我列举出来的衡量RPC好用与否的几条标准: 真的像本地函数一样调用 使用简单,用户只需要关注业务即可 灵活,RPC调用的序列化方式可以自由定制,比如支持json,支持msgpack等方式 下面来分别解释这几条标准。 标准1:真的像本地函数一样

  • 作者: 韩伟  构建游戏世界的Pebble 愿景:出色的游戏服务器端底层框架 现代游戏项目中,为了让更多的玩家能在一起玩,游戏服务器所需要承载的在线玩家数量越来越多。同时为了让游戏更好玩,越来越多复杂的业务逻辑都需要放在游戏服务器端上运行。因此,拥有一个同时具备可灵活扩展功能、并且能轻松构建服务器集群的底层框架,变得越来越有必要。这样游戏程序员可以专心编写好玩的游戏逻辑,而无需去担心服务器承载量的

  • 简介 Pebble定位为一个好用、可靠、高性能、易扩展的分布式开发框架,支持多种使用方式: 使用完整的pebble框架 独立使用各pebble子模块 在其他框架中嵌入pebble框架。 Pebble具备良好的扩展性,可非常方便的扩展对接现有系统。基于该框架,可以让开发者只需专注于业务逻辑的实现,而不需要关注基础功能的开发,如网络通信,数据存储,集群管理等。使用pebble配套的运营系统,可方便的进

  • 最近研究了T分布式开源框架Pebble,基本上想要的基础组件都有了,不过文档很糟糕,这也是T特色,只管开源不管维护: 1、支持rpc/reverse_rpc 2、支持http驱动 3、支持tcp驱动(基于zmq) 4、支持zookeeper 5、支持广播,单播 6、支持协程 一、安装 参考根目录下:INSTALL.txt 如果编译出错,加上相应的头文件即可; 二、测试 测试了tutorial里的案

 相关资料
  • 主要内容:1.RPC流水线工程,2.RPC 技术选型,3.如何设计 RPC1.RPC流水线工程 ① Client以本地调用的方式调用服务 ② Client Stub接收到调用后,把服务调用相关信息组装成需要网络传输的消息体,并找到服务地址(host:port),对消息进行编码后交给Connector进行发送 ③ Connector通过网络通道发送消息给Acceptor ④ Acceptor接收到消息后交给Server Stub ⑤ Server Stub对消息进行解码,

  • distributed RPC(分布式RPC) (DRPC) 的设计目的是充分利用Storm的计算能力实现高密度的并行实时计算。Storm topology(拓扑)接受若干个函数参数作为输入,然后输出这些函数调用的结果。 严格的来说,DRPC不能够算作Storm的一个特性,因为它是一种基于Storm 原语(Stream,Spout,Bolt,Topology)实现的设计模式。DRPC可以脱离Sto

  • 本书首先介绍了使用Go官方库开发RPC服务的方法,然后介绍流行gRPC库以及其它一些RPC框架如Thrift等,后面重点介绍高性能的分布式全功能的RPC框架 rpcx。读者通过阅读本书,可以快速学习和了解Go生态圈的RPC开发技术,并且应用到产品的开发中。 RPC介绍 远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。 该协议允许运行于一台计算机的程序

  • 一、MapReduce概述 Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序。编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集。 MapReduce 作业通过将输入的数据集拆分为独立的块,这些块由 map 以并行的方式处理,框架对 map 的输出进行排序,然后输入到 reduce 中。MapReduce 框架专门用于 <key,value> 键值

  • Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。不过,略有遗憾的是,据说在淘宝内部,dubbo由于跟淘宝另一个类似的框架HSF(非开源)有竞争关系,导致dubbo团队已经解散(参见http://www.oschina.net/news/55059/druid-1-0-9 中的评论),反到是

  • 类型 实现框架 应用场景 批处理 MapReduce 微批处理 Spark Streaming 实时流计算 Storm