假设机器1上有Python进程1,机器2上有Python进程2。两个进程是相同的,并且进程数据由负载平衡器发送。在
这两个进程都需要与一个数据库交互——在我的例子中是Postgres,因此每个进程都需要知道它应该与哪个数据库通信,它需要在每台机器上有正确的模型等等。这只是耦合太紧密了。在
我需要在JSON数据库中保存一些数据,或者说我需要在数据库中保存一些数据。在
也许我在问一个不可能的问题,但是有没有任何Python解决方案可以让分布式进程以最不耦合的方式与关系数据库交互时,至少让生活变得简单一点?在
Tags:
您可以在RESTful接口后面放置一个SQLAlchemy。在
这是一个用Python Recommendations of Python REST (web services) framework?编写的简单RESTful服务器
如果您感兴趣的是数据库连接信息,我最近为此编写了一个服务。每个进程在配置中都设置了令牌,并使用这些令牌来查询服务中的db连接信息。数据层使用该信息创建连接,不存储DSN。在服务器端,您只需维护一个token->;DSN映射的字典。在
您可以按照bpgergo的建议进行连接池,但仍应包括身份验证或标识方法。这样,如果有网络入侵,恶意客户端可能无法模拟其中一个客户端。在
服务实现分为几个部分:
http://192.168.1.100/getConnection?token=mytokenstring
形式调用的RESTful服务{'mytokenstring': {'dbname': 'db', 'ip': '192.168.1.101', 'user': 'dbuser', 'password': 'password', ..}
一旦实现,在令牌后面切换dsn信息时,需要小心处理模式不兼容问题。您可以通过将令牌固定到用户会话等来解决此问题
相关问题 更多 >
编程相关推荐