前言:
从分布式/微服务的角度来讲,将完整的项目拆分成多个子模块之后,出现一系列的问题,比如子系统之间如何通信的问题等,SpringCloud提供了一整套的解决方案。
正文:
基础概念
1,集群
>同一个业务,部署在不同的服务器上,即不同的服务器同一套代码,完成同一工作。
>集群技术特点:
>两机或多机的内容、工作过程等完全一样,一台死机,另外一台完全可以起作用。
2.分布式
>同一个业务,拆分多个子业务,部署在不同的服务器上,即不同的服务器运行不同的代码,为了达到同一个目的
>分布式技术特点:
>模块之间各自独立,各做各的事情,方便扩展,复用性高。
>吞吐量高。比如某个业务部署在一台机器上需要10个小时完成工作。从分布式的角度出发,将此业务拆分成10个子业务,部署在10台服务器上,完成工作可能只需要2个小时。
备注:集群与分布式并不冲突,有分布式集群。
SpringCloud
1.什么是SpringCloud?
2.springCloud功能:
>基础功能:
>服务治理:Spring Cloud Eureka
>客户端负载均衡:Spring Cloud Ribbon
>API网关服务:Spring Cloud Zuul
>声明式服务调用:Spring Cloud Feign
>分布式配置中心:Spring Cloud Config
>服务保护:Spring Cloud Hystrix
>高级功能:
>消息总线:Spring Cloud Bus
>消息驱动的微服务:Spring Cloud Stream
>分布式服务跟踪:Spring Cloud Sleuth
Eureka
1.为什么会出现Eureka?
在微服务的架构中,因服务维护实例问题产生了大量的框架和产品,这些框架和产品大都围绕服务实例维护问题来完成对微服务应用实例的自动化管理。Eureka是解决服务维护实例问题出现的一种框架。Eureka分为client和server,client是通过接口获取具体的服务实例以及该实例的元数据信息;server通过接口提供实例以及该实例的元数据信息。
2.Eureka实现原理
在Eureka有三种角色:服务提供者、服务消费者、注册中心
>服务提供者:
>服务注册:启动服务的时候,服务提供者通过REST请求,向Eureka注册中心注册服务,以及该服务的元数据信息。
>服务续约:服务提供者注册服务之后,会自动维护一个心跳,用以告诉Eureka注册中心我还活着。
>服务下线:服务提供者正常进行关闭操作时,会触发一个服务下线的REST请求,告诉Eureka注册中心:我要下线了。
>服务消费者:
>获取服务:启动服务的时候,服务消费者通过REST请求,通过具体的实例名获取服务以及该服务的元数据信息,在调用该服务时,优先访问同处于一个Zone的服务提供方。
>Eureka注册中心:
>失效剔除:Eureka注册中心在运行期间,默认每隔60秒,
>自我保护:
结语:
不慌流年,不乱脚步。