`
kingwon
  • 浏览: 2522 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

hyk-proxy 构建于GAE之上的高性能web代理

阅读更多


hyk-proxy reference

关于hyk-proxy

  • 一个Java编写基于RPC机制实现的web proxy,运行于Google AppEngine平台

hyk-proxy原理

  • hyk-proxy分为两部分,一部分运行于GAE之上,属于remote server;另一部分运行于本地,属于local server,实质则为一个简单的http/https server。 

  • 当浏览器设置的代理服务器地址为local server地址时,local server将http请求通过一个通用RPC框架远程调用到remote server上,获取远程调用结果。

  • local server在获取调用结果简单处理后,转给浏览器完成一次代理访问。

  • 一次web访问经过此代理的完整过程如下:

             Browser<-->Local Server<-->Remote Server<-->Real Web Server

 

  其中Local Server与Remote Server之间属于RPC通信层部分,不局限于HTTP连接;若Remote Server由于防火墙原因无法直接通过HTTP连接,可采用XMPP模式穿越 

  • 由于该RPC框架通信层部分可以替换,因此local server与remote server之间的通信方式可以视实际情况替换。由于GAE本身的限制,目前理论上只有三种方式可以选择:

    1. HTTP,local server作为HTTP client访问remote server 
    2. XMPP,local server作为一个XMPP user与remote server进行通信
    3. EMAIL,local server 与remote server发送/接受email通信(由于EMail限制较大,似不适于用于RPC通信协议)

如何使用

  • 检查本地运行环境 

    1. JRE/JDK 1.5+
    2. Google App Engine SDK(Java) (最好为最新版本,下载地址
  • 安装Remote Server
    1. 解压hyk-proxy-server-[version].zip 
    2. 进入解压的目录, 修改war/WEB-INF/appengine-web.xml, 将<application>值改为自己创建的appid
    3. 执行appcfg.cmd/appcfg.sh update上传, 注意在解压后进入的目录执行(appcfg在'<Google App Engine SDK>/bin' ) 
  • 运行Local Server 
    1. 解压hyk-proxy-client-[version].zip
    2. 进入解压的目录, 修改etc/hyk-proxy-client.properties中“remoteserver.appid.x”
    3. 执行bin/start.bat(start.sh)启动local server,bin/stop.bat(stop.sh)停止默认绑定的地址为 127.0.0.1:48100

    配置说明

        大部分配置均在hyk-proxy-client.properties中,简要说明如下: 
    • 'remoteserver.appid.x' 为已部署的ApplicationID, 即<appid>.appspot.com中<appid>
    • 'remoteserver.appid.x' 可配置多个,此情况下, 代理过程中采用轮询策略选择
    • 'localserver.xmpp.user.x’, 'localserver.xmpp.passwd.x' 为XMPP账户,目前GTALK/OVI/jabber账户均可使用 
    • XMPP账户可配置多个,此情况下代理过程中采用轮询策略选择
    • XMPP模式仅在HTTP模式为false("localserver.http.enable = false")情况下生效
    • 'localserver.rpc.http.maxfetcher' 在下载文件/观看视频时生效,含义为并发的下载线程数

    注意

    • 启用XMPP模式时, 由于xmpp server限制,太频繁发送消息会被server拒绝,可采用配置多个XMPP账户规避
    • EMail模式目前未实现

     

    1
    0
    分享到:
    评论

    相关推荐

      高性能web代理程序 hyk-proxy

      高性能web代理程序 hyk-proxy

      基于Java的高性能web代理程序 hyk-proxy.zip

      "hyk-proxy"是一个基于Java开发的高性能Web代理程序,它展示了Java在构建此类系统时的强大能力。Java语言以其跨平台性、丰富的类库和强大的并发处理能力,成为构建高性能网络服务的理想选择。 首先,我们要理解什么...

      JAVA源码高性能web代理程序hyk-proxy

      JAVA源码高性能web代理程序hyk-proxy

      java资源高性能web代理程序hyk-proxy

      java资源高性能web代理程序 hyk-proxy提取方式是百度网盘分享地址

      基于java的高性能web代理程序 hyk-proxy.zip

      总结,"基于java的高性能web代理程序 hyk-proxy.zip"项目展示了Java在构建高性能网络服务方面的强大能力,结合了Java的多线程、NIO、异步编程等技术,以实现高效的Web代理功能。对于Java开发者而言,深入理解这个...

      基于Java的实例源码-高性能web代理程序 hyk-proxy.zip

      基于Java的实例源码-高性能web代理程序 hyk-proxy.zip

      高性能web代理程序 hyk-proxy源码

      【高性能Web代理程序 hyk-proxy源码解析】 `hyk-proxy`是一款基于Java开发的高性能Web代理程序,它主要用于提供网络代理服务,帮助用户通过设置的代理服务器进行网络访问。这款代理程序以其高效的处理能力、稳定的...

      基于java的开发源码-高性能web代理程序 hyk-proxy.zip

      【标题】"基于Java的开发源码-高性能Web代理程序 hyk-proxy.zip" 提供的是一种用Java语言实现的高性能Web代理服务器的源代码。在Web代理程序领域,这类软件通常用于转发网络请求,帮助用户匿名浏览网页或者提高访问...

      java源码:高性能web代理程序 hyk-proxy.rar

      【描述】"java源码:高性能web代理程序 hyk-proxy.rar"表明这个项目专注于实现高效的代理服务。在Java编程语言中,这通常意味着利用非阻塞I/O(如NIO)或者异步处理模型来提高并发能力,以及通过合理的数据结构和...

      小程序 高性能web代理程序 hyk-proxy(源码).rar

      免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

      K4B4G1646Q-HYK0

      不过,从提供的内容来看,三星的K4B4G1646Q-HYK0 DRAM是一款用于高性能计算环境中的存储解决方案,适用于各种现代计算机系统和嵌入式应用。它能够满足快速读写的需求,并且具有较高的存储容量。 总的来说,三星K4B4...

      phpsocks5:自动从code.google.compphpsocks5导出

      还有少数程序(比如hyk-proxy中PHP部分)可以完美支持HTTPS,无须导入HTTPS证书,但需要外网环境使用,或者在路由器中设置端口映射,或者需要开启路由器的UPnP。 本程序没有上述限制,完美支持HTTPS,无须PHP空间...

      hyk:无需离开命令行即可日文 - 英文翻译(honyaku)

      由于提供的压缩包文件名为`hyk-master`,我们可以推测这可能是`hyk`项目的源代码仓库。通过查看源代码,我们可以深入理解它的内部工作原理,包括它是如何与翻译服务交互的,以及如何处理输入和输出。这对于想要...

      HYKWebsite:重建hyk网站

      综上所述,“HYKWebsite:重建hyk网站”项目涉及了现代Web开发的多个方面,包括前端和后端技术的运用、用户体验设计以及项目管理流程。通过这样的重建,HYK网站有望以更现代、高效的形象出现在用户面前。

      java开源包11

      WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

      java开源包4

      WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

      java开源包1

      WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

      java开源包10

      WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

      java开源包2

      WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

      java开源包3

      WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    Global site tag (gtag.js) - Google Analytics