虽然说是服务的提供者,但其实也可能是消费者,因为在微服务的项目中,各个微服务都是可以互相访问对外公开的api的。
打开idea,同样的,在eureka目录下再建一个module:erueka-client(名称随意)
然后是添加pom依赖:
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>## 因为是web工程,所以还需引入SpringBootWeb的依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
编写application.yml文件:
spring:application:name: eureka-client # 告诉注册中心,我的名字server:port: 30000 # 告诉注册中心,我的端口号eureka:client:service-url:defaultZone: http://localhost:20000/eureka #注册中心的地址instance:lease-renewal-interval-in-seconds: 5 # 每隔5秒钟向服务中心发起续约请求lease-expiration-duration-in-seconds: 30 # 如果30秒内依然没有服务续约请求,判定服务过期(服务剔除)
编写启动类:
@SpringBootApplication@EnableDiscoveryClient //到注册中心拉取服务注册列表public class EurekaClientApplication {public static void main(String[] args) {new SpringApplicationBuilder(EurekaClientApplication.class).web(WebApplicationType.SERVLET).run(args);}}
既然是服务的提供者,那么就需要提供一些对外暴露的接口,就写一个Controller吧,里面有一个sayhi的方法
@RestController@Slf4jpublic class Controller {@Value("${server.port}")private Integer port;@GetMapping("/say-hi")public String sayHi() {return "This is" + port;}}
接口很简单,就返回一个字符串,返回这个服务的端口号
然后就启动项目,访问:localhost:30000/say-hi,看看浏览器上是否打印出了: This is 30000
