2月8日java假期学习读书笔记
一、学习目标
了解Spring Cloud OpenFeign的基本概念和使用方法。
掌握如何使用OpenFeign实现声明式服务调用。
了解Spring Cloud Stream的基本概念和消息驱动架构。
学习如何在Spring Cloud微服务架构中使用Spring Cloud Stream实现消息通信。
通过实际练习,构建一个使用OpenFeign和Spring Cloud Stream的微服务架构。
二、学习内容
(一)Spring Cloud OpenFeign
-
OpenFeign简介
OpenFeign是一个基于Java注解的声明式服务调用框架,简化了微服务之间的通信。
它通过注解定义接口,自动生成代理实现,支持负载均衡和熔断。 -
使用OpenFeign
添加依赖:
xml
复制
org.springframework.cloud
spring-cloud-starter-openfeign
启用Feign客户端:
java
复制
@SpringBootApplication
@EnableFeignClients
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
定义Feign客户端:
java
复制
@FeignClient(name = "user-service")
public interface UserClient {
@GetMapping("/user/{id}")
User getUserById(@PathVariable Long id);
}
使用Feign客户端:
java
复制
@Service
public class UserService {
@Autowired
private UserClient userClient;public User getUser(Long id) {
return userClient.getUserById(id);
}
}
(二)Spring Cloud Stream -
Spring Cloud Stream简介
Spring Cloud Stream是一个用于构建消息驱动微服务的框架,支持多种消息中间件(如RabbitMQ、Kafka)。
它通过注解和接口简化了消息的发送和接收。 -
使用Spring Cloud Stream
添加依赖:
xml
复制
org.springframework.cloud
spring-cloud-starter-stream-rabbit
配置消息通道:
properties
复制
spring.cloud.stream.bindings.input.destination=myQueue
spring.cloud.stream.bindings.input.group=myGroup
spring.cloud.stream.bindings.output.destination=myQueue
发送消息:
java
复制
@Service
public class MessageSender {
@Autowired
private Source source;public void sendMessage(String message) {
source.output().send(MessageBuilder.withPayload(message).build());
}
}
public interface Source {
@Output("output")
MessageChannel output();
}
接收消息:
java
复制
@Service
public class MessageReceiver {
@StreamListener("input")
public void receiveMessage(String message) {
System.out.println("Received message: " + message);
}
}
(三)实际练习:构建一个使用OpenFeign和Spring Cloud Stream的微服务架构
- 创建微服务项目
使用Spring Initializr生成多个微服务项目,如user-service、order-service等。 - 集成OpenFeign
在order-service中添加OpenFeign依赖,定义Feign客户端调用user-service。 - 集成Spring Cloud Stream
在order-service中添加Spring Cloud Stream依赖,配置消息通道,发送和接收消息。 - 运行和测试
启动所有微服务,测试OpenFeign调用是否成功。
发送消息到消息队列,验证Spring Cloud Stream是否正常工作。
三、学习心得
OpenFeign的优势
OpenFeign通过声明式接口简化了微服务之间的调用,减少了模板代码。
它支持负载均衡和熔断,提高了系统的容错性。
Spring Cloud Stream的作用
Spring Cloud Stream简化了消息驱动架构的开发,支持多种消息中间件。
它通过注解和接口简化了消息的发送和接收,提高了开发效率。
实践的重要性
通过实际构建和测试微服务架构,我更好地理解了OpenFeign和Spring Cloud Stream的使用方法。
实践可以帮助快速发现和解决问题,加深对知识点的理解。
浙公网安备 33010602011771号