小编Ana*_*dya的帖子

使用 ElasticSearch 作为事实来源

我正在与一个使用两个数据源的团队合作。

  1. MSSQL 作为进行事务调用的主要数据源。
  2. ES 作为查看数据的备份/只读事实来源。

例如,如果我下了一个订单,订单被插入到数据库中,然后有一个RabbitMQ监听器/批处理,然后将数据从数据库同步到ES。

不知怎的,即使只有一百万条记录,这个系统也会失败。当我说失败时,意味着ES中的记录没有及时更新,例如假设我创建了一张优惠券,然后在DB中生成了优惠券,当优惠券生成后,客户立即尝试兑换它,尽管ES没有'还没有优惠券的信息,所以失败。当然,可以选择使用 RabbitMQ 的优先级队列等,但我遇到的问题非常基本

我心里有几个问题,我向团队询问过,但仍然没有得到满意的答案

  1. 当我们使用elasticsearch时,我们应该期望的最小负载是多少,如果我们只有1M条记录,这不是大材小用吗?
  2. 使用 ES 作为实时数据的真实来源真的有意义吗?
  3. ES 是为了处理类似关系型数据库以及处理不断更新的数据而设计的吗?据我所知,这种搜索优化的数据库是一次写入、多次读取的类型。
  4. 如果我们这样做是为了处理负载,那么这与将 MSSQL 数据库集群作为事实来源并使用 ES 仅用于分析有何不同?

我想到的主要问题是,我们如何优化这个架构,以便更好地扩展?

PS: 当我问最小负载时,我真正的意思是我们可以说 ES 比传统关系数据库更快的记录/事务数量是多少?或者根本就没有这个词?

database architecture elasticsearch

5
推荐指数
1
解决办法
3059
查看次数

将 Braintree 令牌存储为参考是否有意义?

我目前正在将 Braintree 与我们的产品集成。我们通常的做法是存储初始支付调用生成的令牌,以便在跟踪支付问题时使用它。这就是我们对 PayPal 所做的。虽然有了布伦特里,我有点困惑。

  1. Braintree 生成两个不同的字符串。第一个称为“令牌”,在与 Braintree 进行通信之前使用。第二个称为“nonce”,用于完成交易。
  2. 正如我所见,生成的 Token 超过 1500+ 个字符,我们的数据库设计为最多容纳 250 个字符。存储更多对我来说没有意义。

所以我的问题是:

  1. 将代币存储在我们的系统中是否有意义,或者在 3-4 小时后它会失去价值吗?
  2. 或者,如果我在付款成功后只存储随机数,它会起作用吗?在任何情况下,交易都不会在没有 nonce 的情况下发生。

payment-gateway braintree

3
推荐指数
1
解决办法
700
查看次数