1. 微服务拆分与远程调用
1.1 微服务拆分时的几个原则:
- 不同微服务,不要重复开发相同业务
- 微服务数据独立,不要访问其它微服务的数据库
- 微服务可以将自己的业务暴露为接口,供其它微服务调用
可以设置一个父工程统一管理依赖与版本
子工程继承父工程,导入依赖,不写代码
孙子工程继承子工程, 根据业务分出多个孙子工程
1.2 远程调用
Q : 我们在微服务中数据独立, 每个服务对应一个自己的数据库, 那当我们在某个服务中需要其他服务的数据库中的数据, 或者其他的需要调用其他服务时怎么办?
A : 这就是服务之间的远程调用问题
1.2.1 RestTemplate
为了解决远程调用问题, spring提供了RestTemplate可以在Java代码中发起http请求:
- 首先, 我们需要注册RestTemplate示例(Bean),由于bean的注入只能放在配置类里,而启动类就是一个配置类, 因此可以将RestTemplate放在配置类或者启动类中, 这里以放在启动类为例:
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@MapperScan("cn.ahua.order.mapper")
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application