Springboot多个服务互相调用简单案例

本文展示了如何在Springboot应用中实现微服务间的互相调用。通过使用RestTemplate,作者在video-service中创建了一个查询方法,并在order-service中进行调用,通过PostMan测试验证了服务调用的成功。
摘要由CSDN通过智能技术生成
初探微服务之间的调用

服务直接怎么调用:

RPC:
  远程过程调用,像调用本地服务(方法)一样调用服务器的服务
  支持同步、异步调用
  客户端和服务器之间建立TCP连接,可以一次建立一个,也可以多个调用复用一次链接
  RPC数据包小
    protobuf
    thrift
  rpc:编解码,序列化,链接,丢包,协议
  
Rest(Http):
  http请求,支持多种协议和功能
  开发方便成本低
  http数据包大
  java开发:resttemplate或者httpclient

我们这里使用 resttemplate 的方式进行演示

  1. 首先通过视频服务video-service写一个查询方法

    @RestController
    @RequestMapping("/api/v1/video")
    public class VideoController {
         
    
        @Autowired
        IVideoService videoService;
    
        @RequestMapping("title")
        public Video queryVideoTitleById(String videoId){
         
            return videoService.queryById(videoId);
        }
    
    }
    
  2. 通过postMan调用该接口查看是否能获取数据

    访问url:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单Spring Boot多线程案例,该案例使用了Java的Executor框架来实现多线程任务的执行。 首先,在Spring Boot项目中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> ``` 然后,创建一个名为TaskService的服务类,该类包含一个名为executeTasks的方法,该方法将启动多个线程来执行任务。 ```java @Service public class TaskService { private static final int NUM_THREADS = 10; public void executeTasks() { Executor executor = Executors.newFixedThreadPool(NUM_THREADS); for (int i = 0; i < NUM_THREADS; i++) { executor.execute(new Task(i)); } } private static class Task implements Runnable { private final int taskId; public Task(int taskId) { this.taskId = taskId; } @Override public void run() { System.out.println("Task " + taskId + " is running on thread " + Thread.currentThread().getName()); } } } ``` 在该服务类中,我们首先定义了一个常量NUM_THREADS,该常量表示要启动的线程数。然后,我们使用Executor框架创建了一个固定大小的线程池,然后使用循环启动NUM_THREADS个线程,每个线程都是一个Task对象的实例。 Task类是一个实现了Runnable接口的内部类,该类表示一个要执行的任务。在run方法中,我们只是简单地输出一条消息,指示任务正在运行,以及它正在哪个线程上运行。 最后,我们可以在Spring Boot应用程序的控制器类中调用executeTasks方法,以启动多个线程执行任务。 ```java @RestController public class TaskController { @Autowired private TaskService taskService; @GetMapping("/execute") public String executeTasks() { taskService.executeTasks(); return "Tasks have been executed"; } } ``` 在上述控制器类中,我们使用@Autowired注解将TaskService注入到控制器中。然后,我们定义了一个名为executeTasks的GET请求处理程序方法,该方法调用TaskService的executeTasks方法来启动多个线程执行任务。最后,我们返回一个简单的消息,指示任务已经执行。 现在,我们可以通过访问http://localhost:8080/execute来启动多个线程执行任务。每个任务都将输出一条消息,指示它正在哪个线程上运行。 这就是一个简单Spring Boot多线程案例,使用了Executor框架来实现多线程任务的执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值