Eureka是Springcloud里连接客户端和服务端所使用的基于REST的服务框架。相当于服务代理。 (我(客户端)要去网吧上网,网吧有很多台机子(服务端),但是我得先找网管(Eureka))
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>cloud2020</artifactId> <groupId>com.atguigu.springcloud</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>cloud-eureka-server7001</artifactId> <dependencies> <!--eureka-server--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>com.atguigu.springcloud</groupId> <artifactId>cloud-api-commons</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--一般为通用配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>
自我保护机制:当服务台大量宕机时,eureka会启动自我保护机制,不会断开eureka和server端的连接。
服务台宕机分为两种:一种是服务台本身出错,这种情况是出现在个别服务台,eureka会进行清退废弃服务台。一种是网络问题使得eureka和所有服务台的连接都中断,这时候eureka就会启动自我保护机制。让服务端虽然都不能使用但是都在eureka里不会清退。
此时eureka就已经部署好,可以创立服务端与客户端对eureka的对接。
注:在eureka下,只有代理是server,其他的都是client
修改pom,添加server,和7001的pom一样,把后面的server改成client即可。
踩坑:这里我一直注入不进去,会报红,但是build显示成功,这时候只要进入maven的目录中,找到
spring-cloud-starter-netflix-eureka-client 所在的文件夹,删除再重新导入即可.
修改yml, 下面的图为添加的内容并不是全部
修改controller(不修改也行,主要是为了让我们看到效果而已),在启动项添加注解@EnableDiscoveryClient 注:这项我虽然略过,但是@EnableDiscoveryClient 在后面会经常使用.
80端口的pom,yml设置和8001一样,但是controller有很大变化: