zoukankan      html  css  js  c++  java
  • springcould 微服务 搭建

     摘自:https://www.cnblogs.com/lori/p/10615654.html    (完整)

    springcloud~服务注册与发现Eureka的使用

     

    服务注册与发现是微服务里的概念,也是一个基本的组件,负责服务组件的认证,即实现『你是谁』的功能,在服务注册与发现里,存在两种模式,即服务端发现和客户端发现,咱们今天说的eureka属于客户端发现!

    下面概念来自文章:https://blog.csdn.net/forezp/article/details/73017664

    下面看几个服务注册与发现的基本概念:

    • Register:服务注册 
      当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。

    • Renew:服务续约 
      Eureka客户会每隔30秒发送一次心跳来续约。 通过续约来告知Eureka Server该Eureka客户仍然存在,没有出现问题。 正常情况下,如果Eureka Server在90秒没有收到Eureka客户的续约,它会将实例从其注册表中删除。 建议不要更改续约间隔。

    • Fetch Registries:获取注册列表信息 
      Eureka客户端从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每30秒钟)更新一次。每次返回注册列表信息可能与Eureka客户端的缓存信息不同, Eureka客户端自动处理。如果由于某种原因导致注册列表信息不能及时匹配,Eureka客户端则会重新获取整个注册表信息。 Eureka服务器缓存注册列表信息,整个注册表以及每个应用程序的信息进行了压缩,压缩内容和没有压缩的内容完全相同。Eureka客户端和Eureka 服务器可以使用JSON / XML格式进行通讯。在默认的情况下Eureka客户端使用压缩JSON格式来获取注册列表的信息。

    • Cancel:服务下线 
      Eureka客户端在程序关闭时向Eureka服务器发送取消请求。 发送请求后,该客户端实例信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容: 
      DiscoveryManager.getInstance().shutdownComponent();

    • Eviction 服务剔除 
      在默认的情况下,当Eureka客户端连续90秒没有向Eureka服务器发送服务续约,即心跳,Eureka服务器会将该服务实例从服务注册列表删除,即服务剔除。

    大叔演示服务发现与注册的环境:

    • intellij idea开发工具
    • gradle4.6构建工具
    • java1.8运行时
    • springboot脚手架

    Eureka Server端的实现:

    依靠包

    dependencies {
        compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
        testCompile('org.springframework.boot:spring-boot-starter-test')
    }

    配置项

    复制代码
    server.port: 8761
    management.port: 8762
    
    eureka:
      instance:
        hostname: localhost
      client:
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    复制代码

    启动代码

    复制代码
    @EnableEurekaServer
    @EnableDiscoveryClient
    @SpringBootApplication
    public class EurekaServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    }
    复制代码

    访问:http://localhost:8761/

    Eureka Client端的加入:

    服务端启动后,它里面的应用是空的,这时我们添加一个客户端,注意,这里的客户端是指Eureka的,它可能对于其它服务来说,是个服务端,为其它接口提供数据的,这是有可能的。(我这个客户端同时引用了配置中心的概念,它也是配置中心的使用端,这个项目的配置文件通过配置中心来统一进行分布式管理)

    依赖包

    复制代码
    dependencies {
        compile('org.springframework.boot:spring-boot-starter-web',
                'org.springframework.cloud:spring-cloud-starter-config',
                'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
        testCompile('org.springframework.boot:spring-boot-starter-test')
    }
    复制代码

    配置项

    复制代码
    spring:
      application:
        name: email-client
      cloud:
        config:
          uri: http://localhost:8200
    server:
      port: 8300
    
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    复制代码

    启动代码

    复制代码
    @EnableEurekaClient
    @SpringBootApplication
    public class Application {
    
      public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
      }
    }
    复制代码

    我们启动它之后,去eureka server界面去查看, http://localhost:8761,你会发现,我们的服务出现在了服务列表里!

    自古英雄出炼狱,从来富贵入凡尘。
  • 相关阅读:
    《软件过程管理》阅读笔记3
    《软件过程管理》阅读笔记1
    《深度学习—智能时代的核心驱动力量》阅读笔记4
    《深度学习—智能时代的核心驱动力量》阅读笔记3
    《深度学习—智能时代的核心驱动力量》阅读笔记2
    《深度学习—智能时代的核心驱动力量》阅读笔记1
    软件杯赛题周总结(6)
    软件杯赛题周总结(5)
    esp32 arduino 蓝牙 使用uln2003 驱动四相五线步进电机备忘
    Oracle——在不安装oracle客户端的情况下,使用PLSQL
  • 原文地址:https://www.cnblogs.com/yunliu0603/p/10616286.html
Copyright © 2011-2022 走看看