大数据量订单实时分布式处理,优化问题

xyq1986 2015-12-20 12:36:41
大数据量订单处理,订单通过接口提交过来,保存到sql server数据库,然后有N台vps通过外网实时加锁轮询数据库表,去处理订单,处理完后马上修改订单状态,这种方案下,有几个缺点:1、数据库通过外网连接;2、N台VPS轮询访问,导致数据库连接数很高。
有另外几种方案:
方案A:加一个webapi服务,N台VPS用外网轮询该服务,然后该服务用内网去访问数据库,取订单,VPS处理完订单后,再调用 webapi服务的接口去修改订单状态。此方案可以让数据库用内网访问,同时连接数也会大大降低。
方案B:在接口提交订单过来后,把订单写数据库后,同时把订单写入消息队列msmq,然后N台VPS通过外网实时轮询这台msmq,取订单,处理订单,再直连数据库修改订单状态。此方案可以减少数据库访问与连接数,同时不用对数据库加锁询。
方案C:在接口提交订单过来后,把订单写数据库后,同时把订单写入消息队列msmq,再加一个webapi服务,N台VPS用外网轮询该服务,然后该服务用内网去访问msmq,取出订单数据返回给vps,vps处理完订单后,再调用 webapi服务,webapi服务连接数据库修改订单状态。此方案增加了msmq和webapi服务,免去了数据库的外网访问和不断轮询数据库的压力和连接数。
订单量大时,一分钟可以有60单,而且订单处理时效要求较好,最慢也要十几秒处理完。
大家帮助分析一下,还有没有更好的方案?
...全文
504 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyq1986 2015-12-24
  • 打赏
  • 举报
回复
求方案建议!!
xyq1986 2015-12-24
  • 打赏
  • 举报
回复
求方案建议!!
  • 打赏
  • 举报
回复
人家一秒处理1万笔交易,你的一秒只能处理100笔。估计就会是这个结果。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧