rpc

逆向工具 IDA pro.7.0

限于喜欢 提交于 2020-01-10 11:26:26
项目里用到的rpc 库,是一个商业库,只有.a 库文件,没有源码 后来需要修改rpc的功能,需要逆向出rpc库的源码,用到了这个逆向工具 IDA pro.7.0 感觉还不错。 来源: CSDN 作者: hnbchca 链接: https://blog.csdn.net/hnbchca/article/details/103918812

RPC服务治理

a 夏天 提交于 2020-01-10 00:10:03
RPC服务治理 什么是RPC? RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场景极其广泛,实现的方式也各式各样。 过程是什么? 过程是业务处理、计算任务;更直接的理解:一段程序代码。 有什么重要特征? 像调用本地方法一样调用远程的过程。 远程调用原理 比如 A (client) 调用 B (server) 提供的 remoteAdd方法: 首先A与B之间建立一个TCP连接; A把需要调用的方法名(这里是remoteAdd)以及方法参数(10, 20)序列化成字节流发送出去; B接受A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用(可能是localAdd)并把结果30返回; A接受远程调用结果,输出30。 RPC框架是什么? 封装好了参数组、消息编解码、底层网络通信的远程过程调用的程序框架,可以直接在其基础上只需专注于我们的过程代码编写。 传统的webService框架:Apache CXF、Apache Axis2、java自带的JAX-WS等等。webService框架大多基于标准的SOAP协议。 新兴的微服务框架:Dubbo、Spring Cloud、Apache Thrift等等 通信协议

编写你的第一个 Java 版 Raft 分布式 KV 存储

元气小坏坏 提交于 2020-01-09 13:06:52
前言 本文旨在讲述如何使用 Java 语言实现基于 Raft 算法的,分布式的,KV 结构的存储项目。该项目的背景是为了深入理解 Raft 算法,从而深刻理解分布式环境下数据强一致性该如何实现;该项目的目标是:在复杂的分布式环境中,多个存储节点能够保证数据强一致性。 项目地址:https://github.com/stateIs0/lu-raft-kv 欢迎 star :) 什么是 Java 版 Raft 分布式 KV 存储 Raft 算法大部分人都已经了解,也有很多实现,从 GitHub 上来看,似乎 Golang 语言实现的较多,比较有名的,例如 etcd。而 Java 版本的,在生产环境大规模使用的实现则较少; 同时,他们的设计目标大部分都是命名服务,即服务注册发现,也就是说,他们通常都是基于 AP 实现,就像 DNS,DNS 是一个命名服务,同时也不是一个强一致性的服务。 比较不同的是 Zookeeper,ZK 常被大家用来做命名服务,但他更多的是一个分布式服务协调者。 而上面的这些都不是存储服务,虽然也都可以做一些存储工作。甚至像 kafka,可以利用 ZK 实现分布式存储。 回到我们这边。 此次我们语言部分使用 Java,RPC 网络通信框架使用的是蚂蚁金服 SOFA-Bolt,底层 KV 存储使用的是 RocksDB,其中核心的 Raft 则由我们自己实现

akka-rpc(基于akka的rpc实现)

≯℡__Kan透↙ 提交于 2020-01-08 16:45:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> akka-rpc(基于akka的rpc的实现) 代码:http://git.oschina.net/for-1988/Simples 目前的工作在基于akka(java)实现数据服务总线,Akka 2.3中提供了 Cluster Sharing(分片集群)和Persistence功能可以很简单的写出一个大型的分布式集群的架构。里面的一块功能就是RPC(远程过程调用)。 RPC 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信 协议 。该协议允许运行于一台计算机的 程序 调用另一台计算机的 子程序 ,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用 面向对象编程 ,那么远程过程调用亦可称作远程调用或远程方法调用,例: Java RMI 。 实现原理 整个RPC的调用过程完全基于akka来传递对象,因为需要进行网络通信,所以我们的接口实现类、调用参数以及返回值都需要实现java序列化接口。客户端跟服务端其实都是在一个Akka 集群关系中,Client跟Server都是集群中的一个节点。首先Client需要初始化RpcClient对象,在初始化的过程中,我们启动了AkkaSystem,加入到整个集群中,并创建了负责与Server进行通信的Actor

RabbitMQ中文文档PHP版本(六)--远程过程调用(RPC)

喜欢而已 提交于 2020-01-07 00:21:18
2019年12月10日10:05:54 原文: https://www.rabbitmq.com/tutorials/tutorial-six-php.html 远程过程调用(RPC) (使用 php-amqplib ) 先决条件 本教程假定RabbitMQ 已 在标准端口( 5672 )的 本地主机 上 安装 并运行 。 如果您使用其他主机,端口或凭据,则连接设置需要进行调整。 在哪里获得帮助 如果您在阅读本教程时遇到困难,可以 通过邮件列表 与我们 联系。 在 第二篇教程中, 我们学习了如何使用 工作队列 在多个工作人员之间分配耗时的任务。 但是,如果我们需要在远程计算机上运行功能并等待结果怎么办? 好吧,那是一个不同的故事。 这种模式通常称为“ 远程过程调用” 或“ RPC” 。 在本教程中,我们将使用RabbitMQ构建RPC系统:客户端和可伸缩RPC服务器。 由于我们没有值得分配的耗时任务,因此我们将创建一个虚拟RPC服务,该服务返回斐波那契数。 客户端界面 为了说明如何使用RPC服务,我们将创建一个简单的客户端类。 它将公开一个名为 call 的方法,该方法 发送RPC请求并阻塞,直到收到答案为止: $ fibonacci_rpc = 新的 FibonacciRpcClient(); $ response = $ fibonacci_rpc-> call(30);

Spyne: Why am I getting empty responses for json requests?

风流意气都作罢 提交于 2020-01-06 08:26:08
问题 I have a working application that accepts SOAP requests, processes the requests, forwards the SOAP request to an API, processes the response, and then forwards the response to the client. I'm trying to change this application so that it will be JSON between my application and the client but still use SOAP between API and my application Now, it can successfully accept JSON requests from client and send/receive SOAP with API. However, all the responses to client are empty. The only case that I

WebSharper: Rpc-returned object are unusuable on the client or cause error

爱⌒轻易说出口 提交于 2020-01-06 07:53:10
问题 I have a few server-side objects with inheritrence hierarchy, like this: [<JavaScriptExport>] type [<AbstractClass>] A() = ... [<JavaScriptExport>] type [<AbstractClass>] B() = inherit A() [<JavaScriptExport>] type C() = inherit B() The above objects have certain fields and methods, which I have omitted for brevity. All of those can be compiled to javascript -- I receive no build errors. I have an RPC that would return a server-side created instance of such an object: module Remoting = [<Rpc>

Is it possible to enable GRPC message compression in server? (Python)

[亡魂溺海] 提交于 2020-01-06 06:57:48
问题 I have a gRPC client (in Java) sending requests to a server (written in Python). I need to enable both request compression and response compression. There is good documentation on how to enable compression on the client side. I have managed to compress the request like so: response = blockingStub.withCompression("gzip").method(request) However, I cannot find any documentation on how to compress the server response (also). It seems that there is almost no documentation (or examples) on how to

Getting a list of keys from block 0

自古美人都是妖i 提交于 2020-01-06 05:23:32
问题 Using a local blockchain, is it is possible to use the bitcoin-core rpc commands to query a block (such as the genesis block) and get a list of all the public keys used in that block? If it is possible, which commands do I need to use? 回答1: Not entirely. This is because modern outputs contain addresses (technically scriptPubkeys) which are encoded hashes of a public key, see Types of Transactions. Hashes cannot be reversed (or Bitcoin wouldn't work at all), so in order to reveal the public

Corda webserver produces exception “User not authorized to perform RPC call nodeInfo with target”

一笑奈何 提交于 2020-01-06 04:41:29
问题 I am trying to restrict a node to perform certain flow, For Example, I have two flows FlowOne and FlowTwo. For PartyA, I want to give permission for FlowOne, For PartyB permission for FlowTwo. Permission to the rpc calls should be there also. Here is my rpcUsers configuration PartyA: rpcUsers = [[ user: "user1", "password": "test", "permissions": ["StartFlow.net.corda.mortgage.msr.flows.FlowOne","InvokeRpc.startFlow"]]] PartyB: rpcUsers = [[ user: "user2", "password": "test", "permissions": [