博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hi-nginx-1.4.9正式发布,支持javascript后端开发
阅读量:6216 次
发布时间:2019-06-21

本文共 2534 字,大约阅读时间需要 8 分钟。

hi-nginx-1.4.9已经发布。

更新:

  • 支持javascript后端开发
  • 修复脚本搜索的一个bug

从这一版开始,hi-nginx开始支持javascript,这意味着把javascript应用于后端开发,将不再只有nodejs这唯一的途径和方法。由于java本身对javascript的极好支持,使得在hi-nginx中,可以直接在javascript脚本中使用java——相当于把java嵌入了javascript。

为了开启javascript支持,你只需要开启java支持即可:--enable-http-hi-java=YES。

例子:

if (typeof (Mustache) == 'undefined') {    load('https://cdn.bootcss.com/mustache.js/2.3.0/mustache.min.js')}var list = java.util.Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);var template = "{
{#list}}* {
{.}}\n{
{/list}}"var key = 'test', outputif (hi_req.cache.containsKey(key)) { output = hi_req.cache.get(key)} else { output = Mustache.render(template, {'list': JSON.parse(list.toString())}) hi_res.cache.put(key, output)}hi_res.headers.get('Content-Type').set(0, 'text/plain;charset=UTF-8')hi_res.content = outputhi_res.status = 200;

 

比较:

helloworld:

fedora 25,4g,2核i5,笔记本

ab -c 1000 -n 500000 压力测试,RPS:

  • nodejs(6.12.0):无法完成测试
  • hi-nginx-javascript :均值13000+

ab -c 1000 -n 100000 压力测试,RPS:

  • nodejs(6.12.0):偶尔完成测试,最好成绩接近9000+,均值6000-9000
  • hi-nginx-javascript :均值14000+

 

用法:

hi_java_classpath "-Djava.class.path=.:/usr/local/nginx/java:/usr/local/nginx/java/hi-nginx-java.jar";        hi_java_options "-server -d64 -Xms512m -Xmx512m -Xmn170m -Dnashorn.args=--global-per-engine";        hi_java_servlet_cache_expires 300s;        hi_java_servlet_cache_size 10;        hi_java_version 8;        location / {                hi_need_cache off;                hi_cache_expires 5s;                hi_need_kvdb off;                hi_kvdb_size 10;                hi_kvdb_expires 5s;                hi_need_cookies on;                hi_need_headers on;                hi_need_session on;                hi_session_expires 300s;                hi_javascript_lang javascript;                hi_javascript_extension js;                #hi_javascript_script javascript/index.js;                hi_javascript_content "hi_res.content='hello,world';hi_res.status=200;";        }

 

Server Software:        nginx/1.14.0Server Hostname:        127.0.0.1Server Port:            8086Document Path:          /Document Length:        11 bytesConcurrency Level:      1000Time taken for tests:   34.457 secondsComplete requests:      500000Failed requests:        0Total transferred:      139000000 bytesHTML transferred:       5500000 bytesRequests per second:    14510.69 [#/sec] (mean)Time per request:       68.915 [ms] (mean)Time per request:       0.069 [ms] (mean, across all concurrent requests)Transfer rate:          3939.43 [Kbytes/sec] received

 

 

官网:

文档:

仓库:

 

转载地址:http://tilja.baihongyu.com/

你可能感兴趣的文章
iOS学习笔记—ViewController/生命周期
查看>>
GoodReader跨域访问HT for Web手册
查看>>
oracle: job使用
查看>>
hive在命令行消除进度等错误信息
查看>>
博客园客户端UAP开发随笔-从9个细节说ListView的使用
查看>>
Java基础篇--字符串处理(StringBuffer)
查看>>
MYSQL数据类型转换
查看>>
已知直线上的两点 A(x1, y1), B(x2, y2) 和另外一点 C(x0, y0),求C点到直线的距离。...
查看>>
浏览器提示代理服务器没有响应
查看>>
lnmp.org一键安装包
查看>>
Canny边缘检測算法原理及其VC实现具体解释(一)
查看>>
more命令(转)
查看>>
java设计模式演示样例
查看>>
C++内存泄露的有效预防方法:谁使用,谁删除 (1.2)
查看>>
使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)
查看>>
转【Python】同时向控制台和文件输出日志logging
查看>>
[SVN(ubuntu)] ubuntu使用svn
查看>>
常见的设计模式:单例模式、工厂模式、观察者模式、装饰模式与适配器模式...
查看>>
微软职位内部推荐-Sr. SW Engineer for Azure Networking
查看>>
Could not load file or assembly'System.Data.SQLite.dll' or one of its depedencies
查看>>