
文章插图
这个架构设计的变化会带来如下几个问题:
- 主从数据库之间的数据需要同步(可以使用 MySQL 自带的 master-slave 方式实现主从复制 )
- 应用中需要根据业务进行对应数据源的选择( 采用第三方数据库中间件,例如 mycat )

文章插图
八、阶段六:引入缓存机制缓解数据库的压力然后,随着访问量的持续不断增加,逐渐会出现许多用户访问同一内容的情况,那么对于这些热点数据,没必要每次都从数据库重读取,这时我们可以使用到缓存技术,比如 redis、memcache 来作为我们应用层的缓存 。另外在某些场景下,如我们对用户的某些 IP 的访问频率做限制,那这个放内存中就又不合适,放数据库又太麻烦了,那这个时候可以使用 Nosql 的方式比如 mongDB 来代替传统的关系型数据库 。

文章插图
九、阶段七:数据库的水平/垂直拆分我们的网站演进的变化过程,交易、商品、用户的数据都还在同一 个数据库中,尽管采取了增加缓存,读写分离的方式,但是随着数 据库的压力持续增加,数据库的瓶颈仍然是个最大的问题 。因此我 们可以考虑对数据的垂直拆分和水平拆分 。

文章插图
垂直拆分:把数据库中不同业务数据拆分到不同的数据库 。
水平拆分:把同一个表中的数据拆分到两个甚至更多的数据库中,水平拆分的原因是某些业务数据量已经达到了单个数据库的瓶颈,这时可以采取将表拆分到多个数据库中 。

文章插图
十、阶段八:应用的拆分【分布式架构的前世今生】随着业务的发展,业务量越来越大,应用的压力越来越大 。工程规模也越来越庞大 。这个时候就可以考虑将应用拆分,按照领域模型将我们的用户、商品、交易拆分成多个子系统 。

文章插图
这样拆分以后,可能会有一些相同的代码,比如用户操作,在商品和交易都需要查询,所以会导致每个系统都会有用户查询访问相关操作 。这些相同的操作一定是要抽象出来,否则就是一个坑 。所以通过走服务化路线的方式来解决 。

文章插图
那么服务拆分以后,各个服务之间如何进行远程通信呢? 通过 RPC 技术,比较典型的有:dubbo、webservice、hessian、http、RMI 等等 。前期通过这些技术能够很好的解决各个服务之间通信问题,但是,互联网的发展是持续的,所以架构的演变和优化也还在持续 。
十一、总结通过本文,我们通过一个电商的案例,就了解到了分布式架构的演进过程,一环套一环,环环紧密相扣 。都是通过业务量和访问量的提升来考虑重构架构设计,以便能够适应当前的环境 。不可一蹴而就,也急不来,初创企业必须稳扎稳打,一步一个脚印的走出一条专属自己的路 。加油,everybody!
原文链接:https://mp.weixin.qq.com/s?__biz=MzU3MTE2NzExMA==
推荐阅读
- 白帽黑客常用的5大渗透测试系统测评
- 5分钟帮你了解一下谷歌浏览器的架构
- 作为一名数据库管理员,应该知道MySQL和Oracle的区别
- 现行茶叶质量检验的国家标准和行业标准
- HDFS架构详解!会了这个,hadoop还难理解吗?
- 常见的DDoS攻击到底分为几种?
- 支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱GmSSL
- 乌龙茶做青过程香气的动态变化规律
- 如何进行接口测试?API 测试该了解的技术细节
- 网站一直不收录的原因有哪些?
