何为分布式:分布式就是将系统根据业务拆分成不同的子系统,部署在不同的机器上,因此要做成分布式的系统首先要经历下面几个步骤

  1. 系统拆分;将系统根据业务场景拆分为多个子系统,子系统之间的通信可以使用成熟的RPC框架,例如 Dubbo 来搞定
  2. 系统拆分之后,可以另每一个系统使用一个数据库,这样多个数据库的情况下也能接受更多的并发的请求
  3. 引入缓存;使用数据库硬抗流量访问显然是不符合实际的,因此就需要引入缓存,另大量的读操作走缓存,写操作去走数据库,这样可以抗住更多的请求
  4. 引入缓存之后就要考虑缓存使用不当而带来的问题,例如缓存穿透,缓存雪崩,双写一致等问题
  5. 使用MQ;当业务量进一步扩大,这时候缓存虽然能够命中绝大多数的请求,但是当有大量的写请求直接落到数据库上,也是会给数据库造成很大的压力,这个时候就可以在数据库前搞一个MQ,使所有的直接落入数据库的请求来走MQ,使用MQ做一个异步削峰,来慢慢的处理请求。提升并发性能
  6. 当数据库中的数据量过于庞大之后,这时候尽管是没有并发的操作,也会使查询写入的速率变慢,这时候就需要考虑将数据库轻量化,做分库分表操作,这样不仅能够抗住更多的并发请求,也能加快SQL的执行效率
  7. 引入分库分表之后就要考虑数据迁移,数据分发等问题,如何做到不停机完成数据迁移或者停机迁移
  8. 引入分库分表之后在想提升性能,那么就需要做读写分离,将写库作为数据库的主数据,读库做为从库,是请求数据进一步分流
  9. 读写分离需要考虑的问题就是数据同步,数据的主从一致性等
  10. 引入elasticSerach搜索

参考:石杉架构笔记

如何设计一个高并发的分布式系统架构相关推荐

  1. 如何设计一个高并发的秒杀架构?

    写在前面 高并发下如何设计秒杀系统?这是一个高频面试题. 这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识. 秒杀一般出现在商城的促销活动中,指定了一定数量(比如: ...

  2. 如何设计一个高并发系统架构

    1,一般一个高并发系统的架构组成如下图所示: 2,面试题 如何设计一个高并发系统? 3.面试官心里分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了.为啥?因为你没看到现在很多公司招聘 ...

  3. mysql每秒支持多少并发_如何设计一个高并发系统?

    面试题 如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了.为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先. 如果你确 ...

  4. oom 如何避免 高并发_【面试题】如何设计一个高并发系统?

    面试题 如何设计一个高并发系统? 原文链接:https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/high- ...

  5. 面试题:如何设计一个高并发系统?

    面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了.为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先. 如果你确实有真才实学,在互联网公司里干过高 ...

  6. 高并发面试 - 如何设计一个高并发系统?

    高并发面试 - 如何设计一个高并发系统? 面试题 如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了.为啥?因为你没看到现在很多公司招聘的 JD 里 ...

  7. 【面试题】如何设计一个高并发的系统?

    每个行业都一样,人才都是分层次的,从事技术行业的程序员们更是如此,按照技术能力分为三六九等. 每个层次的人出去面试,面试官考察的方向是不一样的. 刚入职场的小白,会问你很多基础性的知识,有过几年经验的 ...

  8. 【面试】如何设计一个高并发系统

    一.为什么需要秒杀系统? 电商平台本质是在线上撮合买卖双方的购销需求,达成交易.虽然是线上交易,但也遵守朴素的经济学原理,供求关系决定了商品的经济活动.当供求平衡时,买方和卖方处于对等关系,双方相对稳 ...

  9. 如何设计一个高并发的存储系统

    1. 如何设计一个高并发的系统 ① 数据库的优化,包括合理的事务隔离级别.SQL语句优化.索引的优化 ② 使用缓存,尽量减少数据库 IO ③ 分布式数据库.分布式缓存 ④ 服务器的负载均衡 2. 锁的 ...

  10. 如何设计一个高并发高可用的秒杀或抢券系统

    一个大型网站应用一般都是从最初小规模网站甚至是单机应用发展而来的,为了让系统能够支持足够大的业务量,从前端到后端也采用了各种各样技术,前端静态资源压缩整合.使用CDN.分布式SOA架构.缓存.数据库加 ...

最新文章

  1. 在visual studio 2010中调用ffmpeg
  2. mysql中in的用法总结_MySQL中的find_in_set()函数使用技巧心得与应用场景总结
  3. 配置ASA 7.x to Router LAN−to−LAN IPsec Tunnel
  4. 001-SDK框架之Unity游戏调用SDK
  5. 华为主题锁屏壁纸换不掉_华为手机总多出莫名的照片?那是因为这3个设置没关闭,赶紧自查...
  6. 为了让你的网页能在更多的服务器上正常地显示,还是加上“SET NAMES UTF8”吧
  7. java 8 localdatetime_java8 时间 LocalDateTime常用方法
  8. fckeditor 中文乱码问题
  9. 思科修复严重的企业 NFVIS 缺陷
  10. codevs——1230 元素查找
  11. linux (centos 8.1)生产环境基于9台物理机 安装 opentstack ussuri集群以及集成ceph (已转gitee)
  12. Word经典技巧大全
  13. PCL_点云数据处理方法概述
  14. 8-08双重循环--九九乘法表
  15. SRS4.0源码分析-CMake
  16. “知行合一”到底有什么现实意义?
  17. NGNIX在CENTEROS 下部署
  18. 美剧推荐:abc新剧Traveler
  19. jmeter使用BeanShell Sampler测试自己写的java接口(一)
  20. 数字孪生城市概念与运行机理

热门文章

  1. fastreport java 集成_报表生成器配置FastReport.Net环境
  2. java resourcebundle properties_Java使用Properties类和ResourceBundle类读取properties文件
  3. 桌面好看的linux系统,可以当桌面的LINUX漂亮壁纸
  4. AccessibilityService辅助功能的研究及实现自动抢红包功能
  5. 手把手教你写一个web聊天室之bookstap框架
  6. SQL SERVER 2012 附加数据AdventureWorks2012失败解决方案
  7. freebasic 编译linux,FreeBasic(basic语言编译器)0.90.1官网版
  8. deepin Linux虚拟输入法,输入法 - deepin Wiki
  9. android 渠道商,【华为怒斥渠道商】
  10. 【ECU】汽车电子/嵌入式工程师学习网站、资源、路线