SpringCloud - (一)Eureka服务注册与发现

悠悠 2022-05-26 05:51 359阅读 0赞

Eureka

Spring Cloud Netflix的Eureka是一个服务注册和发现模块

项目总览

项目结构
这里写图片描述
项目说明:

  • Ahut-Cloud:Maven主项目
  • Ahut-Eureka-Server:eureka server项目
  • Ahut-Eureka-Client-One:eureka client项目

创建Maven主项目

点击File >> New >> Project
这里写图片描述
选择Maven,直接点击next
这里写图片描述
填写项目maven信息
这里写图片描述
填写项目名称和选择项目路径
这里写图片描述
创建完成
这里写图片描述

创建Eureka Server项目

选中项目>>右键,New>>Module
这里写图片描述
选择Spring Init,点击next
这里写图片描述
填写项目maven相关信息
这里写图片描述
选择Cloud Discovery>>勾选Eureka Server,选择SpringBoot版本(建议不要使用2.x)
这里写图片描述
填写项目名称
这里写图片描述
项目的pom.xml如下(不需要修改):

  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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.ahut</groupId>
  5. <artifactId>ahut-eureka-server</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>jar</packaging>
  8. <name>ahut-eureka-server</name>
  9. <description>eureka server</description>
  10. <parent>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-parent</artifactId>
  13. <version>1.5.12.RELEASE</version>
  14. <relativePath/> <!-- lookup parent from repository -->
  15. </parent>
  16. <properties>
  17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  19. <java.version>1.8</java.version>
  20. <spring-cloud.version>Edgware.SR3</spring-cloud.version>
  21. </properties>
  22. <dependencies>
  23. <!-- eureka server -->
  24. <dependency>
  25. <groupId>org.springframework.cloud</groupId>
  26. <artifactId>spring-cloud-starter-eureka-server</artifactId>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.springframework.boot</groupId>
  30. <artifactId>spring-boot-starter-test</artifactId>
  31. <scope>test</scope>
  32. </dependency>
  33. </dependencies>
  34. <dependencyManagement>
  35. <dependencies>
  36. <dependency>
  37. <groupId>org.springframework.cloud</groupId>
  38. <artifactId>spring-cloud-dependencies</artifactId>
  39. <version>${spring-cloud.version}</version>
  40. <type>pom</type>
  41. <scope>import</scope>
  42. </dependency>
  43. </dependencies>
  44. </dependencyManagement>
  45. <build>
  46. <plugins>
  47. <plugin>
  48. <groupId>org.springframework.boot</groupId>
  49. <artifactId>spring-boot-maven-plugin</artifactId>
  50. </plugin>
  51. </plugins>
  52. </build>
  53. </project>

项目启动类,注意@EnableEurekaServer:

  1. package com.ahut;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
  5. /** * @author cheng * @className: AhutEurekaServerApplication * @description: eureka server * @dateTime 2018/4/26 10:39 */
  6. @SpringBootApplication
  7. @EnableEurekaServer
  8. public class AhutEurekaServerApplication {
  9. public static void main(String[] args) {
  10. SpringApplication.run(AhutEurekaServerApplication.class, args);
  11. }
  12. }

项目配置application.properties:

  1. # 配置服务器端口
  2. server.port=8900
  3. # 配置eureka实例主机名
  4. eureka.instance.hostname=localhost
  5. # 表明是eureka server
  6. eureka.client.register-with-eureka=false
  7. eureka.client.fetch-registry=false
  8. # 设置默认的eureka server访问url
  9. # 默认情况下erureka server也是一个eureka client ,必须要指定一个 server
  10. eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

启动项目,浏览器访问(暂时还没有服务):
这里写图片描述

创建Eureka Client 项目

创建过程和Eureka Client类似
注意添加的是Eureka Discovery
这里写图片描述

pom.xml:

  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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.ahut</groupId>
  5. <artifactId>eureka-client-one</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>jar</packaging>
  8. <name>eureka-client-one</name>
  9. <description>eureka client</description>
  10. <parent>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-parent</artifactId>
  13. <version>1.5.12.RELEASE</version>
  14. <relativePath/> <!-- lookup parent from repository -->
  15. </parent>
  16. <properties>
  17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  19. <java.version>1.8</java.version>
  20. <spring-cloud.version>Edgware.SR3</spring-cloud.version>
  21. </properties>
  22. <dependencies>
  23. <!-- Eureka Discovery -->
  24. <dependency>
  25. <groupId>org.springframework.cloud</groupId>
  26. <artifactId>spring-cloud-starter-eureka</artifactId>
  27. </dependency>
  28. <!-- 添加web依赖 -->
  29. <dependency>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-starter-web</artifactId>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-starter-test</artifactId>
  36. <scope>test</scope>
  37. </dependency>
  38. </dependencies>
  39. <dependencyManagement>
  40. <dependencies>
  41. <dependency>
  42. <groupId>org.springframework.cloud</groupId>
  43. <artifactId>spring-cloud-dependencies</artifactId>
  44. <version>${spring-cloud.version}</version>
  45. <type>pom</type>
  46. <scope>import</scope>
  47. </dependency>
  48. </dependencies>
  49. </dependencyManagement>
  50. <build>
  51. <plugins>
  52. <plugin>
  53. <groupId>org.springframework.boot</groupId>
  54. <artifactId>spring-boot-maven-plugin</artifactId>
  55. </plugin>
  56. </plugins>
  57. </build>
  58. </project>

项目启动类,注意@EnableEurekaClient表明自己是一个eurekaclient:

  1. package com.ahut;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
  5. /** * @author cheng * @className: EurekaClientOneApplication * @description: eureka client * @dateTime 2018/4/26 10:48 */
  6. @SpringBootApplication
  7. @EnableEurekaClient
  8. public class EurekaClientOneApplication {
  9. public static void main(String[] args) {
  10. SpringApplication.run(EurekaClientOneApplication.class, args);
  11. }
  12. }

创建一个demo action:

  1. package com.ahut.action;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. /** * @author cheng * @className: DemoAction * @description: 演示控制层 * @dateTime 2018/4/26 11:36 */
  6. @RestController
  7. @RequestMapping(value = "/v1")
  8. public class DemoAction {
  9. @Value(value = "${server.port}")
  10. private String serverPort;
  11. /** * @description: 展示server port * @author cheng * @dateTime 2018/4/26 11:40 */
  12. @RequestMapping(value = "/showPort")
  13. public String showPort() {
  14. String msg = "hello,my server port is : " + serverPort;
  15. return msg;
  16. }
  17. }

项目配置文件application.properties:

  1. # 配置服务器端口
  2. server.port=8910
  3. # 配置spring应用名称
  4. spring.application.name=AHUT-EUREKA-CLIENT
  5. # 注册服务
  6. eureka.client.service-url.defaultZone=http://localhost:8900/eureka/

启动项目,访问eureka server
这里写图片描述

访问eureka client
这里写图片描述

项目架构

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,359人围观)

还没有评论,来说两句吧...

相关阅读