分布式开发框架 Pebble

BSD
C/C++
跨平台
腾讯
2019-09-16
红薯

【年终提升】2019尾声,来 OSC·年终盛典收割技术干货,get新技能!>>>

Pebble定位为一个好用、可靠、高性能、易扩展的分布式开发框架,支持多种使用方式:

  • 使用完整的pebble框架
  • 独立使用各pebble子模块
  • 在其他框架中嵌入pebble框架。

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

功能

  • 通信:提供了基于消息的通信接口,默认自带TCP/UDP网络库,用户可方便的对接到其他网络库或消息队列服务。

  • 服务管理:有了服务管理功能,客户端无需手工配置服务器端的地址即可通信。每一个服务(service)都有一个唯一的名字,服务由一组具体的函数组成,每个服务器进程可以管理多个服务。Pebble提供了名字服务接口,使用Pebble框架,服务端可方便的将服务地址注册到名字服务器,客户端可以方便的从名字服务器拉取到服务的地址信息。我们提供了基于ZooKeeper的名字服务参考实现,用户也可以很方便的扩展自己的名字服务。

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

  • RPC:同时支持Thrift和ProtoBuf两种IDL,一致的RPC编程接口,支持同步、异步、并行调用,用户可以很方便的扩展支持其他IDL。

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

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

  • 进程框架:它是一个单线程的开发框架,集成了上述功能。内置统计上报、过载保护、控制命令等功能,使用我们的框架,只需要调用少量接口,即可快速开发出游戏后台server。

  • 配套工具:自带了控制命令工具,方便集中运维与调试。

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

利用PebbleJS写pebble手表应用

这个月初,任性买了刚发布的pebble time,一直还没写个应用,这个周末抽出时间看看。 我得github http://gongbaodd.github.io/

2015/08/25 18:02
102
0
mac 安装 pebble sdk

离线开发环境搭建

2016/06/01 14:15
60
0
超越Web,Javascript在物联网的应用

Patrick Catanzariti 是一名Web开发工程师,最近他在 sitepoint 发表了《JavaScript Beyond the Web in 2014》,介绍了JavaScript在物联网中的应用,非常有意思。做为JavaScript的爱好者和从...

2014/10/15 10:25
288
0
智能设备的连接与开发:通用开放终端API

以下内容摘自“设备网页API联盟”关于GotAPI的相关介绍。GotAPI是由OMA开发的标准,而设备网页API联盟则注重与对该标准的研究,推广与运用。这篇文章很具体的极少了GotAPI标准所能实现的功能...

2015/09/04 06:47
14
0
使用Linux脚本对无线网络进行管理

使用Linux脚本对无线网络进行管理 本文为 兄弟连IT教育 www.itxdl.cn 机构官方 Linux培训 教程,主要介绍使用Linux脚本对无线网络进行管理 为您的办公室或邻居设置一个无线的 Internet 服务提...

2016/10/10 13:52
5
0
【ME - Mail】之Java Mail

Java Mail 参考示例 biezhi/oh-my-email journaldev.com 从这开始吧 1. 编辑:mail.properties文件中相关值 mail.smtp.user= mail.smtp.from= mail.smtp.password= 2. pom.xml <dependency> ...

2019/05/14 15:33
28
0
解决 brew 执行命令报 unexpected token at '{ <<<<<<< HEAD

执行brew search redis命令报: Error: 784: unexpected token at '{ <<<<<<< HEAD "azure-cli": "homebrew/core", "basex": "homebrew/core", "chronograf": "homebrew/core", "cocoapods"...

2019/10/10 09:30
5
0
【 开源公告 】 Android 轻应用开发组件 RapidView 正式开源

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯开源 RapidView RapidView是一套用于开发Android客户端界面、逻辑以及功能的开发组件。布局文件(XML)及逻辑文件(Lua)可...

2017/11/24 16:06
250
0
关于区块链的畅想

根据博主的学识,经验,探讨区块链的想法。想到即更

2016/12/23 10:14
57
0
商品订价策略善用心理因素

你想要让自己的商品卖得更多吗?你知道订价背后的心理学吗?拥有一个好的订价策略,不只可以让你的产品利润增加,还能帮助你在跨境电商的销售大幅提升,让你发展事业更顺利!但是订价从来不是...

2019/11/06 14:20
10
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部