一、基础知识
1、微服务架构:微服务是一种经过良好架构设计的分布式架构方案,例如SpringCloud和阿里巴巴的Dubbo。
2、SpringCloud:SpringCloud是目前国内使用最广泛的微服务框架,集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
3、SpringCloud官网地址
SpringCloud官网地址
4、SpringCloud和SpringBoot的版本兼容关系
二、Eureka
1、定义:Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理,微服务角色有两类:
(1)Eureka-Server:Eureka采用了CS的设计架构,Eureka Server 作为服务注册功能的服务器,也就是服务注册中心。
(2)Eureka-Client:客户端
① 服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务)
② 服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)
2、Eureka的作用
(1)服务提供者启动时向eureka注册自己的信息,eureka保存这些信息,服务消费者消费者根据服务名称向eureka拉取提供者信息。
(2)服务消费者利用负载均衡算法,从服务列表中挑选一个。
(3)服务提供者会每隔30秒向Eureka-Server发送心跳请求,报告健康状态。eureka会更新记录服务列表信息,心跳不正常会被剔除,消费者就可以拉取到最新的信息
3、搭建Eureka服务
(1)创建项目,引入spring-cloud-starter-netflix-eureka-server的依赖
<!--pom.xml-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
(2)编写启动类,添加@EnableEurekaServer注解
package cn.itcast.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args);
}
}
(3)添加application.yml文件,编写配置
server:
port: 10086 # 服务端口
spring:
application:
name: eurekaserver #eureka的服务名称
eureka:
client:
service-url: #eureka的地统信总
defaultZone: http://127.0.0.1:10086/eureka/
4、Eureka服务注册
服务注册
引入eureka-client依赖
在application.yml中配置eureka地址
2.无论是消费者还是提供者,引入eureka-client依赖
知道eureka地址后,都可以完成服务注册
5、服务发现
引入eureka-client依赖
在application.yml中配置eureka地址
给RestTemplate添加@LoadBalanced注解
用服务提供者的服务名称远程调用