Spring Cloud 上手2-服务注册
文章目录
这是Spring Cloud上手系列的第二篇,代码放在GitHub上,随着本系列文章更新。
服务治理框架
Spring Cloud为服务治理提供了抽象接口,在Spring Cloud应用中可以支持多种不同的服务治理框架,如:Eureka、Consul、Zookeeper。
Spring Cloud Eureka是Spring Cloud Netflix项目提供的服务治理模块。Spring Cloud Netflix是Spring Cloud的子项目,Netflix公司贡献的模块都包含在这个子项目中,如:服务发现(Eureka),熔断器(Hstrix),集合服务(Zuul),负载均衡(Ribbon)。
在我们的系列文章里就直接使用Netflix全家桶了。
构建Eureka服务注册中心
根据前一篇文章的规划,我们将在registry
工程中构建服务注册中心。
依赖配置
首先在registry/build.gradle中配置注册中心的依赖。
|
|
这里的libs.'eureka-server'
来自于根模块对依赖名称的定义,主要是为了集中对依赖名称和版本进行管理。根模块的build.gradle
中配置的版本信息为:
|
|
程序入口
服务注册中心Spring Boot程序的启动入口类 Application为:
|
|
只使用了@EnableEurekaServer
声明应用需要启用Eureka注册服务。
服务配置
服务的配置文件放在application.yml中:
|
|
spring
和server
段是Spring Boot程序的配置部分,用于配置应用名称和服务端口。注册中心的配置都在eureka
段,registerWithEureka
需要设置为false
,标明应用不要把自己注册到Eureka
中,fetchRegistry
标明不需要从注册中心获取服务信息。serviceUrl.defaultZone
用于配置服务中心的访问地址。其它应用在配置服务注册中心地址时,需要与这个地址保持一致,url中的变量就是上面的属性。
在idea中配置这个文件的时候发现有个小问题,idea中的自动提示总是显示为中杠分隔的属性名,如:service-url
、default-zone
等,这个问题导致我在测试的时候,客户端程序总是无法连接到注册中心。
构建并启动服务
在根模块中使用gradle :registry:build
构建服务注册中心应用。
完成后使用java -jar registry/build/libs/sc-registry-0.0.1.jar
启动服务注册中心。
就能在http://localhost:9001
查看到服务注册信息了,当然现在还没有服务注册。
文章作者 Jamsa
上次更新 2018-05-30