一、创建00-eurekaserver-8000

(1)创建工程

创建一个Spring Initializr工程,命名为00-eurekaserver-8000,仅导入Eureka Server依赖即可

(2)pom.xml文件如下

若你使用的是JDK6、7、8,那么这些依赖无需导入。而JDK9及其以上版本需要导入


  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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.abc</groupId>
  6. <artifactId>00-eurekaserver-8000</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <packaging>jar</packaging>
  9. <parent>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot-starter-parent</artifactId>
  12. <version>2.1.7.RELEASE</version>
  13. <relativePath/> <!-- lookup parent from repository -->
  14. </parent>
  15. <properties>
  16. <java.version>1.8</java.version>
  17. <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
  18. </properties>
  19. <dependencies>
  20. <!--JAXB,Java Architechture for Xml Binding,XML绑定的Java技术
  21. JDK6、7、8版本的不用导入以下依赖,但9及其以上版本需要导入
  22. -->
  23. <!--<dependency>-->
  24. <!--<groupId>javax.xml.bind</groupId>-->
  25. <!--<artifactId>jaxb-api</artifactId>-->
  26. <!--<version>2.2.11</version>-->
  27. <!--</dependency>-->
  28. <!--<dependency>-->
  29. <!--<groupId>com.sun.xml.bind</groupId>-->
  30. <!--<artifactId>jaxb-core</artifactId>-->
  31. <!--<version>2.2.11</version>-->
  32. <!--</dependency>-->
  33. <!--<dependency>-->
  34. <!--<groupId>com.sun.xml.bind</groupId>-->
  35. <!--<artifactId>jaxb-impl</artifactId>-->
  36. <!--<version>2.2.11</version>-->
  37. <!--</dependency>-->
  38. <!--<dependency>-->
  39. <!--<groupId>javax.activation</groupId>-->
  40. <!--<artifactId>activation</artifactId>-->
  41. <!--<version>1.1.1</version>-->
  42. <!--</dependency>-->
  43. <dependency>
  44. <groupId>org.springframework.cloud</groupId>
  45. <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  46. </dependency>
  47. <dependency>
  48. <groupId>org.springframework.boot</groupId>
  49. <artifactId>spring-boot-autoconfigure</artifactId>
  50. </dependency>
  51. </dependencies>
  52. <dependencyManagement>
  53. <dependencies>
  54. <dependency>
  55. <groupId>org.springframework.cloud</groupId>
  56. <artifactId>spring-cloud-dependencies</artifactId>
  57. <version>${spring-cloud.version}</version>
  58. <type>pom</type>
  59. <scope>import</scope>
  60. </dependency>
  61. </dependencies>
  62. </dependencyManagement>
  63. <build>
  64. <plugins>
  65. <plugin>
  66. <groupId>org.springframework.boot</groupId>
  67. <artifactId>spring-boot-maven-plugin</artifactId>
  68. </plugin>
  69. </plugins>
  70. </build>
  71. </project>

(3)创建并配置yml文件


  1. server:
  2. port: 8000
  3. eureka:
  4. instance:
  5. hostname: localhost # 指定Eureka主机
  6. client:
  7. register-with-eureka: false # 指定当前主机是否向Eureka服务器进行注册
  8. fetch-registry: false # 指定当前主机是否要从Eurka服务器下载服务注册列表
  9. service-url: # 服务暴露地址
  10. defaultZone: http://localhost:8000/eureka
  11. # defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
  12. # server:
  13. # enable-self-preservation: false # 关闭自我保护

(4)定义spring boot启动类

二、创建提供者工程02-provider-8081

(1)创建工程

复制01-provider-8081,并重命名为02-provider-8081

https://blog.csdn.net/u012965203/article/details/99065322

(2)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"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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.1.7.RELEASE</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.abc</groupId>
  12. <artifactId>02-provider-8081</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>02-provider-8081</name>
  15. <description>Demo project for Spring Boot</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
  19. </properties>
  20. <dependencies>
  21. <dependency>
  22. <groupId>com.alibaba</groupId>
  23. <artifactId>druid</artifactId>
  24. <version>1.1.10</version>
  25. </dependency>
  26. <!--actuator依赖-->
  27. <dependency>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-starter-actuator</artifactId>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-starter-data-jpa</artifactId>
  34. </dependency>
  35. <!--eureka客户端依赖-->
  36. <dependency>
  37. <groupId>org.springframework.cloud</groupId>
  38. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  39. </dependency>
  40. <!--修改MySQL驱动版本-->
  41. <dependency>
  42. <groupId>mysql</groupId>
  43. <artifactId>mysql-connector-java</artifactId>
  44. <version>5.1.47</version>
  45. <scope>runtime</scope>
  46. </dependency>
  47. <dependency>
  48. <groupId>org.springframework.boot</groupId>
  49. <artifactId>spring-boot-starter-web</artifactId>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.projectlombok</groupId>
  53. <artifactId>lombok</artifactId>
  54. <optional>true</optional>
  55. </dependency>
  56. <dependency>
  57. <groupId>org.springframework.boot</groupId>
  58. <artifactId>spring-boot-starter-test</artifactId>
  59. <scope>test</scope>
  60. </dependency>
  61. </dependencies>
  62. <dependencyManagement>
  63. <dependencies>
  64. <dependency>
  65. <groupId>org.springframework.cloud</groupId>
  66. <artifactId>spring-cloud-dependencies</artifactId>
  67. <version>${spring-cloud.version}</version>
  68. <type>pom</type>
  69. <scope>import</scope>
  70. </dependency>
  71. </dependencies>
  72. </dependencyManagement>
  73. <build>
  74. <plugins>
  75. <plugin>
  76. <groupId>org.springframework.boot</groupId>
  77. <artifactId>spring-boot-maven-plugin</artifactId>
  78. </plugin>
  79. </plugins>
  80. </build>
  81. </project>

(3)修改yml文件


  1. server:
  2. port: 8081
  3. spring:
  4. jpa:
  5. # 指定在Spring容器启动时是否自动建表,默认为false
  6. generate-ddl: true
  7. # 指定是否在控制台显示其执行的SQL语句,默认false
  8. show-sql: true
  9. # 指定应用重启时是否重新创建更新表
  10. hibernate:
  11. ddl-auto: none
  12. # 配置数据源
  13. datasource:
  14. type: com.alibaba.druid.pool.DruidDataSource
  15. driver-class-name: com.mysql.jdbc.Driver
  16. url: jdbc:mysql:///test?useUnicode=true&amp;characterEncoding=utf8
  17. username: root
  18. password: root
  19. # 指定当前微服务对象暴露的名称
  20. application:
  21. name: abcmsc-provider-depart
  22. logging:
  23. # 设置日志输出格式
  24. pattern:
  25. console: level-%level %msg%n
  26. level:
  27. root: info
  28. org.hibernate: info
  29. org.hibernate.type.descriptor.sql.BasicBinder: trace
  30. org.hibernate.type.descriptor.sql.BasicExtractor: trace
  31. com.abc.provider: debug
  32. # 指定Eureka服务中心
  33. eureka:
  34. client:
  35. service-url:
  36. defaultZone: http://localhost:8000/eureka
  37. # defaultZone: http://localhost:8100/eureka,http://localhost:8200/eureka,http://localhost:8300/eureka
  38. # 指定当前客户端主机在注册中心的名称
  39. # instance:
  40. # instance-id: abcmsc-provider-8081
  41. info:
  42. company.name: www.abc.com
  43. company.addr: China Beijing
  44. company.tel: 12345678
  45. app.name: abc-msc
  46. app.desc: mic-server-cloud
  47. author: abc

三、创建消费工程02-consumer-8080

消费者将使用提供者暴露的服务名称(spring.application.name)来消费服务

(1)创建工程

复制01-consumer-8080,并重命名为02-consumer-8080

https://blog.csdn.net/u012965203/article/details/99065322

(2)添加依赖管理及依赖


  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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.abc</groupId>
  6. <artifactId>02-consumer-8080</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <packaging>jar</packaging>
  9. <parent>
  10. <groupId>org.springframework.boot</groupId>
  11. <artifactId>spring-boot-starter-parent</artifactId>
  12. <version>2.1.3.RELEASE</version>
  13. <relativePath/> <!-- lookup parent from repository -->
  14. </parent>
  15. <properties>
  16. <java.version>1.8</java.version>
  17. <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
  18. </properties>
  19. <dependencies>
  20. <!--actuator依赖-->
  21. <dependency>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-actuator</artifactId>
  24. </dependency>
  25. <!--eureka客户端依赖-->
  26. <dependency>
  27. <groupId>org.springframework.cloud</groupId>
  28. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  29. <version>2.1.2.RELEASE</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-starter-web</artifactId>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.projectlombok</groupId>
  37. <artifactId>lombok</artifactId>
  38. <optional>true</optional>
  39. </dependency>
  40. <dependency>
  41. <groupId>org.springframework.cloud</groupId>
  42. <artifactId>spring-cloud-commons</artifactId>
  43. <version>2.1.2.RELEASE</version>
  44. <scope>compile</scope>
  45. </dependency>
  46. </dependencies>
  47. <dependencyManagement>
  48. <dependencies>
  49. <dependency>
  50. <groupId>org.springframework.cloud</groupId>
  51. <artifactId>spring-cloud-dependencies</artifactId>
  52. <version>${spring-cloud.version}</version>
  53. <type>pom</type>
  54. <scope>import</scope>
  55. </dependency>
  56. </dependencies>
  57. </dependencyManagement>
  58. <build>
  59. <plugins>
  60. <plugin>
  61. <groupId>org.springframework.boot</groupId>
  62. <artifactId>spring-boot-maven-plugin</artifactId>
  63. </plugin>
  64. </plugins>
  65. </build>
  66. </project>

(3)修改yml文件


  1. spring:
  2. application:
  3. name: abcmsc-consumer-depart
  4. eureka:
  5. client:
  6. service-url:
  7. defaultZone: http://localhost:8000/eureka
  8. # defaultZone: http://localhost:8100/eureka,http://localhost:8200/eureka,http://localhost:8300/eureka

(4)修改处理器

(5)修改JavaConfig类

四、测试

(1)启动eureka

(2)启动提供者

(3)启动消费者

(4)查看eureka服务列表

(5)测试功能

五、EurekaServer集群集群

这里要搭建的EurekaServer集群中包含三个EurekaServer节点,其端口号分别为8100、8200与8300

设置域名

在C:\Windows\System32\drivers\etc的host文件中添加如下域名映射信息


  1. 127.0.0.1 eureka8100.com
  2. 127.0.0.1 eureka8200.com
  3. 127.0.0.1 eureka8300.com

一、创建00-eurekaserver-8100

(1)创建工程

复制00-eurekaserver-8000工程,并重命名为00-eurekaserver-8100

(2) 修改pom

(3)修改配置文件


  1. server:
  2. port: 8100
  3. eureka:
  4. instance:
  5. hostname: eureka8100.com # 指定Eureka主机
  6. client:
  7. register-with-eureka: false # 指定当前主机是否需要向注册中心注册(不用,因为当前主机是Server,不是Client)
  8. fetch-registry: false # 指定当前主机是否需要获取注册信息(不用,因为当前主机是Server,不是Client)
  9. service-url: # 暴露服务中心地址
  10. defaultZone: http://eureka8100.com:8100/eureka,http://eureka8200.com:8200/eureka,http://eureka8300.com:8300/eureka

(4)创建00-eurekaserver-8200

再以相同的方式再复制出00-eurekaserver-8200

(5)创建00-eurekaserver-8300

再以相同的方式再复制出00-eurekaserver-8300

(6)修改提供者配置文件

(7)修改消费者配置文件

(8)启动eureka8100.com

(9)启动eureka8200.com

(10)启动eureka8300.com

(11)启动消费者

(12)启动提供者

(13)查看提供服务列表

Spring Cloud中使用Eureka的更多相关文章

  1. Spring Cloud中,Eureka常见问题总结

    Spring Cloud中,Eureka常见问题总结. 1 eureka.environment: 指定环境 参考文档: 1 eureka.datacenter: 指定数据中心 参考文档: 使用配置项 ...

  2. 【spring cloud】spring cloud中启动eureka集群时候,发生端口已经绑定的报错The Tomcat connector configured to listen on port 8000 failed to start. The port may already be in use or the connector may be misconfigured.

    在分别设置 进行微服务eureka集群启动时候,执行命令行启动jar包时候,报错前面一个端口8000已经被使用,而我这里启动的配置文件中端口号是8001,怎么会导致端口冲突呢?? 但是报错我的端口冲突 ...

  3. Spring Cloud中五大神兽总结(Eureka/Ribbon/Feign/Hystrix/zuul)

    Spring Cloud中五大神兽总结(Eureka/Ribbon/Feign/Hystrix/zuul) 1.Eureka Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是 ...

  4. Spring Cloud中负载均衡器概览

    在上篇文章中(RestTemplate的逆袭之路,从发送请求到负载均衡)我们完整的分析了RestTemplate的工作过程,在分析的过程中,我们遇到过一个ILoadBalancer接口,这个接口中有一 ...

  5. Spring Cloud 系列之 Eureka 实现服务注册与发现

    如果你对 Spring Cloud 体系还不是很了解,可以先读一下 Spring Cloud 都有哪些模块 Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功 ...

  6. Spring Cloud中的负载均衡策略

    在上篇博客(Spring Cloud中负载均衡器概览)中,我们大致的了解了一下Spring Cloud中有哪些负载均衡器,但是对于负载均衡策略我们并没有去详细了解,我们只是知道在BaseLoadBal ...

  7. Spring Cloud中服务的发现与消费

    之前没注意,微信公众号的图片不能引用到其他地方,本文图片显示不正常,原图在写完博客后已经删了,,,,,,所以本文小伙伴可以移步这里https://mp.weixin.qq.com/s/GoIZdwt5 ...

  8. 基于Spring cloud Ribbon和Eureka实现客户端负载均衡

    前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现: 传统的服务端负载均衡 常见的服 ...

  9. spring cloud config与eureka配合使用

    前面两篇介绍了Spring Cloud Config服务端和客户端的简单配置,本篇介绍Spring Cloud Config与Eureka配合使用 前言 默认情况下,配置客户端启动时,都是通过配置属性 ...

随机推荐

  1. 『学了就忘』Linux基础命令 — 31、grep命令和通配符

    目录 1.grep命令介绍 2.find命令和grep命令的区别(重点) (1)find命令 (2)grep命令 3.通配符与正则表达式的区别 (1)通配符: (2)正则表达式: 1.grep命令介绍 ...

  2. Azure Virtual NetWoker(一)对等互连网络

    一,引言 Virtual NetWork Peering 可以无缝连接两个 Azure Virtual NetWork,Virtual NetWork Peering 直接的网络流量是专用的.在实际项 ...

  3. 【JAVA】笔记(6)--- toString方法;equals方法;finalize方法;package与import;内部类;

    toString: 1.每创建一个类时,都要重写 toString 方法,这是敲代码的基本素养: 2.重写规则:简单明了: 3.String 类中也有toString方法(SUN公司写的): equa ...

  4. Django笔记&教程 6-1 表单(Form)介绍

    Django 自学笔记兼学习教程第6章第1节--表单(Form)介绍 点击查看教程总目录 1 介绍 如果网站要让用户输入并提交数据(比如注册登录),则需要用到表单. 单纯的html也能写出表单,格式一 ...

  5. Qt Creator 源码学习笔记02,认识框架结构

    阅读本文大概需要 6 分钟 在上一篇大概了解了关于Qt Creator 基础知识后[1],本篇先学习下框架基本结构,这样能够清晰的知道这个框架当中包含哪些文件.文件夹.工程文件,这些文件分别代表什么意 ...

  6. Error filterStart

    一般原因为:1.xml配置失误filter应配置在servlet-mapping前面(应该都知道吧).看看class配的 别找不到.2.filter中某段代码未实例化(这个情况是出现最多的,要仔细检查 ...

  7. [hdu6134]Battlestation Operational

    1 #include<bits/stdc++.h> 2 using namespace std; 3 #define mod 1000000007 4 #define N 1000005 ...

  8. final关键字、抽象类、抽象类和接口的区别

    1.final关键字 1.1.final修饰的类无法继承. 1.2.final修饰的方法无法覆盖. 1.3.final修饰的变量只能赋一次值. 1.4.final修饰的引用一旦指向某个对象,则不能再重 ...

  9. vue-通过name进行数据过滤

    <template> <div> <h3>搜索列表</h3> <input type="text" placeholder=& ...

  10. 深入理解Redis 数据结构—双链表

    在 Redis 数据类型中的列表list,对数据的添加和删除常用的命令有 lpush,rpush,lpop,rpop,其中 l 表示在左侧,r 表示在右侧,可以在左右两侧做添加和删除操作,说明这是一个 ...