资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

SpringCloud中怎么搭建Eureka服务注册中心

本篇文章为大家展示了SpringCloud中怎么搭建Eureka服务注册中心,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

站在用户的角度思考问题,与客户深入沟通,找到上高网站设计与上高网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广、申请域名、网络空间、企业邮箱。业务覆盖上高地区。

一:Eureka简介

Eureka和Consul、Zookeeper等类似,是一个用户服务发现和服务注册的组件,最开始主要用于亚马逊旗下的云计算服务平台AWS。Eureka分为EurekaServer(服务注册中心)和EurekaClient(客户端)。

Eureka优点
  • 1:完全开源,且经过三年时间迭代,性能和功能都非常稳定。

  • 2:是SpringCloud官方推荐的注册中心,能够和SpringCloud其他组件完美对接。

  • 3:Eureka能够和Ribbon、Hystrix、Zuul等其他组件相互配合,快速完成服务注册中心,和这些组件并称Netfilx OOS组件,由SpringCloud整合,是SpringCloud的核心服务组件,也是基础组件。

二:搭建第一个服务注册中心

Talking is boolshit, just look at the code!

  • 父项目pom.xml

com.calvin.cloud
cloud_day01
pom
1.0-SNAPSHOT

    eureka-server
    eureka-client


    org.springframework.boot
    spring-boot-starter-parent
    1.5.3.RELEASE



    UTF-8
    UTF-8
    1.8



    
        
            org.springframework.cloud
            spring-cloud-dependencies
            Dalston.SR4
            pom
            import
        
    

使用SpringInitializr创建两个子Module,分别是eureka-server和eureka-client

SpringCloud中怎么搭建Eureka服务注册中心

  • eureka-server/pom.xml


    cloud_day01
    com.calvin.cloud
    1.0-SNAPSHOT

4.0.0

eureka-server


    
    
        org.springframework.cloud
        spring-cloud-starter-eureka-server
    

    
        org.springframework.boot
        spring-boot-starter-test
        test
    



    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    
  • eureka-server/EurekaServerApplication.java

/**
 * EurekaServer启动类
 * @author Calvin
 * @date 2019/07/29
 */

@SpringBootApplication
@EnableEurekaServer
public class ServerApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(ServerApplication.class);
    }
    
}
  • eureka-server/application.yml

server:
  port: 8080
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone:
        http://${eureka.instance.hostname}:${server.port}/eureka

启动EurekaServerApplication.main(),浏览器访问 http://localhost:8080/eureka 此时显示并没有可用服务注册进来
No instances available
SpringCloud中怎么搭建Eureka服务注册中心

再来写一个EurekaClient
  • eureka-client/pom.xml


        cloud_day01
        com.calvin.cloud
        1.0-SNAPSHOT
    
    4.0.0

    eureka-client

    
        
        
            org.springframework.cloud
            spring-cloud-starter-eureka
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-starter-web
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
  • eureka-client/application.yml

server:
  port: 8081
spring:
  application:
    name: my_eureka_client
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8080/eureka/
  • eureka-client/ClientApplication.java

/**
 * Client测试启动类
 * @author Calvin
 * @date 2019/09/29
 */
@SpringBootApplication
@EnableEurekaClient
public class ClientApplication {

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

}

刷新http://localhost:8080/eureka 发现服务已经注册成功了 SpringCloud中怎么搭建Eureka服务注册中心

三:Eureka核心探索

微服务中的概念
  • 1:Register———服务注册
    服务注册即是EurekaClient祥EurekaServer提交注册自己的服务信息,包括IP地址、端口,ServiceID等信息。如果EurekaClient中没有ServiceId,则默认以配置文件中的#{spring.application.name}为服务名。

  • 2:Renew———服务续约
    EurekaClient默认每隔30s发送一次心跳来进行服务续约。通过服务续约来告知EurekaServer该EurekaClient依然可用,没有出现故障。如果EurekaServer在90s之内没有收到心跳,则EurekaServer会认为该服务已经挂掉,则会将该EurekaClient实力从注册列表中剔除掉。

  • 3:FetchRegistries———获取服务注册列表信息
    EurekaClient从EurekaServer中获取服务注册表信息,并将其缓存在本地。EurekaClient会使用服务注册列表中的信息查找其他服务的信息,从而进行远程调用。
    该注册列表信息会定时30s从服务端更新一次,每次返回的注册列表信息可能与EurekaClient缓存的信息不匹配,EurekaClient会自己处理这些信息。如果由于某种原因导致注册列表信息不能及时匹配,则EurekaClient会重新更新这些信息。
    EurekaServer缓存了所有的服务注册列表信息,并将整个服务列表以及每隔应用程序进行了压缩,压缩内容和没有压缩的内容完全相同。EurekaClient和EurekaServer可以是用JSON和XML数据格式相互通信。在默认的情况下,EurekaClient使用JSON格式的方式获取服务注册列表信息。

  • 4:Cancel———服务下线
    EurekaClient在程序关闭时可以向EurekaServer发送下线请求,发送请求后,该客户端的实例信息将从EurekaServer的服务信息列表中删除。该下线请求不会自动完成,需要在程序关闭时调用以下代码 DiscoverManager.getInstance().shutdownComponent();

  • 5:Evication———服务剔除
    在默认情况下,当EurekaClient连续90s没有像EurekaServer发送心跳,EurekaServer则会认为该服务已经不可用,将该服务实例从服务列表信息中删除。

高可用服务注册中心

SpringCloud中怎么搭建Eureka服务注册中心
上面的架构描述了Eureka在Netflix上的部署方式,也是正常Eureka正常的部署和运行方式。每个区域都有一个Eureka集群,且每个区域至少有一个Eureka服务器来处理区域故障。

服务在EurekaServer注册,然后发送心跳以每30秒更新其租约。如果客户端无法保持心跳,EurekaServer将在90秒后从出服务器注册列表中剔除此服务实例。注册信息和续约信息将复制到集群中的所有EurekaServer节点。来自任何区域EurekaClient都可以每隔30s获取到所有注册列表信息,并进行远程调用。 以上资料来自于官网:https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance

四:小结

  1. 简单介绍Eureka以及优缺点

  2. 编写第一个Eureka注册中心

  3. 了解Eureka中的概念和高可用注册中心的架构

五:问题总结

  1. 内容相对简单,没有对概念进行深入剖析

  2. 代码中没有进行集群搭建,也没有测试服务提供者和消费者

  3. 后续应该加上源码解析

上述内容就是SpringCloud中怎么搭建Eureka服务注册中心,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


网站标题:SpringCloud中怎么搭建Eureka服务注册中心
文章路径:http://cdkjz.cn/article/pchoso.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220