单体架构什么是单体架构一个归档包(例如war格式或者Jar格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应用架构,这是一种比较传统的架构风格。。 单体架构示例图![]() QQ截图20180517151958.png
单体架构的缺陷1.复杂性高 2.技术债务逐渐上升 3.部署速度逐渐变慢 4.扩展能力受限,无法按需伸缩 5.阻碍技术创新 由于单体架构的缺陷日益明显,所以越来越多的公司采用微服务架构范式解决上面提到的单体架构中的问题。 不同于构建单一、庞大的应用,微服务架构将应用拆分为一套小且互相关联的服务。 SOA架构SOA是 微服务架构什么是微服务架构简而言之,微服务架构风格的开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API轻量的机制来相互通信。 这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。 微服务架构示例图![]() QQ截图20180517201613.png
微服务架构的特性每个微服务可独立运行在自己的进程里 微服务架构的优势1.易于开发和维护 2.单个微服务启动较快 3.局部修改容易部署 4.技术栈不受限 5.按需伸缩 微服务架构的挑战1.运维要求较高 2.分布式固有的复杂性 3.接口调整成本高 4.重复劳动 微服务设计原则单一职责原则 微服务和SOA的区别微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化 分布式-微服务-集群的区别分布式![]() QQ截图20180517203448.png
service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。 将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。 区别分布式的方式是根据不同机器不同业务。注:分布式需要做好事务管理。 集群模式![]() QQ截图20180517203458.png
集群模式是不同服务器部署同一套服务对外访问,实现服务的负载均衡。 区别集群的方式是根据部署多台服务器业务是否相同。注:集群模式需要做好session共享,确保在不同服务器切换的过程中不会因为没有获取到session而中止退出服务。 一般配置Nginx*的负载容器实现:静态资源缓存、Session共享可以附带实现,Nginx支持5000个并发量。 分布式是否属于微服务?答案是肯定的。微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。 微服务架构微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。 微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。![]() QQ截图20180517203925.png
分布式和微服的架构很相似,只是部署的方式不一样而已。 |
|