微服务-服务拆分

文章目录

服务拆分及注意事项

每个服务有独立的数据库,订单模块需要查询用户信息时,通过调用用户模块的接口,自身的数据库并没有用户信息。

服务拆分案例

案例结构

案例有2个微服务,order-service微服务对应的表为cloud-order,user-service微服务对应的表为cloud-user。在实际生产部署时,这两个表会被放在不同的数据库中,没有办法做关联查询。

需求:根据订单id查询订单的同时,把订单所属的用户信息一起返回

案例代码分析

  1. 配置类
java 复制代码
/**
 * @SpringBootConfiguration继承自@Configuration,
 * 二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中
 */
@SpringBootConfiguration
public class WebConfiguration {

    @Bean //相当于@Controller,@Service等
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}
  1. OrderService类
java 复制代码
@Service
public class OrderService {

    @Autowired
    private OrderMapper orderMapper;

    // 获取restTemplate对象
    @Autowired
    private RestTemplate restTemplate;

    public Order queryOrderById(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.findById(orderId);
        // 2.定义url
        String url = "http://localhost:8081/user/"+order.getUserId();
        // 3.发送http请求
        User user = restTemplate.getForObject(url, User.class);
        // 4.封装user
        order.setUser(user);
        // 5.返回
        return order;
    }
}
  1. 测试
相关推荐
plainGeekDev3 分钟前
SQLite 手动升级 → Room Migration
android·java·kotlin
带刺的坐椅6 分钟前
SolonCode(编码智能体)支持鸿蒙 PC
java·web·ai编程·harmonyos·soloncode·鸿蒙 pc
程序员二叉6 分钟前
【JVM】类加载全过程&双亲委派机制深度解析
java·jvm·面试
开发者联盟league8 分钟前
使用jenkins pipeline将项目打包运行在k8s上报错kubectl: Permission denied
java·kubernetes·jenkins
ch.ju12 分钟前
Java程序设计(第3版)第四章——继承的特点
java·开发语言
Chase_______24 分钟前
【Java杂项】Arrays.asList、List.of 和 new ArrayList:集合可变性避坑
java·windows·list
发际线向北24 分钟前
0x07 深入了解JVM虚拟机(JVM异常处理)
java
Seven9724 分钟前
每个线程只管自己的变量,性能却不如单线程?问题出在缓存行
java
2601_9618451527 分钟前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
用户5313973181733 分钟前
「踩坑实录」原来的SQL索引自动优化失败了,线上数据库差点被打挂
java·后端