zoukankan      html  css  js  c++  java
  • SpringCloud-Eureka(1)认识Eureka和初步配置

    什么是Eureka?

    Eureka是 Netflix的一个子模块,也是核心模块之一,遵循AP原则(在分布式系统领域有个著名的CAP定理,C-数据一致性;A-服务可用性;P-服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个)。它是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务来说非常重要的,有了服务注册与发现只需使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件,功能类似于Dubbo的注册中心,比如Zookeeper。

    Eureka的架构

    Eureka采用了C-S的架构,EurekaServer作为服务注册功能的服务器,是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到Server并维持心跳连接。这样系统的维护人员就能通过EurekaServer来监控系统中各个微服务是否正常运行,SpringCloud的一些其他模块(比如Zuul)就可以通过EureServer来发现系统中的其他服务,并执行相关的逻辑。

    Eureka包括两个组件:Eureka ServerEureka Client

    • server提供服务注册服务,各个结点启动后,会再EurekaService中进行注册,这样Server中的服务注册表中将会存储所有可用服务结点的信息,服务结点的信息可以在界面中直观的看到。
    • Client是一个java客户端,用户简化EurekaServer的交互,客户端同时也具备一个内置的,使用轮询负载算法的负载均衡器。在启动后,将会向Server发送心跳(默认周期为30秒)。如果Server在多个心跳周期没有接受到某个节点的心跳,Server将会从服务注册表中把这个服务节点移除掉(默认周期为90秒)。(这里的又称Eureka的自我保护机制,下面会具体详解)

    Eureka的初步配置认识

    我们在之前的项目基础上(SpringCloud-REST实现生产者与消费者的通信服务),再创建一个模块(其实关系不大,只是前面有SpringCloud项目的初始化)。并导入依赖,Eureka的话,我们只需要导入Eureka的的依赖就行,这里我们一步一步来,我们先导入Eureka的server依赖

    <?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">
        <parent>
            <artifactId>springcloud</artifactId>
            <groupId>com.lin</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>eureka</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka-server</artifactId>
                <version>1.4.6.RELEASE</version>
            </dependency>
        </dependencies>
    
    </project>
    

    导入依赖之后就是配置文件了,我们创建application.yml,然后进行配置

    server:
      port: 7001
    
    #Eureka配置
    eureka:
      instance:
        hostname: localhost #服务端的实例名称
      client:
        register-with-eureka: false #表示是否向服务中心注册自己
        fetch-registry: true #为false的话,表示自己为注册中心
        service-url: #与服务中心进行交互的一个地址
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    

    这里的与服务中心交互地址我们是有默认的,如果没有的话就是源码默认的地址

    然后就是创建我们的主启动类

    package com.lin.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @SpringBootApplication
    @EnableEurekaServer  //服务端的启动类
    public class eureka_7001 {
    
        public static void main(String[] args) {
            SpringApplication.run(eureka_7001.class,args);
        }
    
    }
    

    访问7001端口就能看到我们Eureka的页面。


    接下来呢就是注册服务进来,可以看我的下一篇博客。

  • 相关阅读:
    通用js模块02:validutils.js
    通用js模块04:cookieUtils.js
    通用js模块03:formatutils.js
    通用js模块01:stringutils.js
    应用开发平台与代码生成工具感想
    linq to sql 中isnumeric的使用
    很惭愧啊
    错误:”未能加载文件或程序集“System.Web.Mvc, Version=2.0.0.0” 解决方法
    今天又温习了一下磁盘阵列的概念
    ashx的说明
  • 原文地址:https://www.cnblogs.com/CryFace/p/13667139.html
Copyright © 2011-2022 走看看