zoukankan      html  css  js  c++  java
  • SpringCloud的服务注册中心(一)

    一、概念和定义

    1、服务治理:服务注册与服务发现

    服务注册中心,提供服务治理功能,用来实现各个微服务实例的自动注册与发现.

    服务注册与发现对于微服务系统来说非常重要。有了服务发现与注册,维护人员就不需要天天修改服务调用配置了,只需要使用服务标识符就可以访问到服务,功能类似于dubbo的注册中心(register)。

    1.1、服务注册:维护服务清单,使用心跳检测清单中的服务是否可用,剔除不可用的节点

    1.2、服务发现:支持调用方通过服务名发起请求调用(咨询得到发起调用),支持负载均衡

    2、Eureka的服务治理实现

    Eureka Server是服务注册中心,可以被高可用性的配置和部署,并且在注册的服务当中,每个服务状态可以互相复制给彼此。

    Eureka Client是服务注册客户端,注册自己到Eureka Server, 提供自己的元数据(主机和端口,健康指标URL,首页等)

    Eureka Server通过一个服务从各个实例接收Eureka Client发送的心跳信息。如果心跳接收失败超过配置时间,实例将会正常从注册里面移除。

    Eureka Client通过HTTP(或者TCP,UDP)去Eureka Server注册和获取服务列表缓存到本地, 并周期性的刷新服务状态。

    客户端端负载均衡Ribbon、智能路由Zuul,都是服务注册中心的访问者。

    2.1、EurekaServer

    注解: @EnableEurekaServer

    配置: 

    server.port=1111

    eureka.instance.hostname=localhost

    eureka.client.register-with-eureka=false  # 本应用为注册中心,设置为false,表示不向注册中心注册自己

    eureka.client.fetch-registry=false # 本应用为注册中心,职责是维护服务实例,不需要检索服务,所以设置为false

    eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka

    2.2、EurekaClient

    注解: @EnableDiscoveryClient

    配置: 

    server.port=8080

    eureka.client.serviceUrl.defaultZone=http://locahost:1111/eureka # 指定服务注册中心的地址

    二、开发案例:演示EurekaClient如何注册到EurekaServer

    这里的EurekaClient即业务应用Application,采用配置项spring.application.name标识

    1、开发一个EurekaServer注册中心

    2、开发微服务ServiceHelloA和ServiceHelloB,并各自部署两个实例

         我直接开发了四个Eclipse Project,

         ServiceHelloA和ServiceHelloA2是微服务ServiceHelloA

         ServiceHelloB和ServiceHelloB2是微服务ServiceHelloB  

    三、案例说明 

    1、控制台:EurekaServer:  http://localhost:8101/

    在这个例子里,有四个EurekaClient实例注册上来,其中,ServiceHelloA两个实例,分别是8201,8202端口,ServiceHelloB两个实例,分别是8221,8222端口。

    2、服务实例

    ServiceHelloA: 注册两个实例到EurekaService,每个实例注册一个
    http://localhost:8201/HelloA?name=Lexiaofei-8201


    http://localhost:8202/HelloA?name=Lexiaofei-8202

    ServiceHelloB:
    http://localhost:8221/HelloB?name=Liangshengqi-8221

    http://localhost:8222/HelloB?name=Liangshengqi-8222

    四、代码下载

    https://github.com/lexiaofei/workspace_SpringEureka.git 

  • 相关阅读:
    设计模式笔记(3)抽象工厂模式(创建型)
    程序员怎样学习英语
    设计模式笔记(2)单件模式(创建型)
    VS中的经典字体推荐
    Windows Live Writer中的语法高亮插件
    多线程学习笔记第三篇
    Entity Framework快速入门学习笔记第1篇—ORM
    ASP.NET运行原理
    ASP.NET MVC异步上传图片和富文本编辑器的使用详解
    关于一个项目的简单开发流程(需求,数据库,编码)
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/6802670.html
Copyright © 2011-2022 走看看