是官方文档的总结
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来发现这些实例
- 服务发现:可以通过声明式Java配置来创建一个嵌入式Eureka服务器
- 断路器:可以通过简单的注解修饰方法来创建一个断路器客户端
- 断路器:使用声明式Java配置可以嵌入一个Hystrix仪表盘
- 客户端负载均衡器:Ribbon
- 外部配置:从Spring环境到Archaius的桥梁(允许使用SpringBoot约定对Netflix组件进行本地配置)
- 路由器和过滤器:Zuul过滤器的自动重新配置,和用于反向创建代理的配置方法的简单约定。
一、服务发现:Eureka客户端
服务发现是基于微服务的体系结构的核心原则之一。尝试手工配置每个客户端或某种形式的约定可能很困难,而且很脆弱。Eureka是Netflix服务发现服务器和客户端。可以将服务器配置和部署为高度可用,每个服务器都将注册服务的状态复制给其他服务器。
1.1、包含依赖
group ID:org.springframework.cloud
artifact ID:spring-cloud-starter-netflix-eureka-client
具体版本可以查看http://spring.io/projects/spring-cloud,查看对应Spring Cloud版本匹配的Eureka客户端版本
1.2、注册到Eureka中
当客户端向Eureka注册时,它会提供关于自己的元数据,例如主机、端口、健康指示符URL、主页和其他详细信息。Eureka从属于服务的每个实例接收心跳消息。如果心跳在可配置的时间表上失败,则通常从注册表中删除该实例。
@SpringBootApplication @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应用,只要classpath中包含了spring-cloud-starter-netflix-eureka-client,应用就会自动注册到Eureka服务器
要求通过配置来指向Eureka服务器
eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
defaultZone:当客户端没有明确指向一个Eureka服务器时,会采用这个默认URL。
默认应用程序名称(即服务ID)、虚拟主机和非安全端口(从环境获取)分别为${Spring.application.name}、${Spring.application.name}和${server.port}。
当classpath中包含了spring-cloud-starter-netflix-eureka-client时,使这个应用既是一个Eureka实例(把自己注册到Eureka服务器中),也是一个Eureka客户端(他可以查询Eureka服务器定位其它服务)。
实例行为可以通过eureka.instance.*的属性来配置,
原文地址:https://www.cnblogs.com/LiveYourLife/p/10312674.html