对于单机架构到分布式架构的第一步

之前在原公司开发,

  1. 单机架构,所有代码都在一个项目里。
  2. svn版本控制,开发人员大家都在一个办公室,有些东西提交还需要提交打好招呼,
    “这个东西你没改吧?没改我就提交了?”
    更新下来项目发现别人提交的有问题,导致自己的项目跑不起来怎么办?
    回退?
  3. 改前人留下的坑,或者完善前人的功能的时候,一不小心改动就会影响其他模块的功能,比如改了订单,却影响了库存。耦合太强。

之后了解到分布式,

  1. 分布式架构,一个模块代码在一个项目里。
    订单模块每天访问量大,就对订单单独集群,库存的服务器就少点。
  2. git版本控制,大家开发的时候都clone自己的模块,开发订单就不会影响库存,出现了错误就回退到上一分支。
  3. 由于来到分布式,代码不是在一个项目里,自然有多个JVM跑着。跨虚拟机的线程安全怎么实现,用redis分布式锁了。
  4. 访问量越来越大了,每次查数据返回是不是太累了?用缓存,redis缓存,用注解写在service层上。还有mybatis缓存。
  5. 多个订单信息来到库存模块虚拟机,谁先谁后,一块来是不是会阻塞?那就来消息队列MQ。生产者->消费者。

目前处于单机架构转向分布式架构的我模模糊糊摸到一些东西,
原来地球村里人少,单机架构足够了,
后来人口多了,访问量大了,不同的人群有不同的需求了,单机架构支持很吃力,
才有了分布式架构,
访问量大的地方我就多来几台服务器给你。
容易引起蝴蝶效应的地方我都给你拆开,降低耦合性。

对于redis,对于rabbit MQ,其实都是项目改到分布式之后,有些问题发生了,那么就要去解决,这些技术就是解决这些问题诞生的。

你可能感兴趣的:(对于单机架构到分布式架构的第一步)