一.首先单独新建一个boot项目当做eureka的注册中心
1.在建立项目的时候:勾选上eureka server依赖如图所示
2.在propertities资源文件中加入注册中心的配置:
server.port=8761
eureka.instance.hostname=localhost
#是否把自己注册到eureka服务器
eureka.client.register-with-eureka=false
#表示是否从eureka服务器获取注册信息
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
3.在启动类上加上注解
@EnableEurekaServer
4.启动之后访问localhost:8761 就可以看见注册中心的页面
二.然后我们想要远程调用最起码得有一个服务提供者一个服务调用者,我们先建立服务提供者
在建立项目勾选依赖的时候如果这个项目也想要独自向外提供访问服务就勾选上web mysql mybatis 如图所示:
1.在propertities资源文件中加入暴露自己服务的配置:
eureka.client.serviceUrl.defaultZone:http://localhost:8761/eureka/
server.port:8762
//声明的服务名称
spring.application.name:service-hi
2.在启动类上加上注解:
@EnableDiscoveryClient
3.然后在controller里随便写一个方法用于远程调用
4.在注册中心和服务提供者项目全部启动之后,注册中心的客户端会看到服务者声明的服务如下图:
这样我们的服务提供者也搭建完成了。
三.最后建服务调用者
建立项目的依赖和服务提供者一样,当部署到这里,你就得明白一个小知识点,服务提供者和调用者他们其实是
互通的,之前dubbo有明确的提供者和调用者,但是在这里一个项目或者模块既可以当服务提供者又可以当服务调用者。
1.在propertities资源文件中加入配置:
eureka.client.serviceUrl.defaultZone:http://localhost:8761/eureka/
server.port:8764
//如果这个调用者也想暴露自己的服务,就加上这个,只是调用的话可以不加
spring.application.name:client
2.在启动类上加上注解:
//如果要调用远程服务就加这个注解
@EnableFeignClients
//如果要在注册中心注册自己的服务就加这个注解
@EnableDiscoveryClient
3.这里有个要求就是我们要调用远程的服务就必须写一个接口来调用,接口上注意标记的这两个注解
@Component
//远程调用服务的注解
@FeignClient("service-hi")
4.然后在controller层调用接口的这个服务,因为是用过访问这个项目去调用另一个项目的服务
5.然后这三个项目全启动,进行访问
整个项目搭建成功!