创建注册中心(eureka server)
我们需要用的的组件上SpringCloud Netflix的Eureka ,eureka是一个服务注册和发现模块,类似于Zookeeper。
在Idea中创建一个空的项目,然后添加一个model
启动一个服务注册中心,需要一个注解@EnableEurekaServer,这个注解需要在SpringBoot工程的启动application类上加
在resources中添加一个application.yml文件,并在里面添加如下内容
server:
port: 8761 #服务端口号
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
通过eureka:client:registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server(注册中心)
eureka server 是有界面的,启动程序后通过http://localhost:8761/访问,可以看到如下界面:
所以这个时候我们需要去创建一个服务提供者(eureka client简单的测试我们就再去创建一个项目)
当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息,这个操作叫做心跳检测(健康检测,服务续约)。 如果心跳超时,则通常将该实例从注册server中删除。
与创建Eureka Server同样的方法创建一个module并引入Eureka Server即可
通过注解@EnableEurekaClient 表明自己是一个eureka client.
然后再application.yml配置文件中添加如下内容
server:
port: 8762
spring:
application:
name: provider-hello #服务的名字
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #链接注册中心的地址
需要指明spring.application.name,这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个name
添加一个Controller,用来提供服务
@Value可以将配置文件中的内容赋值进来,方便后面查看是哪个端口提供的服务
启动程序,打开http://localhost:8761 ,即eureka server 的网址:可以看到我们刚才写的提供者已经注册到注册中心了
再去访问http://localhost:8762/test?name=mr查看结果如下: