1. 服务的调用
浏览器发起请求,会将准备好的资源发送给tomcat,tomcat 使用dispatcherServlet 转发,将结果返回到Response
1. RPC
1.1 Remote Produce Call 远程过程调用,类似的还有RMI。自定义数据格式,基于TCP通信,速度快,效率高。早起的webservice, 现在热门的dubbo,都是RPC的典型代表
TCP:传输层,三次握手建立连接,四次挥手关闭连接,建立连接比较浪费资源
RPC可以基于TCP建立长连接
必须统一格式和语言,java对java, python 对 python
如果公司全部采用java 技术栈,那么使用Dubbo是不错的选择
2 Http 请求
http:网络传输协议,
- 只有格式,无关语言,灵活多变
2.性能并不比RPC慢很多 - 更符合微服务理念
缺点:
消息封装比较臃肿
多样的技术栈,选择Springcloud
- HTTP客户端工具
HttpClient appach的
OKHttp
JDK原生的HttpUrlConnection(默认的)
不同的客户端,API各不相同
3. RestTemplate
对上述客户端的抽象,没有具体实现,常用的3种都支持
默认支持
JDK原生的HttpUrlConnection(默认的)