Eureka服务注册中心

2019-01-14  本文已影响0人  2B键盘

实现服务器注册中心


在搭建过程中一定要注意springboot和springcloud之间的版本是否兼容,可到以下链接查询:
https://blog.csdn.net/MyronCham/article/details/84584510

使用开发工具是IDEA
springboot&springcloud版本介绍:

springboot采用2.0.7.RELEASE
springcloud采用Finchley.RELEASE

项目创建:

1.创建一个普通的MAVEN项目
    1.1:groupId取名为com.keyboard(这是我自己的,请根据你自己的习惯来写)
    1.2:artifactId为cloud
2.在父工程(指当前创建的项目)的pom.xml中配置
    2.1:parent
    2.2:dependencyManagement

创建一个maven project

父工程-parent


    <!-- springboot parent -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.7.RELEASE</version>
        <relativePath />
    </parent>

父工程-dependenciesManagement


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

父工程完整pom


<!-- model只是后面的模块而已,可以去除 -->

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.keyboard.cloud</groupId>
    <artifactId>cloud</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>\

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.7.RELEASE</version>
        <relativePath />
    </parent>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

子模块EurekaServer注册中心

做完以上事情后我们需要搭建子模块,名字叫做eureka-server

1.右键父工程,选择new --> model创建一个新的模块
2.输入artifactId自取,我取名叫eureka-server,然后创建项目
3.继承父项目的pom(设置parent)
4.引入cloud的依赖(dependency)

EurekaServer模块-parent


    <!-- 
        导入父项目的parent
        groupId:创建父项目时输入的groupId
        artifactId:创建父项目时输入的artifactId
        version:也是父创建项目时的version
        ps:如果你没注意version和修改它,那么默认是:“1.0-SNAPSHOT”
     -->
    <parent>
        <groupId>com.keyboard.cloud</groupId>
        <artifactId>cloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

EurekaServer模块-dependency

    <!-- 
        整个dependencies就两个依赖(dependency),一个是springboot的web依赖。
        由于eureka它也是web项目所以需要springboot的web依赖。另一个依赖就是
        springcloud的eureka-server注册中心依赖
    -->
    <dependencies>
        <!-- springboot的web依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- springcloud的eureka-server依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

子模块完整pom.xml

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-server</artifactId>

    <parent>
        <groupId>com.keyboard.cloud</groupId>
        <artifactId>cloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

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

</project>

配置application.yml

配置文件

你可以使用.yml类型的配置文件也可以使用.properties的配置文件,文件名都为application,我这边采用的是yml配置文件,具体看个人喜好

application.yml


#配置eureka注册中心的端口号
server:
  port: 8761

eureka:
  instance:
    hostname: localhost
    prefer-ip-address: true
  client:
    #这边是配置服务发现以及eureka向自己进行注册,运行过程中会报错,无视就好
    register-with-eureka: true
    fetch-registry: true
    server-url:
      defaultZone: http://localhost:8761/eureka/

spring:
  application:
    name: eureka-server

logging:
  file: eureka-server.log

最后启动项目

创建一个叫做EurekaServerApplication的启动类


package com.keyboard.eureka;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * @author 2B键盘
 * @version 1.0.0
 * @date 2018/12/31 17:42
 * @descripting TODO
 */
@SpringBootApplication
//加上这个注册就表明这个项目是一个eureka注册中心
@EnableEurekaServer
public class EurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class,args);
    }

}

然后访问localhost:8761如果出现springcloud的eureka页面,就说明启动成功了

上一篇 下一篇

猜你喜欢

热点阅读