springBoot简化了一个工程开发的配置过程,但对于集群化服务,spring有一套叫做springCloud的解决方案,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
本文主要讲一下springCloud的发现与注册的配置方案
首先创建一个eureka注册服务
创建一个maven项目
pom文件中添加以下配置:
eureka-server Spring Cloud project org.springframework.boot spring-boot-starter-parent 1.3.5.RELEASE UTF-8 1.8 org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-starter-eureka-server org.springframework.cloud spring-cloud-dependencies Brixton.RELEASE pom import org.springframework.boot spring-boot-maven-plugin
结果如下:
在resources中添加application.properties文件配置如下
server.port=1111 #eureka.instance.hostname=localhost eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
项目结构如下
如果是application.yml文件,则配置如下
server: port: 1111 eureka: client: # 表示是否注册自身到eureka服务器 register-with-eureka: false # 是否从eureka上获取注册信息 fetch-registry: false service-url: defaultZone: http://localhost:${server.port}/eureka/
项目结构如下:
添加项目启动类 Application 内容如下
@EnableEurekaServer @SpringBootApplication public class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class).web(true).run(args); } }
项目结构如图所示
运行main方法,以启动注册服务
访问服务:http://localhost:1111/
将springBoot服务注册进入Eureka
首先将pom文件中添加配置
org.springframework.cloud spring-cloud-starter-eureka
org.springframework.cloud spring-cloud-dependencies Brixton.RELEASE pom import org.springframework.boot spring-boot-maven-plugin
重新编译maven项目:
在application配置文件中配置服务名,以及Eureka服务地址(如图所示):
代码如下:
spring: application: name: test-Demo
eureka: client: service-url: defaultZone: http://localhost:1111/eureka/
如果是application.properties文件,则添加以下配置
spring.application.name=compute-service eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
随后,在启动类Application中,加入注释:
@EnableDiscoveryClient
如图:
OK,启动服务,刷新或访问http://localhost:1111/ 可以看到:
刚才启动的服务 端口已经注册到Eureka服务中了。
如果几个springBoot同时注册到一个Eureka服务上,就组成了一个springCloud集群,下一篇将讲一下springCloud集群服务间的调用