该项目经过自动配置为Spring Boot应用程序提供Netflix OSS集成,并绑定到Spring环境和其余Spring编程模型成语。经过几个简单的注释,您能够快速启用和配置应用程序中的常见模式,并经过通过测试的Netflix组件构建大型分布式系统。提供的模式包括服务发现(Eureka),断路器(Hystrix),智能路由(Zuul)和客户端负载平衡(Ribbon)。 服务发现:Eureka客户端html
服务发现是基于微服务架构的关键原则之一。尝试配置每一个客户端或某种形式的约定可能很是困难,能够很是脆弱。Netflix服务发现服务器和客户端是Eureka。能够将服务器配置和部署为高可用性,每一个服务器将注册服务的状态复制到其余服务器。web
如何包含Eureka客户端 要在您的项目中包含Eureka客户端,请使用组org.springframework.cloud和工件ID spring-cloud-starter-eureka的启动器。有关 使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面。spring
注册Eureka 当客户端注册Eureka时,它提供关于自身的元数据,例如主机和端口,健康指示符URL,主页等。Eureka从属于服务的每一个实例接收心跳消息。若是心跳失败超过可配置的时间表,则一般将该实例从注册表中删除。编程
示例eureka客户端:安全
@Configuration @ComponentScan @EnableAutoConfiguration @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(即它是有用的默认值)。app
从Environment获取的默认应用程序名称(服务ID),虚拟主机和非安全端口分别为{spring.application.name}和${server.port}。分布式
@EnableEurekaClient将应用程序同时进入一个Eureka“实例”(即注册本身)和一个“客户端”(即它能够查询注册表以查找其余服务)。实例行为由eureka.instance.*配置键驱动,可是若是您确保您的应用程序具备spring.application.name(这是Eureka服务ID或VIP的默认值),那么默认值将是正常的。微服务
有关可配置选项的更多详细信息,请参阅EurekaInstanceConfigBean和EurekaClientConfigBean。
使用Eureka服务器进行身份验证 若是其中一个eureka.client.serviceUrl.defaultZone网址中包含一个凭据(如http://user:password@localhost:8761/eureka)),HTTP基自己份验证将自动添加到您的eureka客户端。对于更复杂的需求,您能够建立DiscoveryClientOptionalArgs类型的@Bean,并将ClientFilter实例注入到其中,全部这些都将应用于从客户端到服务器的调用。
注意 因为Eureka中的限制,不可能支持每一个服务器的基自己份验证凭据,因此只能使用第一个找到的集合。
源码来源:http://minglisoft.cn/honghu/technology.html