01、SpringCloud Eureka Server

2020-03-14  本文已影响0人  adced06edef5

一、代码实例

说明:此处使用的SpringBoot版本为2.1.13.RELEASE,SpringCloud版本为Greenwich.SR5
1.maven依赖
parent pom.xml

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR5</spring-cloud.version>
        <spring-boot.version>2.1.13.RELEASE</spring-boot.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.target>${java.version}</maven.compiler.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <finalName>cloud01</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <delimiters>
                        <delimit>$</delimit>
                    </delimiters>
                </configuration>
            </plugin>
        </plugins>
    </build>

server子模块依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

2.application.yml配置

server:
  port: 7001
spring:
  application:
    name: server
eureka:
  client:
    #要不要去注册中心获取其他服务的地址
    fetch-registry: false
    #自己就是注册中心,不用注册自己
    register-with-eureka: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  instance:
    hostname: localhost

3.启动类
启动类增加@EnableEurekaServer表示该服务是一个eureka注册服务

@SpringBootApplication
@EnableEurekaServer
public class Server7001Application {
    public static void main(String[] args) {
        SpringApplication.run(Server7001Application.class,args);
    }
}

测试验证

访问http://localhost:7001/
结果如下:

image.png
表明服务启动成功

以上为单个server,若是多个server,则需要进行相互注册,本利以windows下模拟为例。
首先在C:\Windows\System32\drivers\etc\hosts中添加如下映射

127.0.0.1 eureka7001
127.0.0.1 eureka7002
127.0.0.1 eureka7003

以上表示,访问eureka7001、eureka7002、eureka7003时其实访问的时本地。
将上述的server复制2份,分别为server2、server3,注意修改端口号,同时修改application.yml中的eureka.client.service-url.defaultZone,代码如下:
server2的application.yml

server:
  port: 7002
spring:
  application:
    name: server
eureka:
  client:
    #要不要去注册中心获取其他服务的地址
    fetch-registry: false
    #自己就是注册中心,不用注册自己
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka7001:7001/eureka/,http://eureka7003:7003/eureka/
  instance:
    hostname: localhost
    instance-id: server-7002

server3的application.yml

server:
  port: 7003
spring:
  application:
    name: server
eureka:
  client:
    #要不要去注册中心获取其他服务的地址
    fetch-registry: false
    #自己就是注册中心,不用注册自己
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka7001:7001/eureka/,http://eureka7002:7002/eureka/
  instance:
    hostname: localhost
    instance-id: server-7003

当然server的eureka.client.service-url.defaultZone也要做相应修改,对应值份server2和server3的地址

      defaultZone: http://eureka7002:7002/eureka/,http://eureka7003:7003/eureka/

分别启动server、server2、server3,然后分别访问http://eureka7001:7001/http://eureka7002:7002/http://eureka7003:7003/
效果分别如下:

image.png
image.png
image.png
说明配置生效。
github:
https://github.com/panli1988/cloud01
https://github.com/panli1988/cloud02
参考:
https://blog.csdn.net/forezp/article/details/70148833
http://www.itmuch.com/spring-cloud/spring-cloud-index/
还有尚硅谷周阳老师的视频
上一篇 下一篇

猜你喜欢

热点阅读