我正在创建一个包含两个服务器,php和node的Web应用程序。 PHP服务器将处理API调用,节点服务器将处理套接字。而且,这两个服务器都需要读写数据库--MySQL。我想知道让这些服务器直接访问数据库是个好主意吗?或者,我是否应该在中间提供服务,并让这两个服务器在需要访问数据库时与服务进行通信。欢迎提出其他建议。
答案 0 :(得分:1)
一般来说,你的第二种方法是正确的方法;如果您要查询相同应用程序堆栈的相同MySQL数据库,则创建一个处理此任务的服务层。因此,您可以在一个位置管理所有连接详细信息和建模。易于维护将提高您的生活质量,后续的应用程序开发人员会赞扬您的名字。
建议使用此应用程序设计方法,即使未来的要求已连接到任意数量的数据源。你想尽可能地在一个地方维护这种东西。但是,这并不意味着您的整个服务层应位于一个位置。复合服务很正常;各种服务可以驻留在不同的堆栈元素中,api路由实用程序(如Umbrella(http://apiumbrella.io/))可以处理所有客户端服务请求,因此这些请求可以与位置无关。鉴于此,类似的服务任务,如数据库事务,应该在一个地方处理,原因如下:通过不重复工作,让您的生活更轻松。