网关业务逻辑
问题: 网关项目比较存粹,没有操作数据库的包,并且还要调用我们之前写过的代码?复制粘贴维护麻烦 理想:直接请求到其他项目的方法
怎么调用其他项目的方法?
复制代码和依赖,环境
- HTTP请求(提供接口,供其他项目调用)
- RPC
- 把公共的代码打个jar包,其他项目去引用
HTTP请求怎么调用
- 提供方提供一个接口(地址,请求方法,参数,返回值)
- 调用方使用HTTP Client之类的代码包去发送HTTP请求
RPC
作用
像调用本地方法一样去调用远程方法
优点
- 对开发者更透明,减少很多的沟通成本
- RPC向远程服务器发送请求时,未必使用HTTP协议,比如还可以使用TCP/IP,性能更高。(内部服务更实适用) 注意: 这里注册中心只提供信息,并不会帮助调用
Dubbo框架(RPC实现)
常见框架内GRPC,TRPC; 最好的学习方式:阅读官方文档dubbo.incubator.apache.org/zh/docs3-v2…
两种使用方式:
- Spring Boot代码(注解+编程式):写Java接口,服务提供者和消费者都去引用这个接口 偏程导
- DL(接口调用语言):创建一个公共的接口定义文件,服务提供者和消费者读取这个文件。优点是跨语言,所有的框架都认识
底层是Triple协议: dubbo.incubator.apache.org/zh/docs3-v2…
使用nacos
整合Nacos注册中:Nacos | Apache Dubbo Nacos下载地址:Nacos 快速开始
Windows
我们找到nacos的bin目录下单机运行
启动命令(standalone代表着单机模式运行,非集群模式): startup.cmd -m standalone
添加依赖
这里的nacos版本应该是你自己拥有的版本
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>3.0.9</version> </dependency> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>2.1.2</version> </dependency>