在银行应用程序中使用并发哈希图会导致同步问题

时间:2019-03-09 20:57:02

标签: java spring-boot java-8 hashmap concurrenthashmap

我正在尝试设计一个支持3种功能的银行应用程序,

  1. 添加积分
  2. 进行借记
  3. 检查余额

我选择了

  • 1 ConcurrentHashMap作为我的数据结构,代表持有客户余额的实体
  • 1个ConcurrentHashMap,拥有全部功劳
  • 1个ConcurrentHashMap,其中包含所有借项。

添加抵免额之前的一项要求是检查进行抵免额的transactionId是否不存在。

在我拥有所有信用的ConcurrentHashMap中,我的密钥为customerId,creditType和currency。但是对于上述要求,我将需要在地图上查找所有信用类型,以检查客户是否未使用该transactionId。 有没有更好的方法来处理它?我是否可以为包含3个属性(其中之一是可选属性)的hashMap提供密钥?如果未提供该值,那么该属性的任何值都应该做?

还是在这种情况下使用的ConcurrentHashMap是错误的数据结构?

编辑1

使用一个ConcurrentHashMap来跟踪所有内容,但这会导致三个不同的搜索(三个不同的键);使用客户ID,货币类型作为键(元组)

在表现方面还可以吗?您还能如何解决这种银行业务问题?

0 个答案:

没有答案