整合春云云服务架构,尤里卡基础

  

在构建项目之前,我们先学习一下尤里卡,这是官方的讲解,我这边再重新帮大家回顾一下:

  

服务发现:尤里卡客户端
服务发现是基于微服务架构的关键原则之一。尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱.Netflix服务发现服务器和客户端是尤里卡。可以将服务器配置和部署为高可用性,每个服务器将注册服务的状态复制到其他服务器。

  

如何包含尤里卡客户端
要在您的项目中包含尤里卡客户端,请使用组org.springframework。云计算和工件ID spring-cloud-starter-eureka的启动器。

  

注册尤里卡
当客户端注册尤里卡时,它提供关于自身的元数据,例如主机和端口,健康指示符URL,主页等.Eureka从属于服务的每个实例接收心跳消息。如果心跳失败超过可配置的时间表,则通常将该实例从注册表中删除。

  

示例尤里卡客户端:

  
 <代码> @ configuration
  @ComponentScan
  @EnableAutoConfiguration
  @EnableEurekaClient
  @RestController
  公共类应用程序{
  
  @RequestMapping(“/?
  公共字符串回家(){
  返回“Hello world”;
  }
  
  公共静态void main (String [] args) {
  了对新SpringApplicationBuilder (Application.class) web这类(真正的).run (args);
  }
  
  } 
  

(即完全正常的弹簧引导应用程序)。在这个例子中,我们明确地使用@EnableEurekaClient,但只有尤里卡可用,你也可以使用@EnableDiscoveryClient。需要配置才能找到尤里卡服务器。例:

  

application.yml   

 <代码>尤里卡:
  客户:
  serviceUrl:
  defaultZone: http://localhost: 8761/尤里卡/ 
  

其中“defaultZone”是一个魔术字符串后备值,为任何不表示首选项的客户端提供服务URL(即它是有用的默认值)。

  

从环境获取的默认应用程序名称(服务ID),虚拟主机和非安全端口分别为$ {spring.application.name}, {spring.application.name}和{server.port}美元。

  

@EnableEurekaClient将应用程序同时进入一个尤里卡”实例”(即注册自己)和一个“客户端”(即它可以查询注册表以查找其他服务)。实例行为由eureka.instance。*配置键驱动,但是如果您确保您的应用程序具有spring.application.name(这是尤里卡服务ID或贵宾的默认值),那么默认值将是正常的。

  

使用尤里卡服务器进行身份验证
如果其中一个eureka.client.serviceUrl.defaultZone网址中包含一个凭据(如http://user: password@localhost: 8761/尤里卡))、HTTP基本身份验证将自动添加到您的尤里卡客户端。对于更复杂的需求,您可以创建DiscoveryClientOptionalArgs类型的@ bean,并将ClientFilter实例注入到其中,所有这些都将应用于从客户端到服务器的调用。

  

注意
由于尤里卡中的限制,不可能支持每个服务器的基本身份验证凭据,所以只能使用第一个找到的集合。
状态页和健康指标
尤里卡实例的状态页面和运行状况指示器分别默认为“/信息”和“/健康”,它们是弹簧引导执行器应用程序中有用端点的默认位置。如果您使用非默认上下文路径或servlet路径(例如server.servletPath=/foo)或管理端点路径(例如management.contextPath=/admin),则需要更改这些,即使是执行器应用程序。例:

  
 <代码> application.yml
  尤里卡:
  实例:
  statusPageUrlPath: $ {management.context-path}/信息
  healthCheckUrlPath: $ {management.context-path}/健康/<代码> 之前
  

这些链接显示在客户端使用的元数据中,并在某些情况下用于决定是否将请求发送到应用程序,因此如果它们是准确的,这是有帮助的。

  

注册安全应用程序
如果您的应用程序想通过HTTPS联系,则可以分别在EurekaInstanceConfig,即eureka.instance。[nonSecurePortEnabled, securePortEnabled]=[假,真]中设置两个标志。这将使尤里卡发布实例信息显示安全通信的明确偏好.Spring云DiscoveryClient将始终为以这种方式配置的服务返回一个https://?URI,并且尤里卡(本机)实例信息将具有安全的健康检查URL。

  

由于尤里卡内部的工作方式,它仍然会发布状态和主页的非安全网址,除非您也明确地覆盖。您可以使用占位符来配置尤里卡实例URL,例如

  
 <代码> application.yml
  尤里卡:
  实例:
  statusPageUrl: https://$ {eureka.hostname}/信息
  healthCheckUrl: https://$ {eureka.hostname}/健康
  homePageUrl: https://$ {eureka.hostname}/<代码> 
  

(请注意,$ {eureka.hostname}是仅在稍后版本的尤里卡中可用的本地占位符,您也可以使用弹簧占位符实现同样的功能,例如使用$ {eureka.instance.hostName}。

整合春云云服务架构,尤里卡基础