微服务基础:远程调用的基本使用详解
·
1. 启动Linux虚拟机&远程登录Linux系统&启动MySQL服务器
# 一种安全、可靠的 MySQL 启动方式
[root@localhost bin]# ./mysqld_safe &
mysqld_safe:MySQL 提供的安全启动脚本,它会启动mysqld(MySQL 服务器进程),并在后台监控mysqld的运行状态。如果mysqld意外崩溃,mysqld_safe会自动尝试重启它,保证 MySQL 服务的稳定性。./:在当前目录下执行mysqld_safe脚本(通常该脚本位于 MySQL 的bin目录下)。&:Linux 中的后台执行符号,用于将mysqld_safe进程放到后台运行,执行该命令后,终端不会被占用,仍可继续输入其他命令。

2. 关闭防火墙
# 1. 立即停止当前运行的 firewalld 防火墙服务。
[root@localhost bin]# systemctl stop firewalld
# 2. 查看 firewalld 防火墙服务的当前运行状态。
[root@localhost bin]# systemctl status firewalld
# 3. 永久禁用 firewalld 防火墙的 “开机自启” 功能。
[root@localhost bin]# systemctl disable firewalld

3. 测试连接,创建数据库cloud_order和cloud_user,运行SQL文件
sql文件:通过网盘分享的文件:cloud-order.sql等2个文件
链接: https://pan.baidu.com/s/15mVwLEEk_cwXlGLDleYqqA?pwd=7yf3 提取码: 7yf3




4. 配置Idea&Maven
项目:通过网盘分享的文件:cloud-demo.zip
链接: https://pan.baidu.com/s/1HhV_2U2JzvJmAQZmTkFo0g?pwd=2j4i 提取码: 2j4i

5. 修改项目配置、运行、访问
修改两个application.yml文件

运行OrderApplication.java和UserApplication.java


浏览器访问localhost:8080/order/101和localhost:8081/user/1
6. RestTemplate实现远程HTTP调用
OrderService中向UserService发起一个HTTP请求:
@MapperScan("com.situ.order.mapper")
@SpringBootApplication
public class OrderApplication {
...
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
@Service
public class OrderService {
...
@Autowired
private RestTemplate restTemplate;
public Order queryOrderById(Long orderId) {
...
// 根据订单表里的userId查询用户信息
// 2.远程查询user
// 2.1.url地址
String url = "http://localhost:8081/user/" + order.getUserId();
// 2.2.发起调用
User user = restTemplate.getForObject(url, User.class);
// 3.存入order
order.setUser(user);
...
}
}
通过
@Bean注解将RestTemplate对象注入到 Spring 容器中,供其他组件(如OrderService)依赖注入使用。
RestTemplate是 Spring 提供的 HTTP 客户端工具,用于发送 HTTP 请求(这里用于远程调用用户服务userservice)。
浏览器再访问localhost:8080/order/101
更多推荐



所有评论(0)