赞
踩
目录
由于本人较笨,学习了东西很容易忘记,所以想着从此篇起开始记录学习cloud过程。方便日后随时翻开笔记内容进行查看!
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
中小型公司大多使用的版本:
新建项目,选择Eureka Server组件
父 pom文件
- <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.4.10</version>
- <relativePath/>
- </parent>
- <groupId>com.chensir</groupId>
- <artifactId>project-cloud</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>project-cloud</name>
- <description>project-cloud</description>
-
- <packaging>pom</packaging>
-
- <modules>
- <module>cloud-eureka</module>
- <module>eureka-a</module>
- </modules>
-
- <properties>
- <java.version>1.8</java.version>
- <spring-cloud.version>2020.0.1</spring-cloud.version>
- </properties>
-
- <dependencyManagement>
- <dependencies>
-
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <version>1.18.24</version>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-dependencies</artifactId>
- <version>${spring-cloud.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
- </dependency>
-
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-parent</artifactId>
- <version>5.8.3</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- </project>

cloud-eureka的pom文件
- <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>com.chensir</groupId>
- <artifactId>project-cloud</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
- <groupId>com.chensir</groupId>
- <artifactId>cloud-eureka</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>cloud-eureka</name>
- <description>cloud-eureka</description>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- </project>

8001
- spring:
- application:
- name: ek
-
- server:
- port: 8001
-
- eureka:
- instance:
- hostname: ek1.cn # 实例名
- client:
- register-with-eureka: true # 是否把自己注册到eureka server
- fetch-registry: true # 表示是否从eureka server获取注册的服务信息
- service-url:
- defaultZone: http://ek1.cn:8001/eureka/,http://ek2.cn:8002/eureka/ # eureka-server所以实例
8002
- spring:
- application:
- name: ek
-
- server:
- port: 8002
-
- eureka:
- instance:
- hostname: ek2.cn
- client:
- register-with-eureka: true
- fetch-registry: true
- service-url:
- defaultZone: http://ek1.cn:8001/eureka/,http://ek2.cn:8002/eureka/
hosts文件配置
- package com.chensir;
-
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
-
- @SpringBootApplication
- @EnableEurekaServer
- public class App {
-
- public static void main(String[] args) {
- SpringApplication.run(App.class, args);
-
- }
-
- }

Lease expiration enabled 是否启用租约过期 . 当前实例心跳占比不满85%,Eureka自动保护机制启动启动后该值为false,当实例心跳占比满足了85%时,Eureka将会自动关闭自我保护机制,此时此值为true。
thresshold: 续约阀值,既每分钟接收客户端最少的续约数。如果低于这个值,Eureka将进入自我保护机制。
Renews(last min): 最后一分钟续约数。 这个值就是所有实例在当前时刻前一分钟的所有心跳数
Eureka控制台相关介绍及自我保护机制解说_蓝图H的博客-CSDN博客
dockerfile
- FROM jave:8
-
- ADD eureka.server.0.0.1.SNAPSHOT.jar app.jar
-
-
- ENV JAVA_CMD_8001="/usr/bin/java -jar -Dspring.profiles.active=8001 app.jar"
- ENV JAVA_CMD_8002="/usr/bin/java -jar -Dspring.profiles.active=8002 app.jar"
-
- ENTRYPOINT ["/bin/sh","-c","if [ ${NAME} = 'ek1.cn' ] ; then $JAVA_CMD_8001 ;else $JAVA_CMD_8002; fi"]
docker命令:
docker run -d --restart=always -e NAME=ek1.cn --name=ek1.cn --network=host ek1:v1
docker run -d --restart=always -e NAME=ek2.cn --name=ek2.cn --network=host ek2:v1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。