微服务与分布式的联系

最近学习了分布式与微服务的相关知识,因为本人也是初步接触没什么实际的经验最初也是被一大堆概念搞的云里雾里。 这两天便好好看书,上网查资料,对这二者总结了一番,但愿可以给正在学习的你们解决一些疑惑。数据库

先说说分布式,分布式只是一种手段,把不一样的机器分散在不一样的地方,而后这些机器间相互协助完成业务。微服务是一种特殊的分布式缓存

因此咱们应该比较的是传统单体应用与微服务的区别。
先看看传统单体应用,下面看一张图
图片描述服务器

这就是一个大型网站的架构图,我说说这个图产生的步骤,详细可看李智慧的大型网站架构一书。网络

  1. 最开始一台服务器上存储着文件,数据,应用程序。随着流量的增多,瓶颈出现,应用程序须要更快CPU,数据库服务器要更大内存(缓存)和硬盘,文件服务器要更大硬盘,便将三个功能分离到各自服务器。架构

  2. 为了提升速度,将经常使用数据放到缓存中,缓存又分本地缓存和分布式缓存。负载均衡

  3. 缓解服务器压力,采用集群,并经过负载均衡服务器调度不一样的应用服务器。分布式

  4. 除了缓存外仍有大量数据直接访问数据库服务器,这时便采用读写分离。微服务

  5. 使用CDN,反向代理加速网站响应,CDN可从距离本身最近的网络提供商机房获取数据,若是反响代理中缓存着用户请求的资源则直接返回给用户。学习

  6. 分布式数据库,是数据库拆分的最后手段,按照不一样业务拆分网站

  7. 业务愈来愈复杂采用分布式服务,传统的SOA架构。

clipboard.png

因为服务愈来愈多ESB服务总线维护起来愈来愈麻烦,微服务便由此发展而来!


微服务

因为业务间的逻辑愈来愈复杂,咱们就不把这些业务所有杂糅在一块儿,每一个业务都分开来作,这就是微服务。

优势:上面的单体系统所有运行于一个进程以内,资源相互影响,添加功能可能会影响其它功能,致使维护麻烦。 而微服务一切分为不一样的模块,运行于自身进程内,并且不一样的服务可使用不一样的语言充分发挥优点。

缺点:引入了分布式的复杂性,如接口一致性。 不过不少问题强大的Spring Cloud都已经提供了解决方案!

下面给出一张Sping Cloud的组件架构图

clipboard.png

未完。。。。

相关文章
相关标签/搜索