我试图找到一种更好的方法来使用 NodeJS 运行一些 cpu 绑定任务。据我所知,有 2 个选项,fork processes和worker threads。所以我在它们之间运行了一个基准测试,发现 fork 过程更快。
所以,我在这里有一些问题:
我正在使用 node v10.15.3 在 MacOS(2.2 GHz Intel Core i7,16 GB 1600 MHz DDR3)上运行代码
基准代码在我的要点中:
如您所见,我的代码中使用了线程池库microjob和进程池库node-worker-farm。正在运行的 cmd 是:node --experimental-worker benchmark.js
我已经检查了大多数类似的问题,但找不到答案。因此,我只能发布一个新问题。
我可以成功运行我的应用程序而不会出错,但是我编写的其余api无法正确访问。我已经将启动日志与官方教程进行了比较,然后发现下面没有类似的日志:
2017-11-13 17:37:50.921 INFO 6503 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@2328c243: startup date [Mon Nov 13 17:37:49 CST 2017]; root of context hierarchy
2017-11-13 17:37:51.061 INFO 6503 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/greeting]}" onto public hello.Greeting hello.GreetingController.greeting(java.lang.String)
2017-11-13 17:37:51.066 INFO 6503 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-11-13 17:37:51.067 INFO 6503 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-11-13 17:37:51.126 INFO 6503 --- …Run Code Online (Sandbox Code Playgroud) 有我的docker-compose.yml
version: '2'
services:
web:
image: nginx:latest
ports:
- "8018:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/default.conf
- /private/var/log/nginx:/var/log/nginx
- /private/var/run/php7-fpm.sock:/var/run/php7-fpm.sock
networks:
- code-network
php:
image: php:fpm
volumes:
- ./code:/code
- ./php-fpm.conf:/usr/local/etc/php-fpm.conf
- ./www.conf:/usr/local/etc/php-fpm.d/www.conf
- /private/var/run/php7-fpm.sock:/var/run/php7-fpm.sock
networks:
- code-network
networks:
code-network:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
在site.conf中,我这样写,fastcgi_pass unix:/var/run/php7-fpm.sock;我还将监听地址更改为listen = /var/run/php7-fpm.sockwww.conf。在我的MAC中,在文件夹/ private / var / run中以模式666运行了一个名为php7-fpm.sock的文件。
运行之后docker-compose up -d,容器运行成功。但是当我访问http:// localhost:8018时,它返回了502。检查了nginx错误日志后,我发现了这一点
2017/11/01 13:08:39 [错误] 6#6:* 1连接()到Unix:/var/run/php7-fpm.sock在连接到上游时失败(111:连接被拒绝),客户端:172.18 .0.1,服务器:本地主机,请求:“ GET / HTTP / 1.1”,上游:“ fastcgi:// unix:/var/run/php7-fpm.sock:”,主机:“ localhost:8018”
顺便说一句,在尝试使用unix套接字模式之前。我以tcp / ip模式成功访问了http:// …