腾讯云服务器实现Java客户端远程调用Linux服务器深度模型(Python)(上)

转载请注明出处:https://blog.csdn.net/qq_33427047/article/details/80393363

RPC(Remote Procedure Call, 远程过程调用)

  • 主要实现了Java client调用python server( 深度学习模型, 如 Parlai )
  • 主要的步骤为:

    • 使用Java调用Python服务器RPC, 用来远程启动深度学习模型
    • 修改模型输入输出格式为: 通过socket实现client-server通信
      参考Python与Java之间Socket通信
    • 实现client: Java多线程
  • 服务器采用腾讯云服务器: 完成电脑和服务器的SOCKET通信

使用Java调用Python服务器RPC

  • 通过使用xmlrpc机制,让python程序和java程序之间RPC通信交互
  • 配置java开发环境:
    • 下载jar包: apache-xmlrpc-3.1.3-bin.tar.gz
      无法下载试试度盘: 链接: https://pan.baidu.com/s/1Y1e3Zh90PHuKKMSckUuWMA 密码: afi8
    • 解压得到5个jar包
    • 在Java工程中添加jar包: 右键工程 -> 选择properties -> Java Build Path -> Libraries -> add External JARs…
    • 具体的作用和用法可以参考它的官方API文档:http://ws.apache.org/xmlrpc/apidocs/index.html
  • Python建立RPC服务器或客户端的通用库:

    
    # -*- coding:utf-8 -*-# server.pyfrom SimpleXMLRPCServer import SimpleXMLRPCServer
    from SocketServer import ThreadingMixIn
    from xmlrpclib import ServerProxy
    import thread
    import os
    import sysclass ThreadXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):pass
    class RPCServer():def __init__(self, ip='127.0.0.1', port='8000'):self.ip = ipself.port = int(port)self.svr = Nonedef start(self, func_lst):thread.start_new_thread(self.service, (func_lst, 0,))def resume_service(self, v1, v2):self.svr.serve_forever(poll_interval=0.001)def service(self, func_lst, v1):self.svr = ThreadXMLRPCServer((self.ip, self.port), allow_none=True)for func in func_lst:self.svr.register_function(func)self.svr.serve_forever(poll_interval=0.001)def activate(self):thread.start_new_thread(self.resume_service, (


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部