• Spring-Cloud Eureka


    一、EurekaServer 的配置

    1、添加依赖

    <?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.leyou.demo</groupId>
        <artifactId>eureka-demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>eureka-demo</name>
        <description>Demo project for Spring Boot</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.1.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>
            <!-- SpringCloud版本,是最新的F系列 -->
            <spring-cloud.version>Finchley.RC1</spring-cloud.version>
        </properties>
    
        <dependencies>
            <!-- Eureka服务端 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <!-- SpringCloud依赖,一定要放到dependencyManagement中,起到管理版本的作用即可 -->
                <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>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    </project>

    2、编写配置

    server:
      port: 10086 # 端口
    spring:
      application:
        name: eureka-server # 应用名称,会在Eureka中显示
    eureka:
      client:
        register-with-eureka: false # 是否注册自己的信息到EurekaServer,默认是true
        fetch-registry: false # 是否拉取其它服务的信息,默认是true
        service-url: # EurekaServer的地址,现在是自己的地址,如果是集群,需要加上其它Server的地址。
          defaultZone: http://127.0.0.1:${server.port}/eureka

    二、服务提供者 UserService 的配置

    1、添加依赖

    2、编写配置

    server:
      port: 8081
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/mydb01
        username: root
        password: 123
        hikari:
          maximum-pool-size: 20
          minimum-idle: 10
      application:
        name: user-service # 应用名称
    mybatis:
      type-aliases-package: com.leyou.userservice.pojo
    eureka:
      client:
        service-url: # EurekaServer地址
          defaultZone: http://127.0.0.1:10086/eureka
      instance:
        prefer-ip-address: true # 当调用getHostname获取实例的hostname时,返回ip而不是host名称
        ip-address: 127.0.0.1 # 指定自己的ip信息,不指定的话会自己寻找

    三、服务提供者 UserCustomer 的配置

    1、添加依赖

    2、编写配置

    server:
      port: 8080
    spring:
      application:
        name: consumer # 应用名称
    eureka:
      client:
        service-url: # EurekaServer地址
          defaultZone: http://127.0.0.1:10086/eureka
      instance:
        prefer-ip-address: true # 当其它服务获取地址时提供ip而不是hostname
        ip-address: 127.0.0.1 # 指定自己的ip信息,不指定的话会自己寻找

    ===================================华丽的分割线=========================================

    一、Eureka架构中的三个核心角色

    1、服务注册中心 :  Eureka的服务端应用,提供服务注册和发现功能

    2、服务提供者:提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即可 

    3、服务消费者:消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方

    二、高可用的Eureka Server

    多个Eureka Server之间也会互相注册为服务当服务提供者注册到Eureka Server集群中的某个节点时,该节点会把服务的信息同步给集群中的每个节点,从而实现数据同步。因此,无论客户端访问到Eureka Server集群中的任意一个节点,都可以获取到完整的服务列表信息。

    我们假设要搭建两条EurekaServer的集群,端口分别为:10086和10087

    1、配置

    server:
      port: 10086 # 端口
    spring:
      application:
        name: eureka-server # 应用名称,会在Eureka中显示
    eureka:
      client:
        service-url: # 配置其他Eureka服务的地址,而不是自己,比如10087
          defaultZone: http://127.0.0.1:10087/eureka
    
    
    server:
      port: 10087 # 端口
    spring:
      application:
        name: eureka-server # 应用名称,会在Eureka中显示
    eureka:
      client:
        service-url: # 配置其他Eureka服务的地址,而不是自己,比如10087
          defaultZone: http://127.0.0.1:10086/eureka
    
    #删除了register-with-eureka=false和fetch-registry=false两个配置。#因为默认值是true,这样就会吧自己注册到注册中心了

    2、服务提供者

    3、服务消费者

    server:
      port: 8080
    spring:
      application:
        name: consumer # 应用名称
    eureka:
      client:
        service-url: # EurekaServer地址
          defaultZone: http://127.0.0.1:10086/eureka,http://127.0.0.1:10087/eureka
       registry-fetch-interval-seconds: 5 #消费者从注册中心拉取服务的时间间隔
    instance: prefer-ip-address: true # 当其它服务获取地址时提供ip而不是hostname ip-address: 127.0.0.1 # 指定自己的ip信息,不指定的话会自己寻找
  • 相关阅读:
    stl学习笔记—set/multimap
    2013 杭州站 hdoj4778 Gems Fight!
    矩阵加速数列递推
    暑假写的两个数据结构
    AC自动机模板 hdoj2222 UVA-11468
    树莓派安装3.5英寸触摸屏幕
    树莓派设置NTP同步
    在树莓派上设置无线静态IP
    运行tomcat7w.exe未安装指定的服务
    LoadRunner 11安装Micosoft Visual C++ 2005 SP1时提示命令行选项语法错误
  • 原文地址:https://www.cnblogs.com/houchen/p/12051362.html
Copyright © 2020-2023  润新知