开发者社区> 问答> 正文

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

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

展开
收起
落地花开啦 2016-02-11 23:58:14 4737 0
4 条回答
写回答
取消 提交回答
  • 最佳回答:

    如何处理高并发问题,参考这里:https://yq.aliyun.com/articles/696140?source=5176.11533457&userCode=ffsbbyn0

    官方帮助文档地址:阿里云帮助中心

    更多参考: 阿里云官方(新用户需官网注册查看)

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

    2019-07-17 18:41:06
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

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

    2019-07-17 18:41:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载

相关镜像