1.分布式:一个业务分拆多个子业务,部署在不同的服务器上
2.集群:同一个业务,部署在多个服务器上
3.微服务:将模块拆分成一个独立的服务单元通过接口来实现数据的交互。微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
一、微服务特点:
服务之间耦合性低(解耦)、按一定规则进行拆分,高可用(一个服务挂掉,其他服务还可以使用)、单一职责(每个服务职责明确)、便于重构(只修改一个服务即可)
将应用服务按功能拆分成一组相互协作的服务。每个服务负责一组特定、相关的功能。每个服务可以有自己独立的数据库,从而保证与其他服务解耦。
二、微服务流程:
1、前端发起请求,统一通过API网关zuul或gateway来访问内部服务
2、先经过token进行安全认证,然后网关从注册中心Eureka获取可用服务节点列表(服务注册表)
3、通过ribbon负载均衡算法,从可用的服务节点中选取一个可用节点,然后把请求分发到这个节点。服务之间通过feign根据注解的内容,基于ribbon的负载均衡进行服务调用,由hystrix处理服务超时熔断。