1:分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。
如:新浪网,访问的人多了,它就可以做一个集群,前面放一个相应服务器,后面几台服务器共同完成一个业务,如果业务访问的时候,相应服务器根据负载均衡,去分配服务器。
分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可以访问了。
2、简单来说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
例如:如果一个任务由10个子任务组成,每个子任务执行需呀1小时。则在一台服务器上执行完这一个任务就需要10个小时。利用分布式方案,则提供10台服务器,每个服务器只负责一个子任务的执行,这样总共就只需要1个小时。而集群就是,同样给10台服务器,每台服务器都部署一样的任务。这样当有10个任务来的时候,平均下来也就是一个小时完成一个任务。
好的设计应该是分布式和集群的结合,先分布再集群,具体实现就是业务拆分成多个子业务,再对每个子业务进行集群部署。
将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块通过接口进行数据交互
注:分布式需要做好事务管理 。
集群模式是不同服务器部署同一套服务对外访问,实现服务的负载均衡。
注:集群的模式需要做好session共享,确保在不同服务器切换的过程中不会因为没有获取到session而中止退出
一般配置Nginx*的负载容器实现:静态资源缓存、Session共享可以附带实现,Nginx支持5000个并发量。
微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。
1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。
2.微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想
2.ESB和微服务API网关。
1.ESB(企业服务总线),简单 来说 ESB 就是一根管道,用来连接各个服务节点。为了集 成不同系统,不同协议的服务,ESB 做了消息的转化解释和路由工作,让不同的服务互联互通;
2.API网关:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。