到这一篇的时候,注册中心,网关,负载均衡都有了,剩下的就是资源提供方的消费服务了。通过调用该服务的一些RequestMapping端口直接获取到相应的资源。
建立消费服务跟其他的微服务一样,建一个空的maven项目,取名user-service1,随后同样分三步搞定。
1、依赖包pom.xml文件配置
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
2、application.yml文件配置
在resources文件夹下新建application.yml配置文件,填充内容如下:
spring:
application:
name: user-center
eureka:
client:
service-url:
defaultZone: http://localhost:8000/eureka/
server:
port: 8010
3、后端代码
在java文件夹下新建package,名com.springcloud.use,在该包下新建类UseCenterBootstrap作为启动类,填充内容如下:
@EnableEurekaClient
@EnableDiscoveryClient
@SpringBootApplication
public class UseCenterBootstrap{
public static void main(String[] args) {
SpringApplication.run(UseCenterBootstrap.class, args);
}
}
在com.springcloud.use包下新建rest包存放资源的调用接口,在rest包下新建类ClientRest,并填充内容如下:
@RestController
public class ClientRest {
@RequestMapping("/test")
public String test() throws InterruptedException {
// Thread.sleep(7000);
return "test1 ";
}
}
至此,整个流程就通了,启动各个服务,在浏览器中输入http://localhost:8001/api/b/test,就会在浏览器中看到返回的test1,那么说明所有的服务都成功运行了。但是要体现负载均衡的服务需要在建一个注册名相同的消费服务。
新建一个空的maven项目,名user-service2,其所有的代码均可以与user-service1一样,仅需要改变自己的服务端口为8011,因为端口是唯一的,服务名同样也得为user-center,其二就是启动类的类名需要不一样,可以改为UseCenter1Bootstrap。更改上述两个地方,一个新的消费服务就完成了。为显示区别,我们将返回的内容改为test2,即
@RestController
public class ClientRest {
@RequestMapping("/test")
public String test() throws InterruptedException {
// Thread.sleep(7000);
return "test2 ";
}
}
在浏览器中输入,http://localhost:8001/api/b/test,不断其刷新就会看到返回的内容在test1与test2之间切换,说明整个微服务系统运行成功。
需要参看源码的请移步springcloud学习之路总览下载,参照源码会使整个思路更加清晰。