【发布时间】:2011-05-21 10:04:52
【问题描述】:
我正在开发一个处理“敏感”数据(又名信用卡号)的应用程序,为了达到 PCI 合规性,我们需要确保我们的数据库与我们的公共服务器分开。
为了让数据进入并被存储,中间需要有一些东西——我不想让数据直接从网络/应用服务器写入或读取——所以我想知道是否队列/工作者架构可能是合适的。
基本流程是:
- 来自客户端的数据 -> 发送到 API
- API 服务器将数据放入“请求”对象 -> 入队
- 工作人员(在“内部”网络上)接收请求,写入数据库,执行工作,更新数据库,然后将“响应”对象排入队列
- API 服务器收到此响应对象,然后将响应返回给客户端
基本上我希望数据将返回到相同的“请求”,以便整个过程可以在一个请求中完成,但这似乎违背了消息队列的异步性质,并且可能是更适合作为严格“协议”的“网络服务”本身...
编辑我可能应该补充一点,我需要以下内容:
- 持久性 - 如果队列或任何“崩溃”,它应该能够恢复“排队”项目
- 安全 - 需要保护敏感数据 - 传输很好,因为我们可以在传输层(TLS、SSL、IPSec)上使用一些东西,但是在发送方(公共网络)存储卡号并不理想。 ..
- 速度 - 当然。
那么,我是不是走错了路?
【问题讨论】:
-
纯粹出于兴趣:您正在反对的 PCI 规范 - 它是否提供了任何指导,建议采用首选方法(或应避免的方法)?
标签: architecture message-queue