我正在开发一个游戏框架,并决定使用OSGi将其绑定在一起,因为模块化是游戏本身的核心。我想让游戏在某人的机器上作为一个一体机运行,或者写成服务器,将登录服务器放在Azure实例上,让游戏引擎在AWS实例上运行,或者从Raspberry Pi运行整个程序。我有一个GameEngine,一个LoginServer,一个2DGameClient等等。然而,所有这些都连接在一个罐子中,带有一个Main类,看起来类似于
public class
对于任何有真实世界经验的人来说,把一个单体分解成不同的模块和服务。
我已经阅读了马丁·福勒( Martin )的博客文章,我提出了这个问题。当把一个单体分解成微型服务时,方程中的“大小”元素是我思考得最多的元素。具体来说,如何将一元应用程序(我们正在讨论的是2001: A Space;就像它那么老和那么大)分解到微服务中,而不会变得过于细粒度或过于单一。最终目标是创建能够独立升级和独立缩放的独立模块。