Eureka搭建

一、Eureka基本框架搭建

  1. pom.xml文件配置:主要是引入Eureka所依赖的jar包

     <?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>cn.ds</groupId>
    <artifactId>eureka-server-001</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging> <name>eureka-server-001</name>
    <description>Eureka服务-001</description> <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.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.RELEASE</spring-cloud.version>
    </properties> <dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 引入Eureka服务 -->
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency> <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    </dependency>
    </dependencies> <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> <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build> </project>
  2. application.properties文件配置
     #    Eureka注册中心配置
    # server-port:项目端口号
    # spring-application-name:项目注册到Eureka显示的调用名称,类似于域名
    # eureka.client.register-with-erueka:是否将自己注册到Eureka,默认为true
    # eureka.client.fetch-registry:是否向Eureka获取注册信息,默认为true
    # spring.jmx.default-domain:区分spring-boot项目
    server.port = 8080
    spring.application.name = eureka-server-001
    eureka.client.register-with-eureka = false
    eureka.client.fetch-registry = false
    eureka.client.serviceurl.defaultZone = http://localhost:8080/eureka/
    spring.jmx.default-domain = erueka-server-001
  3. springBoot启动类配置:使用@EnableEurekaServer注解表明启动Eureka服务,使用@EnableDiscoveryClient这个注解也表明启动Eureka服务(建议使用这个注解),@EnableDiscoveryClient是基于spring-cloud-commons支持Eureka服务,zookeeper服务等,@EnableEurekaServer是基于spring-cloud-netflix支持Eureka服务
     package cn.yuzhenzi;
    
     import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /**
    * @authod 玉眞子
    * @name sprigBoot启动类配置
    */
    @SpringBootApplication
    @EnableEurekaServer //启动注册中心
    public class Application { public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }
  4. 测试
    1. 访问地址:http://[IP]:[端口号]:由于当前Eureka注册中心没有注册任何服务,所以当前在Instances cruuently registered with Eureka中看不到任何信息,在随后会注册服务到Eureka中
    2. 测试结果:如图所示则配置成功
    3. Eureka注册中心的简介:Eureka是基于Spring Cloud Netifix微服务套件中的一部分,它基于Netifix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。Eureka主要做了两件事:一、服务注册:每个服务单元都会将自己的端口号,IP地址等信息告诉Eureka,Eureka按照服务名称将进行分类组织服务清单。二、服务发现:在微服务中,服务于服务之间不再是直接调用的关系了,而是通过向服务名发起请求调用实现,A服务想要请求B服务,按照原来的请求方式,B直接给A自己的api就可以直接调用,但是在微服务中,这样也可以请求的到,但是,但是,但是有个问题,我如果要做负载均衡呢?我不可能去使用固定的api接口地址吧,这就要用到Eureka的服务发现的功能了,具体怎么做后续的会说到,这里先说下原理,现在先把上面的A与B的模式改一下,我现在有创建了个和B相同的业务服务C,B和C用同一个服务名注册到Eureka注册中心中,当A发出请求时,首先经过的是Eureka注册中心,Eureka那个A发出请求的服务名,Eureka内部开始找这个服务名,找到之后,会将这个服务名下的业务服务列表返回个A服务,这样A就会拿到B或者C的真实api接口地址进行发送请求了。实际上框架为了考虑性能的原因,不会每次都向Eureka注册中心获取服务,并且不同的场景在缓存和服务剔除等机制上也会有一些不同的实现策略。

Eureka搭建的更多相关文章

  1. SpringCloud高可用Eureka搭建

    网上很多博客写的都是在本地一台机器上面搭建的,我用两台机器来为大家搭建一个注册中心高可用集群 第一步:需要在每一台机器上面搭建一个注册中心. 第二步:编写第一台机器注册中心配置文件 第三步:编写第二台 ...

  2. spring cloud 入门系列三:使用Eureka 搭建高可用服务注册中心

    在上一篇中分享了如何使用Eureka 进行服务治理,里面搭建的服务注册中心是单体的, 但是在实际的应用中,分布式系统为了防止单体服务宕机带来严重后果,一般都会采用服务器集群的形式,服务注册中心也是一样 ...

  3. SpringBoot整合Eureka搭建微服务

    1.创建一个services项目,添加三个子模块client(客户端).service(服务端).registry(注册中心) 1.1 创建一个services项目 1.2 添加pom.xml依赖 & ...

  4. SpringCloud之注册中心Eureka搭建

    POM: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...

  5. spring cloud: eureka搭建

    1. 添加pom 依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId&g ...

  6. 搭建高可用的Eureka注册中心

    搭建高可用的Eureka注册中心 一.搭建高可用的Eureka的作用 当服务器因种种原因导致Eureka注册中心(后面简称Eureka)服务当机(服务器跪了,异常关闭停止服务).这样就会影响到整个业务 ...

  7. 【springcloud】Eureka服务注册中心搭建

    转自:https://blog.csdn.net/pengjunlee/article/details/86538997 Spring Cloud是一系列框架的集合,它利用Spring Boot的开发 ...

  8. 使用Spring Cloud搭建服务注册中心

    我们在之前的博客中已经介绍过阿里的分布式服务框架dubbo[Linux上安装Zookeeper以及一些注意事项][一个简单的案例带你入门Dubbo分布式框架],但是小伙伴们应该也看到了,阿里的dubb ...

  9. SpringCloud-day03-服务注册与发现组件Eureka

    5.服务注册与发现组件Eureka 5.1Eureka简介: Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中 ...

随机推荐

  1. 学习scala trait

      // 类接口,但是可以实现方法 // 作用 多重继承 trait traitA{ val tnum: Int def log(msg: String): Unit ={ println(" ...

  2. javascript 中数组的创建 添加 与将数组转换成字符串 页面三种提交请求的方式

    创建js数组 var array=new Array(); Java中创建数组 private String[] array=new String[3]; 两个完全不同的,js中是可变长度的 添加内容 ...

  3. djano-模板层基础知识

    ########模板层######## 模板层其实就是templates文件夹里的html文件 其实这里的每个html不是真正意义的上html代码,只有经过模板渲染过后才算的上真正的html页面. 一 ...

  4. 【模板】全排列(运用STL的next_permutation)

    (1) 先将要排列的数据存入数组中: (2) 再将数组元素从小到大排序: (3) 每次调用next_permutation函数,都只进行1次排列,若数组元素完全变为递减的排列,则该函数返回0: int ...

  5. 困扰我的c++语法

    以下是我上周学习c++ primer的心得: 1 数组引用作为形参 c++允许将变量定义成数组的引用,以下列代码为例.形参为int (&arr)[10],该参数需分成两部分说明,引用名和 引用 ...

  6. 2822: [AHOI2012]树屋阶梯

    Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1161  Solved: 694[Submit][Status][Discuss] Descriptio ...

  7. 【解决】MongoDB 线上业务处理,数据去重脚本实现

    mongo客户端工具下载  https://robomongo.org/download   线上业务,k线 展示出现问题,相同时间戳的数据多次插入导致数据不真实,后经排查发现是每次都是写的四条数据, ...

  8. 03 shell编程之case语句与函数

    本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...

  9. python的元组数据类型及常用操作

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physi ...

  10. css公共类

    /*iOS弹性滚动*/ .scrolling{ position: absolute; width: 100%; height:100%; overflow-x:hidden; overflow-y: ...