源码网站建设,wordpress婚纱主题,wep购物网站开发模板,平面设计网页设计师招聘1、RPC和HTTP对比
1.1 具体实现 RPC#xff1a;可以基于TCP协议#xff0c;也可以基于HTTP协议。 HTTP#xff1a;基于HTTP协议 1.2 效率 RPC#xff1a;自定义具体实现可以减少很多无用的报文内容#xff0c;使得报文体积更小。 HTTP#xff1a;如果是HTTP 1.1 报文中很…1、RPC和HTTP对比
1.1 具体实现 RPC可以基于TCP协议也可以基于HTTP协议。 HTTP基于HTTP协议 1.2 效率 RPC自定义具体实现可以减少很多无用的报文内容使得报文体积更小。 HTTP如果是HTTP 1.1 报文中很多内容都是无用的。如果是HTTP2.0以后和RPC相差不大比RPC少的可能就是一些服务治理等功能。 1.3 连接方式 RPC长连接支持。 HTTP每次连接都是3次握手。断开链接为4次挥手 1.4 性能 RPC可以基于很多序列化方式。如thrift HTTP 主要是通过JSON序列化和反序列效率更低。 1.5 注册中心 RPC 一般RPC框架都带有注册中心。 HTTP都是直连。 1.6 负载均衡 RPC绝大多数RPC框架都带有负载均衡测量。 HTTP一般都需要借助第三方工具。如nginx 1.7 综合结论 RPC框架一般都带有丰富的服务治理等功能更适合企业内部接口调用。而HTTP更适合多平台之间相互调用。 2、HttpClient实现RPC
2.1、Ajax发送json参数写法
var json [{id:123,name:bjsxt},{id:123,name:bjsxt}];
$.ajax({url:/demo5,type:post,success:function(data){alert(data);for(var i 0 ;idata.length;i){alert(data[i].id data[i].name);}},contentType:application/json,//请求体中内容类型dataType:json,//响应内容类型。data:json});2.2、跨域 跨域协议、ip、端口中只要有一个不同就是跨域请求。 同源策略浏览器默认只允许ajax访问同源(协议、ip、端口都相同)内容。 解决同源策略 在控制器接口上添加CrossOrigin。表示允许跨域。本质在响应头中添加Access-Control-Allow-Origin: * RequestMapping(/demo5)
ResponseBody
CrossOrigin
public ListPeople demo5(RequestBody ListPeople list) {System.out.println(list);return list;
}3、RMI实现RPC
1 RMI简介 RMI(Remote Method Invocation) 远程方法调用。 RMI是从JDK1.2推出的功能它可以实现在一个Java应用中可以像调用本地方法一样调用另一个服务器中Java应用JVM中的内容。 RMI 是Java语言的远程调用无法实现跨语言。 2 执行流程 Registry(注册表)是放置所有服务器对象的命名空间。 每次服务端创建一个对象时它都会使用bind()或rebind()方法注册该对象。 这些是使用称为绑定名称的唯一名称注册的。 要调用远程对象客户端需要该对象的引用。即通过服务端绑定的名称从注册表中获取对象(lookup()方法)。 3 API介绍 3.1 Remote java.rmi.Remote 定义了此接口为远程调用接口。如果接口被外部调用需要继承此接口。 3.2 RemoteException java.rmi.RemoteException 继承了Remote接口的接口中如果方法是允许被远程调用的需要抛出此异常。 3.3 UnicastRemoteObject java.rmi.server.UnicastRemoteObject 此类实现了Remote接口和Serializable接口。 自定义接口实现类除了实现自定义接口还需要继承此类。 3.4 LocateRegistry java.rmi.registry.LocateRegistry 可以通过LocateRegistry在本机上创建Registry通过特定的端口就可以访问这个Registry。 3.5 Naming java.rmi.Naming Naming定义了发布内容可访问RMI名称。也是通过Naming获取到指定的远程方法。