今天开始学习SpringCloud微服务,就先从SpringCloud其中一个组件开始学习:Eureka,Eureka是SpringCloud Netflix微服务套件中的一部分,给予Netfix Eureka做了二次封装,主要负责完成为服务交媾中的服务治理功能。
下面来看下Eureka在代码中实现服务中心和注册服务的提供者
我使用的是Idea2018,首先使用idea搭建一个SpringBoot的工程
我们先创建的使用Eureka的服务端,在pom.xml文件中导入Eureka的相关依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <version>1.3.5.RELEASE</version> </dependency>
接下我们开始编写application.propertise文件
server.port=1111 eureka.instance.hostname=localhost eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.serviceUrl.defaultZone=Http://localhost:1111/eureka
server.port:是指本次构建的项目启动后的访问端口 eureka.instance.hostname:是指访问实例的IP地址 eureka.client.register-with-eureka:表示是否将自己注册在EurekaServer上,默认为true。由于当前应用就是EurekaServer,所以置为false eureka.client.fetch-registry:表示是否从EurekaServer获取注册信息,默认为true。单节点不需要同步其他的EurekaServer节点的数据 eureka.client.serviceUrl.defaultZone:设置Eureka的服务地址
最后就是创建我们项目的启动类了
@EnableEurekaServer @SpringBootApplication public class EurekaService { public static void main(String[] args){ new SpringApplicationBuilder(EurekaService.class).web(true).run(args); } }
@EnableEurekaServer:注解是启动一个服务注册中心提供给其他应用进行对话
现在Eureka的服务端构建完成,启动main方法,访问地址localhost:1111,看到如下图所示,那么服务端就成功搭建:
有现在没有客户端注册服务,所有在Instances currently registered with Eureka是没有服务名称
下面我们就来创建Eureka客户端
同样我们首先创建一个SpringBoot项目,然后倒入Eureka客户端的依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>1.3.5.RELEASE</version> </dependency>
第二步编写application.properties
spring.application.name=hello-service eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka
spring.application.name:需要在服务端注册的服务名
eureka.client.serviceUrl.defaultZone:访问服务端的地址
第三步,创建启动注册类
@EnableDiscoveryClient:激活Eureka中的DiscoveryClient实现(自动化配置,创建DiscoveryClient接口针对Eureka客户daunt的EurekaDiscoveryClient实例),才能实现上述Controller中对服务信息的输出
启动main方法,开始向Eureka服务端注册,访问服务端地址localhost:1111,会发现hello-service服务,这个既是客户端注册的服务:
到此,关于Eureka的服务和注册已完成,本篇文章仅是我学习SpringCloud的学习记录,希望各路大神多多指点!