开发者社区> 问答> 正文

并发每秒1万java-mysql的架构设计问题

落地花开啦 2016-02-11 23:58:14 1624

比 12306 大 10 倍瓶颈:中国每天火车票600万,机票100万张,但是火车票价格不变,机票价格随时变化。而且机票是动态实时数据,公司自己开发的机票数据接口是xml或String格式数据,与美国eterm公司数据连接,每次查询收费约0.3元,必须放弃实时数据而建立机票缓存数据节省查询费。
数据调用:客户请求查询机票价格, mysql数据库没有及时数据就直接通过机票接口查询并存入数据库,再从数据库读出数据给前台查询页面。
公司设计同时在线最高100万ip,最高并发每秒1万的请求的java-mysql并发编程。
请求高手指点....

XML 缓存 关系型数据库 MySQL 数据库 数据格式
分享到
取消 提交回答
全部回答(3)
  • 文殊人
    2019-07-17 18:41:06
    1 0
  • yu_hc200
    2019-07-17 18:41:06

    首先要理解业务,每一次请求都获取实时的机票价格是无意义的,因为数据量非常大,而且查询费用很高,实际上查询的人数一般远多于下单的人数。所以查询可以用一个近似的请求,而下单的时候再做一次准确的查询。具体来说就是建立一个缓存,定期把机票查询的结果放入缓存,这样前台的查询压力可以全部转移到缓存上,缓存定期刷新。如果有人有下单意愿,再引导到下单界面,在这个界面实时查询一次机票接口,获取实时价格再下单。

    0 0
  • 落地花开啦
    2019-07-17 18:41:06

    个人建议吧,采用可以伸缩的架构,web层与业务层解耦(可以考虑MOM,如:activemq。这样,你们的处理层可以水平伸缩而不受web层的影响,可以考虑broker伸缩。自然,web层伸缩也应该很容易达成。)最基本的动静分离,读写分离这些都是考虑的。
    对于极高热点数据区的读可以考虑采用cache或者cache & persistece,比如:redis、couchbase等。对于猛烈的写(这个地方考虑事务有无必要),如果无需事务,那么redis、couchbase、cassandra其实都挺不错的。如果要考虑事务就比较麻烦了,建议采用集群事务数据库,毕竟自己实现事务于数据存粗外不是件容易的事。

    0 0
添加回答
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程