Spring Cloud Netflix

该项目通过自动配置为Spring Boot应用程序提供Netflix OSS集成,并绑定到Spring环境和其他Spring编程模型成语。通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并通过经过测试的Netflix组件构建大型分布式系统。提供的模式包括服务发现(Eureka),断路器(Hystrix),智能路由(Zuul)和客户端负载平衡(Ribbon)。

服务发现:Eureka客户端

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

如何包含Eureka客户端

要在您的项目中包含Eureka客户端,请使用组org.springframework.cloud和工件ID spring-cloud-starter-eureka的启动器。有关使用当前的Spring Cloud发布列表设置构建系统的详细信息。

注册Eureka

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

示例eureka客户端:

@Configurationbr/>@ComponentScan
@EnableAutoConfigurationbr/>@EnableEurekaClient
@RestController
public class Application {

@RequestMapping("/")
public String home() {
    return "Hello world";
}

public static void main(String[] args) {
    new SpringApplicationBuilder(Application.class).web(true).run(args);
}

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

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

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

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

原文地址:http://blog.51cto.com/13777880/2123148

时间: 2024-11-07 23:13:43

Spring Cloud Netflix的相关文章

Spring Cloud Netflix概览和架构设计

Spring Cloud简介 Spring Cloud是基于Spring Boot的一整套实现微服务的框架.他提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等组件.最重要的是,跟spring boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便. Spring Cloud包含了非常多的子框架,其中,Spring Cloud Netflix是其中一套框架,由Netflix开发后来又并入Spring Cloud大

Spring Cloud netflix 概览和架构设计

pring Cloud是基于Spring Boot的一整套实现微服务的框架.他提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等组件.最重要的是,跟spring boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便.Spring Cloud包含了非常多的子框架,其中,Spring Cloud netflix是其中一套框架,由Netflix开发后来又并入Spring Cloud大家庭,它主要提供的模块包括:服务发

Spring Cloud 入门教程(十):和RabbitMQ的整合 -- 消息总线Spring Cloud Netflix Bus

在本教程第三讲Spring Cloud 入门教程(三): 配置自动刷新中,通过POST方式向客户端发送/refresh请求, 可以让客户端获取到配置的最新变化.但试想一下, 在分布式系统中,如果存在很多个客户端都需要刷新改配置,通过这种方式去刷新也是一种非常痛苦的事情.那有没有什么办法让系统自动完成呢? 之前我们提到用githook或者jenkins等外部工具来触发.现在说另外一种思路, 如果refresh命令可以发送给config server,然后config server自动通知所有con

Spring Cloud Netflix子模块综合整理-Zuul

路由器和过滤器:Zuul 路由是微服务架构的组成部分. 例如,/ 可以映射到您的Web应用程序,/api /users映射到用户服务,/api/ shop映射到购物服务. Zuul是Netflix基于JVM的路由器和服务器端负载均衡器. Netflix使用Zuul进行以下操作: ? 配置属性zuul.max.host.connections已被两个新属性替换,zuul.host.maxTotalConnections和zuul.host.maxPerRouteConnections,分别默认为2

Spring Cloud Netflix子模块综合整理-Ribbon

客户端负载均衡器:Rbbion Ribbon是一个客户端负载均衡器,可以让您对HTTP和TCP客户端的行为进行大量控制. Feign已使用Ribbon,因此如果您使用的是@FeignClient,则此部分也适用. Ribbon中的一个核心概念是指定客户端的概念.每个负载均衡器都是组件集成的一部分,这些组件协同工作以按需联系远程服务器,并且集成有共开发人员引用的名称(例如,使用@FeignClient注解).Spring Cloud使用RibbonClientConfiguration按需为每个命

【系统架构理论】一篇文章精通:Spring Cloud Netflix

是官方文档的总结 http://spring.io/projects/spring-cloud-netflix#overview 讲解基于2.0.2版本官方文档 https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.0.2.RELEASE/single/spring-cloud-netflix.html Netflix提供了以下功能: 服务发现:可以注册Eureka实例,客户端可以使用Spring的beans来发现这

springcloud学习04- 断路器Spring Cloud Netflix Hystrix

依赖上个博客:https://www.cnblogs.com/wang-liang-blogs/p/12072423.html 1.断路器存在的原因 引用博客 https://blog.csdn.net/zhou199252/article/details/80745151 的说明 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用.为了保证其高可用,单个服务通常会集群部署.

《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka的常用配置

一.版本的说明 Angel版本对应Spring Boot 1.2.x,可以使用Spring Boot 1.3.x: Brixton版本对应Spring Boot 1.3.x,可以使用Spring Boot 1.4.x: Camden版本对应Spring Boot 1.4.x,可以使用Spring Boot 1.5.x: Dalston版本对应Spring Boot 1.5.x 二.应用进行热部署 添加依赖: 重启即可! 注意:如果是增加了jar包,还是需要关闭重启. 三.Eureka常用配置 a

《Spring Cloud Netflix》-- 服务注册和服务发现-Eureka的服务认证和集群

一. Eureka的服务认证 1. 服务端添加依赖 <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-security</artifactId> </dependency> 2. 服务端添加配置 # 服务认证 security.basic.enabled=true security.use