我正在用 Erlang 编写一个 Web 应用程序,并且想将我的数据存储到 PostgreSQL。
我的应用程序中有两种资源。一种非常重要,而另一种则不那么重要。
- 对于重要的,不允许数据丢失。
- 对于不太重要的,由于系统故障导致的数据丢失是可以的。
我想获得最大的效率并想出了这样一个想法:为PostgreSQL写一个网关。网关是一个gen_server
,业务逻辑(BL)部分可以与网关通信以存储资源。
- 为了存储重要的资源,BL部分将要存储的资源发送到网关,并阻塞到
receive
一个消息(成功或失败),最后以网页响应用户。 - 对于存储不太重要的资源,BL部分只将资源发送到网关而不阻塞。发送资源后,BL 部件直接以网页响应。
我对这个想法的期望是每个请求的秒数更少,因为大多数资源都不那么重要。但我想知道这是否是一个好主意,或者换句话说,我真的能得到我所期待的吗?
请根据您的经验或一些可靠的“网络搜索结果”来回答。谢谢。:-)