Category - IT技术

eclipse nodejs nodeclipse 插件    2017-07-19 20:18:26    5

最近参与前端开发任务,用到nodejs,虽然公司同事都用webstorm,自己也用了,但是总感觉不顺手,可能是常年使用eclipse开发有关(这里不讨论最佳开发工具,自己顺手才是王道),于是自己想要使用eclipse开发nodejs项目,想到之前听说的nodeclipse,就去官网看了下,安装步奏还是挺方便的,安装后初步试用了下,感觉挺顺手的

1、安装nodejs
2、安装jdk,配置eclipse,这里我用的是eclipse 4.5.2
3、下载nodeclipse离线安装包:
http://nchc.dl.sourceforge.net/project/nodeclipse/update-site-archive/org.nodeclipse.site-1.0.2-201509250223.zip
或者
http://pan.baidu.com/s/1dFiF7IL

4、安装nodeclipse,help-->Install New Software,如下图选择下载的压缩包
title

选择插件:
title
5、完成以上步奏即完成了安装

更多安装方式还请参考如下地址:
http://www.nodeclipse.org/updates/

nodejs http socket hang up body-parser    2017-07-19 20:16:57    11

错误信息:ERROR: { [Error: socket hang up] code: 'ECONNRESET' }

分析原因:由于某种原因,导致http目标地址建立socket连接的时候出错

错误解决:经过对比查找,发现我这里nodejs项目中有对中间件“body-parser”的使用,将其去除,则没有问题了

还有其他一些原因,这里暂时没有遇到,就不多做解释了,

AWS ELB WebSocket TCP    2017-07-19 20:14:21    3

AWS Elastic Load Balancing 与WebSocket并用报错

案情描述:
中午过后,同事发现含有WebSocket的页面与后端的连接死掉了,红色的鲜血流满了屏幕,详情看图
title

Incompatibile SockJS! Main site uses: "1.1.1", the iframe: "1.0.0".

案情分析:

在ELB中,我们使用的是http协议,但是ELB却不支持WebSocket协议(仅支持HTTP, HTTPs, TCP and TCPs.)并且没有任何消息表示ELB支持的HTTP和HTTPS协议可以支持WebSocket。当浏览器端向服务端发送消息的时候,由于ELB拦截掉了请求,又判断出协议不是支持的几种,就残忍的抛弃掉了。

药方:
从根本出发,WebSocket是基于HTTP协议的,而HTTP协议又是基于TCP协议的,恰巧ELB支持TCP协议,那么可以将ELB配置中HTTP协议改为TCP协议即可,如图
title

参考文章:http://blog.flux7.com/web-apps-websockets-with-aws-elastic-load-balancing


by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

jersey html5 文件上传 FormData restful    2017-07-12 16:08:46    36

本文主要使用jersey1.x,结合html5的FormData对象来进行多文件提交示例讲解

FormData

FormData对象是html5的一个对象,目前的一些主流的浏览器都已经兼容。IE8及以下是不支持FormData的。FormData还支持困扰众多开发者已久的ajax的上传文件,以前我们上传文件,需要写一个表单直接刷新提交,但是这里不需要了。

代码示例

html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <script src="js/jquery.js" type="text/javascript"></script>
  6. <script type="text/javascript">
  7. function test(){
  8. var form = new FormData(document.getElementById("form1"));
  9. $.ajax({
  10. url:"http://192.168.2.8:8066/file/multiFiles/",
  11. type:"post",
  12. data:form,
  13. processData:false,
  14. contentType:false,
  15. success:function(data){
  16. alert("pass");
  17. },
  18. error:function(e){
  19. alert("错误!!");
  20. }
  21. });
  22. }
  23. </script>
  24. </head>
  25. <body>
  26. <form id
CentOS7 EFK elasticsearch fluent kibana    2017-05-26 13:11:54    37

Fluentd并非是专用于日志文件收集的,而是一个通用的信息收集、整理、转发的流式数据处理工具,日志收集只是它十分典型的一个运用场景。重要的是,Fluentd的日志收集功能对容器支持十分完备,远远胜于Logstash等传统日志收集工具。一方面得益于Fluentd社区开发了几种专用于Docker日志文件的收集插件,这些插件能够在Fluentd收集完Docker日志以后自动为它加上容器相关的信息,比较推荐其中的fluent-plugin-docker-metadata-filter这一款插件,它提供的信息颇为齐全。Logstash对于这方面依然比较空缺,GitHub上唯一能够找到的一款社区插件也已经在一年前就停止开发。另一方面,当前Docker官方支持的日志驱动除了默认的使用本地目录,还可以直接发送到远程的日志存储或日志采集服务,而其中日志采集服务目前仅仅支持Splunk和Fluentd,同样没有Logstash等老一辈开源日志工具的踪影。

安装elasticsearch

安装JDK或者openJDK(这里以openJDK为例)

  1. [root@elk elk]# yum install java-1.8.0-openjdk -y

安装elasticsearch

  1. [root@elk elk]# wget -c https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.3/elasticsearch-2.3.3.rpm
  2. [root@elk elk]# yum localinstall elasticsearch-2.3.3.rpm -y
  3. .....
  4. Installing : elasticsearch-2.3.3-1.noarch 1/1
  5. ### NOT starting on installation,
12/14