下面详细讲解一下SpringCloud环境搭建过程之Rest使用小结。
什么是Spring Cloud
Spring Cloud 是一个基于 Spring Boot 的开发平台,为分布式系统中的一些常见模式、协议、服务提供了一种简单的方法进行构建和管理。它提供了一整套的技术框架,包括服务发现注册、配置中心、客户端负载均衡、断路器、网关路由等等。
Spring Cloud 的主要目的是简化分布式系统的开发。它基于 Spring Boot,因此易于创建理解,而且配置更为简单。
Rest使用小结
下面我们来介绍一下使用 Spring Cloud 进行 Rest 使用的过程。
1. 创建工程
我们先创建一个 Spring Boot 工程,并引入相关依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2. 编写 Rest 接口
我们编写一个简单的接口,实现获取用户信息功能。
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
return userService.getUser(id);
}
}
3. 实现 Feign 客户端
我们使用 Feign 声明式 REST 客户端,调用上一步编写的接口。
@FeignClient("user-service")
public interface UserClient {
@GetMapping("/user/{id}")
User getUser(@PathVariable Long id);
}
4. 注册服务
我们使用 Eureka 进行服务的注册和发现。
eureka:
client:
service-url:
default-zone: http://localhost:8761/eureka/
instance:
instance-id: user-service:${random.int}
prefer-ip-address: true
5. 运行测试
启动服务,访问接口 http://localhost:8080/user/1,即可获取到用户信息。
示例1:使用 Feign 进行微服务调用
我们创建一个 Consumer 工程,使用 Feign 进行微服务调用。
@SpringBootApplication
@EnableFeignClients
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
@Autowired
private UserClient userClient;
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
return userClient.getUser(id);
}
}
示例2:使用 Ribbon 进行负载均衡
我们创建两个服务提供者,分别启动在 8081、8082 端口。
@RestController
public class UserController {
@Value("${server.port}")
private int port;
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
User user = new User();
user.setId(id);
user.setName("User" + id);
user.setPort(port);
return user;
}
}
然后我们创建一个 Consumer 工程,使用 Ribbon 进行负载均衡。
@SpringBootApplication
@EnableDiscoveryClient
@RibbonClient(name = "user-service", configuration = RibbonConfig.class)
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
@Autowired
private RestTemplate restTemplate;
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
String url = "http://user-service/user/" + id;
return restTemplate.getForObject(url, User.class);
}
}
@Configuration
public class RibbonConfig {
@Bean
public IRule ribbonRule() {
return new RandomRule(); // 使用随机策略进行负载均衡
}
}
总结
综上所述,使用 Spring Cloud 进行 Rest 使用需要依次进行以下步骤:
- 创建工程,引入相关依赖。
- 编写 Rest 接口。
- 实现 Feign 客户端。
- 注册服务。
- 运行测试。
同时,我们还可以使用 Feign 进行微服务调用,以及使用 Ribbon 进行负载均衡。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringCloud环境搭建过程之Rest使用小结 - Python技术站