摘要:微服务是一种特殊的分布式。随着流量的增多,瓶颈出现,应用程序需要更快,数据库服务器要更大内存缓存和硬盘,文件服务器要更大硬盘,便将三个功能分离到各自服务器。除了缓存外仍有大量数据直接访问数据库服务器,这时便采用读写分离。
最近学习了分布式与微服务的相关知识,由于本人也是初步接触没什么实际的经验最初也是被一大堆概念搞的云里雾里。 这两天便好好看书,上网查资料,对这两者总结了一番,希望能够给正在学习的大家解决一些疑惑。
先说说分布式,分布式只是一种手段,把不同的机器分散在不同的地方,然后这些机器间相互协助完成业务。微服务是一种特殊的分布式。
所以我们应该比较的是传统单体应用与微服务的区别。
先看看传统单体应用,下面看一张图
这就是一个大型网站的架构图,我说说这个图产生的步骤,详细可看李智慧的大型网站架构一书。
最开始一台服务器上存储着文件,数据,应用程序。随着流量的增多,瓶颈出现,应用程序需要更快CPU,数据库服务器要更大内存(缓存)和硬盘,文件服务器要更大硬盘,便将三个功能分离到各自服务器。
为了提高速度,将常用数据放到缓存中,缓存又分本地缓存和分布式缓存。
缓解服务器压力,采用集群,并通过负载均衡服务器调度不同的应用服务器。
除了缓存外仍有大量数据直接访问数据库服务器,这时便采用读写分离。
使用CDN,反向代理加速网站响应,CDN可从距离自己最近的网络提供商机房获取数据,如果反响代理中缓存着用户请求的资源则直接返回给用户。
分布式数据库,是数据库拆分的最后手段,按照不同业务拆分
业务越来越复杂采用分布式服务,传统的SOA架构。
由于服务越来越多ESB服务总线维护起来越来越麻烦,微服务便由此发展而来!
由于业务间的逻辑越来越复杂,我们就不把这些业务全部杂糅在一起,每个业务都分开来做,这就是微服务。
优点:上面的单体系统全部运行于一个进程之内,资源相互影响,添加功能可能会影响其它功能,导致维护麻烦。 而微服务一切分为不同的模块,运行于自身进程内,而且不同的服务可以使用不同的语言充分发挥优势。
缺点:引入了分布式的复杂性,如接口一致性。 不过很多问题强大的Spring Cloud都已经提供了解决方案!
下面给出一张Sping Cloud的组件架构图
未完。。。。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/11806.html
摘要:每个微服务提供一组,供其他微服务或者应用客户端所用。由于微服务架构的分布式特点,测试一个基于微服务架构的应用也是很复杂的任务。微服务架构模式下,应用的改变将会波及多个服务。 微服务Microservices已经成为软件架构最流行的热词之一。网络上看到很多关于微服务的文章,但是感觉很多离我们还很遥远,并且没有找到多少真正在企业场景中应用的实例。此处省略一万字~~~~于是想要将自己最近一段...
摘要:缺点系统依赖复杂,给开发测试部署带来不便,分布式数据一致性和分布式事务支持困难,一般通过最终一致性简化解决。微服务架构分成三种实现模式。事件驱动架构事件是状态发生变化时,软件发出的通知。事件驱动架构的四个部分事件队列接收事件的入口。 架构的规划谁架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是决策。...
摘要:熔断机制为了防止雪崩效应事件的发生,分布式系统采用了熔断机制。为了解决这一难题,微服务架构引入了熔断机制。由于微服务系统是分布式系统,服务与服务之间没有任何的祸合。 1.2.1 什么是微服务 按业务划分为一个独立运行的程序,即服务单元。 服务之间通过 HTTP 协议相互通信。 自动化部署。 可以用不同的编程语言。 可以用不同的存储技术。 服务集中化管理。 微服务是一个分布式系统。 ...
阅读 620·2021-11-23 09:51
阅读 3133·2021-10-11 10:58
阅读 15107·2021-09-29 09:47
阅读 3462·2021-09-01 11:42
阅读 1244·2019-08-29 16:43
阅读 1789·2019-08-29 15:37
阅读 2042·2019-08-29 12:56
阅读 1688·2019-08-28 18:21