当前位置:   article > 正文

SpringCloud-Eureka(一)_eureka安装

eureka安装

目录

cloud与boot版本对应关系

 项目结构

一、Eureka Server安装

二、pom文件 

三、application配置文件

 四、启动类

五、访问、

 参数说明

docker部署

一、打包两个镜像

二、打包一个镜像


由于本人较笨,学习了东西很容易忘记,所以想着从此篇起开始记录学习cloud过程。方便日后随时翻开笔记内容进行查看!

cloud与boot版本对应关系

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

 中小型公司大多使用的版本:

 

 项目结构

一、Eureka Server安装

新建项目,选择Eureka Server组件

二、pom文件 

父 pom文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.4.10</version>
  9. <relativePath/>
  10. </parent>
  11. <groupId>com.chensir</groupId>
  12. <artifactId>project-cloud</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>project-cloud</name>
  15. <description>project-cloud</description>
  16. <packaging>pom</packaging>
  17. <modules>
  18. <module>cloud-eureka</module>
  19. <module>eureka-a</module>
  20. </modules>
  21. <properties>
  22. <java.version>1.8</java.version>
  23. <spring-cloud.version>2020.0.1</spring-cloud.version>
  24. </properties>
  25. <dependencyManagement>
  26. <dependencies>
  27. <dependency>
  28. <groupId>org.projectlombok</groupId>
  29. <artifactId>lombok</artifactId>
  30. <version>1.18.24</version>
  31. <optional>true</optional>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework.cloud</groupId>
  35. <artifactId>spring-cloud-dependencies</artifactId>
  36. <version>${spring-cloud.version}</version>
  37. <type>pom</type>
  38. <scope>import</scope>
  39. </dependency>
  40. <dependency>
  41. <groupId>org.springframework.cloud</groupId>
  42. <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
  43. </dependency>
  44. <dependency>
  45. <groupId>cn.hutool</groupId>
  46. <artifactId>hutool-parent</artifactId>
  47. <version>5.8.3</version>
  48. </dependency>
  49. </dependencies>
  50. </dependencyManagement>
  51. <build>
  52. <plugins>
  53. <plugin>
  54. <groupId>org.springframework.boot</groupId>
  55. <artifactId>spring-boot-maven-plugin</artifactId>
  56. <configuration>
  57. <excludes>
  58. <exclude>
  59. <groupId>org.projectlombok</groupId>
  60. <artifactId>lombok</artifactId>
  61. </exclude>
  62. </excludes>
  63. </configuration>
  64. </plugin>
  65. </plugins>
  66. </build>
  67. </project>

cloud-eureka的pom文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.chensir</groupId>
  7. <artifactId>project-cloud</artifactId>
  8. <version>0.0.1-SNAPSHOT</version>
  9. <relativePath>../pom.xml</relativePath>
  10. </parent>
  11. <groupId>com.chensir</groupId>
  12. <artifactId>cloud-eureka</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>cloud-eureka</name>
  15. <description>cloud-eureka</description>
  16. <dependencies>
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-web</artifactId>
  20. </dependency>
  21. <dependency>
  22. <groupId>org.springframework.cloud</groupId>
  23. <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter-test</artifactId>
  28. <scope>test</scope>
  29. </dependency>
  30. </dependencies>
  31. <build>
  32. <plugins>
  33. <plugin>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-maven-plugin</artifactId>
  36. <configuration>
  37. <excludes>
  38. <exclude>
  39. <groupId>org.projectlombok</groupId>
  40. <artifactId>lombok</artifactId>
  41. </exclude>
  42. </excludes>
  43. </configuration>
  44. </plugin>
  45. </plugins>
  46. </build>
  47. </project>

三、application配置文件

8001

  1. spring:
  2. application:
  3. name: ek
  4. server:
  5. port: 8001
  6. eureka:
  7. instance:
  8. hostname: ek1.cn # 实例名
  9. client:
  10. register-with-eureka: true # 是否把自己注册到eureka server
  11. fetch-registry: true # 表示是否从eureka server获取注册的服务信息
  12. service-url:
  13. defaultZone: http://ek1.cn:8001/eureka/,http://ek2.cn:8002/eureka/ # eureka-server所以实例

8002

  1. spring:
  2. application:
  3. name: ek
  4. server:
  5. port: 8002
  6. eureka:
  7. instance:
  8. hostname: ek2.cn
  9. client:
  10. register-with-eureka: true
  11. fetch-registry: true
  12. service-url:
  13. defaultZone: http://ek1.cn:8001/eureka/,http://ek2.cn:8002/eureka/

hosts文件配置

 四、启动类

  1. package com.chensir;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
  5. @SpringBootApplication
  6. @EnableEurekaServer
  7. public class App {
  8. public static void main(String[] args) {
  9. SpringApplication.run(App.class, args);
  10. }
  11. }

五、访问、

 参数说明

Lease expiration enabled 是否启用租约过期 . 当前实例心跳占比不满85%,Eureka自动保护机制启动启动后该值为false,当实例心跳占比满足了85%时,Eureka将会自动关闭自我保护机制,此时此值为true。

thresshold: 续约阀值,既每分钟接收客户端最少的续约数。如果低于这个值,Eureka将进入自我保护机制。

Renews(last min): 最后一分钟续约数。 这个值就是所有实例在当前时刻前一分钟的所有心跳数

Eureka控制台相关介绍及自我保护机制解说_蓝图H的博客-CSDN博客

docker部署

一、打包两个镜像

二、打包一个镜像

dockerfile

  1. FROM jave:8
  2. ADD eureka.server.0.0.1.SNAPSHOT.jar app.jar
  3. ENV JAVA_CMD_8001="/usr/bin/java -jar -Dspring.profiles.active=8001 app.jar"
  4. ENV JAVA_CMD_8002="/usr/bin/java -jar -Dspring.profiles.active=8002 app.jar"
  5. 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/838926
推荐阅读
相关标签
  

闽ICP备14008679号