springcloud基于eureka的服务注册与发现
这段时间开始整理之前的springcloud实践笔记,这里感谢翟永超大佬的文章springcloud从入门到精通的指导
项目结构
注意: 1、springcloud与springboot有比较严格的版本对应关系,使用之前请确定好对应相关版本 2、如果没有特殊需要,建议各子模块使用各自独立的依赖,而不同一使用父模块的pom依赖。不然可能出现冲突问题
首先先创建一个springboot工程,再创建一个名为eureka-server的子模块工程,并在pom.xml中引入eureka服务注册中心所需依赖,如下:
通过@enableeurekaserver注解就能启动一个服务注册中心
application.properties配置示例如下:
默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要通过<code>eureka.client.register-with-eureka=false</code>禁用它的客户端注册行为
启动工程后,访问:http://localhost:6601/ ,可看到页面如下图所示:
注册中心就开始运行了,可以看到目前还没有微服务实例注册
下面我们创建提供服务的客户端,并向服务注册中心注册自己。本文我们主要介绍服务的注册与发现,所以我们不妨在服务提供方中尝试着提供一个接口来获取当前所有的服务信息。
首先,创建一个命名为eureka-clientspring boot应用,结构如下:
pom.xml如下配置:
其次,实现/dc请求处理接口,通过discoveryclient对象,在日志中打印出服务实例的相关内容。
应用主类中通过加上@enablediscoveryclient注解,该注解能激活eureka中的discoveryclient实现,这样才能实现controller中对服务信息的输出。
我们在完成了服务内容的实现之后,再继续对application.properties做一些配置工作,具体如下:
spring.application.name:可以指定微服务的名称
eureka.client.serviceurl.defaultzone:对应服务注册中心的配置内容,指定服务注册中心的位置
server.port:设置不同的端口。
启动该工程后,再次访问:http://localhost:6601/。 可以看到我们定义的服务被成功注册了。
当然,我们也可以通过直接访问eureka-client服务提供的/dc接口来获取当前的服务清单,只需要访问:http://localhost:6602/dc, 我们可以得到如下输出返回: