事务开启位置不正确,导致数据库连接数不够

在基于SOA的框架中,分四层时
  • export: 响应数据整理层,响应数据请求及封装出参
  • facade: 业务归集层,业务处理主流程
  • service: 具体服务实现层,处理具体业务
  • dao: 数据访问层,对数据进行增删改查操作
在facade层中的某些方法可能会调用外部的一些其它的服务,比如在一个开团接口canOpenGroups,由三部分组成
  • 查看库存:checkStock (调用外部服务)
  • 查看参团人数:checkParticipateNum(调用外部服务)
  • 开团:openGroups(本服务中与数据库真实交互部分)
当请求量不大时在canOpenGroups接口上开启事务,可能没什么影响,但当请求量很大时,可能由于checkStock、checkParticipateNum两个外部服务出现问题从之前的调用只要50ms变成500ms,导致openGroups接口与数据库连接的时间从之前的只要55ms(其中5ms为openGroups与数据库交互时间,而50ms为调用外部服务所要的时间)变成505ms。当请求量变大时,数据源中的连接数,由于单个请求很长时间才能完,并放回数据源中,导致连接池中的数据库连接不够,成为系统的瓶颈。所以在开启事务时,最好放在真实与数据交互的部分而不是放在调用外部服务的那一层,影响连接放回到连接池中的时间。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值