草庐IT

java - 我应该使用哪种 Java RMI/RPC/IPC 技术?

我正在开发一个Java应用程序,它由一个服务器和一个客户端(将来可能有多个客户端)组成,它们可以在不同的主机上运行。对于这两者之间的通信,我目前使用自定义协议(protocol),该协议(protocol)由通过网络套接字发送并在两端转换回JavaBean对象的JSON消息组成。然而,应用程序变得越复杂,我发现这种方法不符合我的标准,而且太复杂了。我正在寻找一个完善的、可能是标准化的替代方案。我看过远程方法调用(RMI),但读到该协议(protocol)很慢(网络开销大)。我正在寻找的技术应该是轻量级的(协议(protocol)和库明智的)、健壮的、可能支持压缩(如果支持的话,还有很大

java - 使用 JAX-RPC 客户端从 JAX-WS WebService 获取附件

当我们从JAX-RPC迁移到JAX-WS时,我正在尝试调用使用JAX-W/JAXB的Web服务。客户端本身仍在使用JAX-RPC。WSDL文件保持不变。只要没有附件,就可以正常工作。有附件,它不起作用。客户说,没有。尽管它们可以在SOAP-Message中看到。据我了解这个问题,JAX-WS确实使用MTOM将二进制数据放入消息中,而JAX-RPC使用MIME。是否有可能以某种方式让它发挥作用?这是JAX-RPC消息的样子:HTTP/1.1200OKDate:Tue,21Dec201015:24:10GMTTransfer-Encoding:chunkedContent-Type:mul

【原理】RPC与HTTP

RPC与HTTPRPC原理RPC服务基本架构包含了四个核心的组件,分别是Client,Server,ClentStub以及ServerStub。RPC让远程调用就像本地调用一样,其调用过程可拆解为以下步骤。①服务调用方(client)以本地调用方式调用服务;②clientstub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;③clientstub找到服务地址,并将消息发送到服务端;④server端接收到消息;⑤serverstub收到消息后进行解码;⑥serverstub根据解码结果调用本地的服务;⑦本地服务执行并将结果返回给serverstub;⑧serverstub将返回结

Git报错: error: RPC failed; curl 56 HTTP/2 stream 5 was reset; send-pack: unexpected disconnect

一、问题分析背景:在本地修改了大量的代码并commit后,最后一次性push时,出现错误。分析:从报错的信息来看,貌似是和远程Git连接出现了问题,因此,可以从以下三个角度来分析:本地和远程Git仓库连接有问题,由于刚提交成功过,可以排除掉;本地和远程Git仓库的数据传输速度慢,在commit中数据过大情况下,会导致连接超时,这是有可能的;本地的commit内容比较多,无法一次性将内容push上去,是有可能。通过去Git官网查询可知,以下参数可以解决数据传输大小和速度等问题:http.postBuffer:指定在Git发送HTTP请求时使用的缓冲区大小http.lowSpeedLimit:设置

java - Protocol Buffer Java RPC 栈

根据this维基百科词条:“ProtocolBuffers与Facebook的Thrift协议(protocol)非常相似,只是它不包含用于定义服务的具体RPC堆栈。自从ProtocolBuffers开源以来,出现了许多RPC堆栈来填补这一空白”但是没有引用RPC栈的例子。谁能建议基于Java的RPC堆栈实现? 最佳答案 如果你想要基于Java的RPC堆栈,它是RMI.但是,它不能很好地跨平台工作。我一直在使用ProtoBuf做RPC。您几乎可以通过将protobuf消息包装在另一个定义服务或调用的protobuf中来模拟RPC堆栈

java - Apache Tomcat 中的 JAX-RPC/JAX-WS 运行时

我正在使用ApacheTomcatv6服务器。在创建新的Web服务时,我获得了“ApacheAxis”、“ApacheAxis2”和“ApacheCXF2.x”的Web服务运行时选项。是否可以将运行时设置为“JAX-RPC”或“Jax-WS”?编辑:我正在使用EclipseIDE 最佳答案 JAX-RPC和JAX-WS是规范,Axis、Axis2和CXF是实现。对于JAX-RPC,您需要Axis(1)对于JAX-WS使用CXF(我相信Axis2也支持此规范,但我从未使用过它)如果您有选择,我强烈推荐后者(JAX-WS),因为它是更现

java - 双向 JSON-RPC over TCP 套接字 Java 实现

有谁知道是否存在具有双向支持的JSON-RPC协议(protocol)的某些Java实现(没有客户端/服务器,两个实体可以发送和接收相同的消息)。我知道它存在于Python中:bjsonrpc谢谢! 最佳答案 看起来它不存在,所以我创建了一个,基于JsonRpcBase:JJsonRpc它现在不能很好地处理套接字连接,但它对我来说工作得很好。希望对您有所帮助。 关于java-双向JSON-RPCoverTCP套接字Java实现,我们在StackOverflow上找到一个类似的问题:

Java架构师之路三、网络通信:TCP/IP协议、HTTP协议、RESTful API、WebSocket、RPC等。

目录TCP/IP协议:HTTP协议:RESTfulAPI:WebSocket:RPC:UDP:HTTPS:上篇:Java架构师之路二、数据库:SQL语言、关系型数据库、非关系型数据库、数据一致性、事务管理等。-CSDN博客下篇:Java架构师之路四、分布式系统:分布式架构、分布式数据存储、分布式事务、分布式锁、分布式缓存、分布式消息中间件、分布式存储等。-CSDN博客TCP/IP协议:TCP/IP协议是互联网通信中最常用的协议组合,它由两个部分组成:传输控制协议(TCP)和Internet协议(IP)。下面对TCP/IP协议进行详细解释:IP协议(InternetProtocol):IP协议是

java - 直接从 Java 调用 GWT RPC 服务

是否有直接从Java代码调用GWTRPC服务端点的简单方法?我指的是真正的Java代码,而不是编译成javascript的Java代码。我问是因为我们想针对GWTRPC接口(interface)运行性能基准测试/压力测试。我想用Java编写测试工具并在JVM中运行它(而不是在浏览器中运行javascript)。我想一定有办法做到这一点,因为我假设GWT托管模式需要这样的功能。但是,我真的无法在GWT运行时中找到任何代码来演示如何干净地执行此操作。我查看了com.google.gwt.user.client.rpc包,但其中的内容似乎使用了JSNI,这显然不能被纯Java使用。

java - gwt rpc 中的 session ID cookie

假设我正在运行自己的session代码,在java中生成唯一且安全的sessionIDcookie的正确方法是什么。我不应该自己动手,而应该使用已经标准化的东西吗?我正在使用gwt和谷歌应用引擎平台。如何使session在浏览器/服务器重启后保持不变? 最佳答案 UsingServletSessionsinGWT在远程服务实现类中:StringjSessionId=this.getThreadLocalRequest().getSession().getId();在客户端代码中:StringjSessionId=Cookies.ge