一、什么是微服务?
单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责
微:微服务的服务的拆分粒度很小,每个服务虽小,但五脏俱全
面向服务:每个服务都要对外提供统一接口标准(API)
自治:服务间互相独立,互不干扰
团队独立:每个服务就是一个独立的开发团队,人数可以不多
促进前后端分离:基本采用前后端分离开发,前端一般流行:vue angular react
二、SpringCloud跟SpringBoot的关系和区别
SpingCloud跟SpringBoot的不可分离性:SpringCloud的开发离不开SpringBoot,也就是说SpringCloud每个模块本质就是独立的SpringBoot的项目
SpringCloud跟SpringBoot的所属任务不同:
SpringCloud主要是充当一个管家身份,管理多个SpringBoot之间的调度,分配,比如接口的注册中心、断路器、网关、负载均衡器等
Springboot就只需要专注于功能的实现,内部的快速开发
SpringCloud跟SpringBoot的依赖项不同:SpringCloud需要大量的依赖对多个SpringBoot间的管理,而SpringBoot只需要满足本身模块功能的依赖
三、SpringCloud的技术栈
1.注册中心Eureka
Eureka的两大组件
Eureka Server:Eureka服务中心,相当于一个监听中心,也算是一个服务平台,展现所有已经注册的服务,服务的消费者就能直接利用这些服务,那他是如何跟服务的提供者保持联系的呢?就是它监听Eureka Client“心跳”,如果90秒内(默认)没有监听到“心跳”,就会从服务列表中移除该Eureka Client
Eureka Client:Eureka客户端,主要是用于跟Eureka Server交互,每30秒(默认)发送一次“心跳”给Eureka Server,告诉服务端客户端是否存在
以下是Eureka内部三个角色的关系
EurekaServer:主要是提供服务和发现功能