【微服务】熟悉微服务

[复制链接]
发表于 2025-12-19 03:26:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、服务架构的演变

1、单体架构:将业务的全部功能会合在一个项目中开发,打成一个包摆设,架构简单,摆设本钱低,但耦合度高。
2、分布式架构:根据业务功能对体系举行拆分,每个业务模块作为独立项目开发,称为一个服务,低沉了服务的耦合度,有利于服务升级拓展,但是服务拆分和治分析出现题目。
3、微服务:一种颠末精良筹划的分布式架构方案,具有单一职责、面向服务、自治(独立)、隔离性强。
二、微服务技能对比


企业需求:

三、SpringCloud

springCloud是现在国内使用最广泛的微服务框架,集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了精良的开箱即用体验。

四、服务拆分及长途调用

(一)注意事项:
1、差异微服务,不要重复开发雷同业务
2、微服务数据独立不要访问其他微服务的数据库
3、微服务可以将自己的业务袒露为接口,供其他微服务使用
五、服务之间发起哀求

在初始情况下,查询order和user只能分开查询,在order中可以看到userId


通过order基于userId发起http哀求,查询到订单中的用户:
(一)注册RestTemplate(bean)(bean的注入只能放到设置类内里,而带有@SpringBootApplication的启动类也是设置类)
  1.      /**
  2.      * 创建RestTemplate并注入Spring容器
  3.      * @return
  4.      */
  5.         @Bean
  6.         public RestTemplate restTemplate(){
  7.             return new RestTemplate();
  8.         }
复制代码

(二)修改orderService
  1. @Service
  2. public class OrderService {
  3.     @Autowired
  4.     private OrderMapper orderMapper;
  5.     @Autowired
  6.     private RestTemplate restTemplate;
  7.     public Order queryOrderById(Long orderId) {
  8.         // 1.查询订单
  9.         Order order = orderMapper.findById(orderId);
  10.         //2、利用RestTemplate发送http请求,查询用户
  11.         //2.1 url路径
  12.         String url = "http://localhost:8081/user/" + order.getUserId();
  13.         //2.2 发起http请求,实现远程调用(原本返回的是json,告诉它我们要User对象类型)
  14.         User user = restTemplate.getForObject(url, User.class);
  15.         //3 封装user到order
  16.         order.setUser(user);
  17.         // 4.返回
  18.         return order;
  19.     }
  20. }
复制代码
此时我们的order中已经可以哀求到用户信息了


六、提供者与斲丧者

1、服务提供者:一次业务中,被其他服务调用的服务(提供接口给其他服务)
2、服务斲丧者:一次业务中,调用其他微服务的服务(调用其他微服务提供的接口)
问:A调用B,B调用C,B是什么?一个服务既可以是提供者又可以是斲丧者。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表