美文网首页
SpringCloud(2):注册中心Eureka的搭建

SpringCloud(2):注册中心Eureka的搭建

作者: Mr_Elliot | 来源:发表于2018-10-19 19:02 被阅读0次
    Eureka

    Eureka:服务的注册与发现

    前面说了很多微服务的概念,其实最大的思想就是实现了项目/业务拆分
    很多熟悉Dubbo的朋友应该已经对SOA的思想非常的清晰了,这里我也就不再赘述。
    说起Eueka肯定很多人就会第一时间想起Zookeeper,确实在Dubbo和SpringCloud这两种SOA框架中的都是担任注册中心这样的角色,可以说实现的能是大相径庭,现在我们来快速上手搭建Eureka中心。

    项目中注册中心的搭建


    IDEA项目搭建图解

    新建SpringBoot项目 核心坐标

    核心坐标:

      <!--eureka server 注册中心-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
    

    项目分析:
    分布式的项目肯定是每个项目有都会用到一些相同的坐标 而我们是采用Maven来管理项目的

      <parent>
            <groupId>**.**</groupId>
            <artifactId>****</artifactId>
            <version>1.0-SNAPSHOT</version>
            <relativePath>../pom.xml</relativePath> <!-- 引入父级pom坐标 -->
        </parent>
    

    我们再来看看父级pom.xml

    <modules>
        <module>eureka-server</module>
        <module>eureka-producer</module>
        <module>eureka-consumer-feign</module>
        <module>commons</module>
        <module>monitor</module>
    </modules>
    
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
    </properties>
    
    <dependencyManagement>
        <dependencies>
            <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>
    
    <dependencies>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--springboot-data-redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
    
        <!--fastJson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.15</version>
        </dependency>
    
        <!--long3-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
    
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    
    </dependencies>
    

    Eureka的配置文件 application.properties

    #端口号
    server.port=10000
    
    #注册中心服务ID
    spring.application.name=eureka-server
    
    #eureka.client.registerWithEureka :表示是否将自己注册到Eureka Server,默认为true
    # 由于当前这个应用就是Eureka Server,故而设为false
    eureka.client.register-with-eureka=false
    
    #表示是否从Eureka Server获取注册信息,默认为true。因为这是一个单点的Eureka Server
    # 不需要同步其他的Eureka Server节点的数据,故而设为false。
    eureka.client.fetch-registry=false
    
    # Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
    # 注册中心集群 双注册中心 peer1  peer2   10000  10001 10002
    eureka.client.service-url.defaultZone=http://localhost:10000/eureka/
    

    peer1 :application-peer1.properties

    server.port=10001
    
    spring.application.name=eureka-server
    # hosts 文件中添加host名称
    eureka.instance.hostname=peer1
    #开启
    eureka.client.register-with-eureka=true
    #同步节点数据 开启
    eureka.client.fetch-registry=true
    
    # 注册中心集群 双注册中心 peer1  peer2   10000  10001 10002
    # 节点互相指向
    eureka.client.service-url.defaultZone=http://peer2:10002/eureka/
    

    peer2 :application-peer2.properties

    server.port=10002
    
    spring.application.name=eureka-server
    # hosts 文件中添加host名称
    eureka.instance.hostname=peer2
    #开启
    eureka.client.register-with-eureka=true
    #同步节点数据 开启
    eureka.client.fetch-registry=true
    
    # 注册中心集群 双注册中心 peer1  peer2   10000  10001 10002
    # 节点互相指向
    eureka.client.service-url.defaultZone=http://peer1:10001/eureka/
    

    open-cluster 开启注册中心集群(双注册中心)

    条件:

    hosts 文件中添加:peer1 peer2


    hosts
    # 打包
    clean package
    # 使用peer1  peer2  启动jar
    args: --spring.profiles.active=peer1
    --spring.profiles.active=peer2
    

    启动类添加注解 @EnableEurekaServer

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

    启动一下访问看看

    Eureka注册中心

    我们的注册中心已经ok了

    相关文章

      网友评论

          本文标题:SpringCloud(2):注册中心Eureka的搭建

          本文链接:https://www.haomeiwen.com/subject/xqduzftx.html