【期末分布式】分布式的期末考试资料大题整理

发布于:2025-07-01 ⋅ 阅读:(20) ⋅ 点赞:(0)

🧸安清h:个人主页 

   🎥个人专栏:【Spring篇】【计算机网络】【Mybatis篇】


🎯大题

✨一.Nacos的服务注册与发现

🚦1.怎么来进行服务的注册与发现的这样的一个流程,描述一下。

🎃描述Nacos服务注册与发现的流程
① 服务提供者启动时向Nacos注册自身信息;
② 服务消费者启动时订阅所需服务;
③ Nacos通过心跳机制检查服务健康状态;
④ 消费者调用服务时从Nacos获取可用实例;
⑤ 消费者通过负载均衡选择实例发起调用

🚦2.Nacos配置客户端信息

 

✨二.声明式服务调用组件

 1.写一个OpenFeign的客户端。

高频考点预测

🚦1.客户端接口定义

请为服务 user-service 的 REST 端点 GET /user/{id} 编写 OpenFeign 客户端接口。

@FeignClient(value = "user-service") // 必写:指定服务名

public interface UserServiceClient {

    @GetMapping("/user/{id}")        // 必写:映射请求方法和路径

    String getUserById(@PathVariable("id") Integer id); // 参数注解不可省略}

 🚦2.请求方法映射

将以下方法转为 Feign 客户端接口(服务名:order-service):

// 原始 Controller 方法:
@PostMapping("/create")
public Order createOrder(@RequestBody Order order);

答案:

@FeignClient("order-service")
public interface OrderServiceClient {
    @PostMapping("/create")
    Order createOrder(@RequestBody Order order); // 注意:参数注解需保留

🚦题型:
1.补全代码题
// 补全Feign客户端调用 user-service 的 /users/{userId} 接口
@______(name = "_________")
public interface UserServiceClient {
    @______("/users/{userId}")
    User getUser(@______("userId") String id);
}

答案
@FeignClient"user-service"@GetMapping@PathVariable

2.改错题
// 找出以下代码的3处错误
@FeignClient("order-service")
public class OrderClient {
    @RequestMapping("/orders/{orderId}")
    Order getOrder(@PathVariable Long orderId);
}

 错误点
① 必须是interface不能是class
② @RequestMapping未指定method类型
③ @PathVariable缺少value属性(当参数名≠路径变量时)

3.场景应用题

为支付服务编写Feign客户端,要求:

  • 服务名:payment-service

  • 端点:POST /payments 接收JSON格式Payment对象

  • 端点:GET /payments/{id} 返回Payment对象

@FeignClient("payment-service")
public interface PaymentClient {
    @PostMapping("/payments")
    Payment createPayment(@RequestBody Payment payment);
    
    @GetMapping("/payments/{id}")
    Payment getPayment(@PathVariable("id") String paymentId);
}

✨三.服务容错组件Sentinel

🚦1.sentinel如何定义

SphU:

SphO:

🚦2.写一个流控规则

✨四.API网关Gateway 

🚦1.写一个断言的相应配置

比如说,让你请求那个路径,转发给谁。

🚦2.自定义的路由断言

✨五.Nacos配置中心

🚦1.如果给定了DataID,group和文件格式,在配置文件中该如何与之对应?

🚦2.DataID的配置 

 


网站公告

今日签到

点亮在社区的每一天
去签到