一、远程调用
无论是微服务还是SOA,都面临着服务间的远程调用。常见的远程调用方式有两种:RPC和Http
1.RPC(Remote Procedure Call 远程过程调用)
是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序。那么如何实现RPC?
<1>要实现远程调用,肯定需要通过网络传输数据。A程序提供服务,B程序通过网络将请求参数传递给A,A本地执行后得到结果,再将结果返回给程序B。(采用哪种传输协议?传输的数据格式是什么?)
<2>对调用过程进行封装。
注:采用动态代理进行封装。
假设要对UserService中的queryUserById方法进行调用,那么需要定义一个UserService的接口,里面包含方法queryUserById,然后用动态代理来代理这个接口,当有请求调用queryUserById这个方法时,就启用代理,在动态代理的内部建立socket对请求进行接收和发送。
2.HTTP
Http协议:超文本传输协议,是一种应用层协议。规定了网络传输的请求格式、响应格式、资源定位和操作的方式等。但是底层采用什么网络传输协议,并没有规定,不过现在都是采用TCP协议作为底层传输协议。说到这里,大家可能觉得,Http与RPC的远程调用非常像,都是按照某种规定好的数据格式进行网络通信,有请求,有响应。没错,在这点来看,两者非常相似,但是还是有一些细微差别。
二、遇到的问题
1.通用mybatis中,不能使用int,必须使用Integer。
三、
原文:https://www.cnblogs.com/lyj-gyq/p/9395359.html