一般一个微服务系统,除了服务注册中心之外,还会有一些具体的服务,这些服务都会在注册中心注册。这些服务可以分为服务提供方和服务的消费方。服务的提供方和消费方并没有严格的界限,同一个服务既可以是提供方也可以是消费方。
下面就介绍一下如何在springcloud中创建一个服务,并将其作为提供方向外提供服务。
首先创建一个springboot web项目,在pom文件中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
编写springboot的启动类,并且需要加上@EnableDiscoveryClient
注解:
@EnableDiscoveryClient
@SpringBootApplication
public class ServiceProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceProviderApplication.class, args);
}
}
一个应用上面加了@EnableDiscoveryClient
注解后,注册中心就能发现该服务。
编写Controller类作为提供服务的接口:
@RestController
@RequestMapping(value = "/service-provider")
public class ServiceProviderController {
@RequestMapping("/provider-hello")
public String hello() {
return "hello service provider";
}
}
修改application.properties配置文件,添加如下配置:
spring.application.name=service-provider
server.port=9001
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
各个配置项含义如下:
spring.application.name :服务的名称,往注册中心注册时用的就是这个名称,调用者在调用服务时用的也是这个名称。
server.port :服务的端口号
eureka.client.serviceUrl.defaultZone :Eureka注册中中心的位置
最后启动该项目,在Eureka注册中心中就可以看到,该服务已经注册成功:
从图中可以看出,我们已经成功地在注册中心注册了一个服务,服务名为SERVICE-PROVIDER。
下面我们就可以来调用这个服务了。