Firefly框架参考

在游戏服务器端,往往需要处理大量的各种各样的任务,每一项任务所需的系统资源也可能不同。而这些复杂的任务只用一个单独的服务器进程是很难支撑和管理起来的。所以,游戏服务器端的开发者往往需要花费大量的时间精力在诸如服务器类型的划分,进程数量的分配,以及这些进程的维护,进程间的通讯,请求的路由等等这些底层的问题上。而Firefly完全可以完成这些重复而繁琐的工作,从而将上层的游戏开发者解放出来,把精力更多的放在游戏逻辑的实现上面。
一、Firefly特性
    1、采用单线程多进程架构,支持自定义的分布式架构。
        2、方便的服务器扩展机制,可快速扩展服务器类型和数量
        3、与客户端采用TCP长连接,无需考虑粘包等问题。
二、Firefly思路
一个最基本的服务器就是一个在不停运行着的应用程序。在分布式游戏服务器中,我们需要的服务器具有的功能有,监听客户端的连接,监听其他服务进程的消息,连接其他的服务进程,有些需要有数据库连接和缓存服务。如图

net connect 做客户端连接,root监听其他服务进程消息,node连接其他服务进程,db数据库,cache缓存。是否需要监听客户端连接,是否监听其他服务进程消息等这是都是可以在config.json中进行配置。包括各个服务器的名称以及各个服务器之间的连接关系。这样就可以自定义出自己的分布式架构。
三、Firefly结构
从功能职责上来看,Firefly框架结构如下图所示:

1、management, firefly 是个多进程、分布式的游戏服务器。因此各游戏server(进程)的管理和扩展是firefly很重要的部分,框架通过抽象使服务器的扩展非常容易。
    2、Network,客户端连接通信、server进程间的通信等构成了整个游戏框架的脉络,所有游戏流程都构建在这个脉络上。与客户端的通信采用的是请求/回应式的,所有收到的客户端的请求,服务端都会给出相应的回应,服务端也能主动的推送,广播给客户端消息。这些请求是基于指令号的请求。(例如定义101为登陆指令)server进程之间的通信时采用的异步回调的方式,这样就减少了的进程间通过网络通信中的时间消耗。
    3、Data, 数据处理是网游的重要部分。在网游有大量的数据需要存储,需要更新,这使得数据库的读写效率成为服务器的最大的性能瓶颈。firefly的db处理能够将数据库表中的数据缓存到memcache中并能以对象的形式进行调用相应的对象方法对数据进行操作。可以在不同的进程中通过实例化相同的名称的缓存实例,得到同步的数据。并能将缓存对象中的数据写回数据库中。

四、Firefly流程

1.从config.json中读取配置数据
2.根据配置中定义的服务端的架构,启动相应的服务进程。并建立节点之间的连接。有配置数据库的,实例化数据库连接池。有配置memcached的,建立memcached的连接。
3.根据配置相应的的进程启动的入口模块。

Firefly框架参考

时间: 2024-09-28 16:50:44

Firefly框架参考的相关文章

HealthKit框架参考(转)

来自:http://www.cocoachina.com/ios/20140915/9624.html 本文由CocoaChina翻译组成员 唧唧歪歪(微博) 翻译自苹果官方文档:The HealthKit Framework HealthKit框架提供了一个结构,应用可以使用它来分享健康和健身数据.HealthKit管理从不同来源获得的数据,并根据用户的偏好设置,自动将不同来源的所有数据合并起来.应用还可以获取每个来源的原始数据,然后执行自己的数据合并. HealthKit也可以直接与健康和健

Github 上最受欢迎的一些 CSS 框架参考

css框架其实很早就出现了,他产生的原因是css代码跟其他代码一样,很多时候是高度重复性的,经验丰富的工程师们都会总结出自己的可复用代码,以便应用到不同的项目之中,其中优秀且知名度高的就成了我们所熟悉的css框架,其实就是一套具有普适性的css代码. 本文列出了在 Github 上最受欢迎的一些 CSS 框架供你参考.精心开发5年的UI前端框架! Bootstrap Foundation Normalize.css Animate.css Blueprint.精心开发5年的UI前端框架! Com

Spring框架参考手册翻译——第三部分 核心技术 6.1 Spring IoC容器和bean的介绍

第三部分 核心技术 这部分参考文档涵盖的这些技术是Spring Framework绝对重要的. 其中最重要的要数Spring框架的控制反转(IoC)容器.深入剖析Spring框架IoC容器之后,紧接着要介绍的是Spring面向切面编程(AOP)技术.Spring框架拥有自己的AOP框架,从概念上很容易理解,并且成功地解决了AOP在Java企业级编程中80%的痛点需求. 还提供了Spring与AspectJ(目前在功能上最丰富,在Java企业领域最成熟的AOP实现)的集成. 第六章,IoC容器 第

技术框架参考

国家电子政务系统框架http://sell.soft6.com/166/1/2675.html技术平台的选型http://blog.csdn.net/shuaihj/article/details/7056888写给开发者看的关系型数据库设计http://blog.csdn.net/phenixiii/article/details/8885900谈谈软件的可维护性问题http://blog.csdn.net/phenixiii/article/details/4286232J2EE 领域的一些

译:Spring框架参考文档之IoC容器(未完成)

6. IoC容器 6.1 Spring IoC容器和bean介绍 这一章节介绍了Spring框架的控制反转(IoC)实现的原理.IoC也被称作依赖注入(DI).It is a process whereby objects define their dependencies, that is, the other objects they work with, only through constructor arguments, arguments to a factory method, o

js框架参考网址或引用代码

jQuery: http://jquery.cuishifeng.cn/ touch.js: /*! touchjs.min v0.2.14 2014-08-05 */ "use strict";!function(a,b){"function"==typeof define&&(define.amd||define.cmd)?define(b):a.touch=b()}(this,function(){function a(){var a=&quo

买手经济的消息同步框架[参考微信的消息同步]

前端框架参考

H-ui,效果比较简单,免费开源: http://www.h-ui.net/H-ui.admin.shtml https://adminlte.io/themes/AdminLTE/pages/charts/morris.html https://www.jeasyui.com/documentation/index.php http://www.jqueryui.org.cn/ https://www.creative-tim.com/

Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.3 Bean概述

6.3 Bean概述 Spring IoC容器管理一个或多个bean.这些bean是使用你提供给容器的配置元数据去创建的,例如,以XML <bean />定义的形式. 在容器内部,这些bean的定义以BeanDefinition对象呈现出来,其中包含了(以及其他信息)以下元数据: 限定包的类名:典型的是定义的bean的实际实现类. bean的行为配置元素,说明bean在容器中的行为方式(范围,生命周期回调等). bean执行工作所需的其他bean的引用; 这些引用也称为协作者或者依赖项. 创建