服务治理
在上一节中简单介绍了Spring Cloud和微服务架构,本章介绍如何使用Spring Cloud来实现服务治理。
由于Spring Cloud为服务治理做了一层抽象接口,所以在Spring Cloud应用中可以支持多种不同的服务治理框架,比如:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的作用下,我们可以无缝地切换服务治理实现,并且不影响任何其他的服务注册、服务发现、服务调用等逻辑。本章介绍Netflix Eureka注册与发现的实现机制及方法。
Spring Cloud Eureka
Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务注册发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。下面,就来具体看看如何使用Spring Cloud Eureka实现服务治理。
创建Eureka服务注册中心
利用IDE创建基于SpringBoot的Maven项目,命名为eureka-server,在pom文件中加入如下引用
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
其次,在主方法中加入@**EnableEurekaServer**
注解就能开启服务发现
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
最后,在配置文件application.properties中配置端口号、服务应用名等信息。在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,只需要在配置文件中增加如下信息:
spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
这样一个简单服务注册中心就开发好了,启动项目,访问http://localhost:1111
至此,基于SpringCloud的服务注册中心就搭建好了
demo地址:https://gitee.com/gengkangkang/springcloud.git