- 博客(53)
- 资源 (3)
- 收藏
- 关注
原创 Nodo Spawn启动子程序端口一致时,父程序被干掉
问题在使用nodejs写一个应用(父应用)的时候,此项目需要管理一些子应用,类似pm2的作用;就是使用的childProcess的spawn来启动;但是发现,如果在windows环境下,创建的一个子应用是非node应用并且子应用端口与父应用的端口一致,就会出现父应用程序被干掉,而子应用被成功启动;排查问题1.Windows环境下(1)测试子应用是node的情况下,发现不会被挤掉,启动的子应用会报端口被监听的错误(符合要求)(2)测试子应用非node的情况下,比如go语言或者c写的可执行文件,发现
2021-03-23 10:19:52 267
原创 express解析的req.body为{}
问题来源语言:nodejs框架:express需求:对接视频结构化设备(此服务会推送捕捉到的人像或者车辆等信息)开发:使用express快速搭建一个新项目问题:对接时,视频结构化设备推送的信息,打印出来的req.body是{}空对象。但是我使用postman调用的时候,是可以打印出来body对象的。实现:以下我将按照我的思路来重构一下问题和找问题的思路。开发使用express快速搭建新项目1.npm i express -g2.npm i express-generater -g3.e
2020-11-20 15:41:30 2820 8
原创 nodejs的定时任务模块(node-schedule)
node-schedule模块介绍定时触发某个任务,去完成类似导出数据,定时发送消息等.安装npm i node-scheduleCron风格定时器var schedule = require('node-schedule');function scheduleCronstyle(){ schedule.scheduleJob('30 * * * * *', function(){ console.log('scheduleCronstyle:' + new Date
2020-11-20 14:19:29 2604
原创 nodejs使用protobufjs
1、使用前提nodejs会发送mqtt消息,但是消息体要进行压缩,未使用json或者XML,我们使用protobufjs来压缩数据。2、使用步骤(1)安装protobufjsnpm install -g protobufjs (2)创建protp/config.proto文件syntax = "proto3";message Config{ int32 param=1; string req_id=2;}(3)使用命令,将config.proto转换成js文件cd pr
2020-08-11 17:05:13 1701
原创 node的单元测试
单元测试,测试某个部分时,可以把别的部分mock掉,比如A函数里调用了B函数,要测A,就把B mock掉,测得时候只是测B是否被正常调用了有的时候mock的时候,需要新建mock类,比如ws和db等,因为有连接导致测试停不掉,方便起见建立了mock文件不单独写个文件的话jest.mock('../src/wsServer', () => ({ wsServer: { clients: [] } }));这样也行。...
2020-05-19 11:24:01 178
原创 nodejs需要websocket绑定到http(https)
前景:我们在创建一个项目的时候,刚开始websocket的server端的端口和http的端口是分开的,但是在部署的时候,只能使用同一个端口,所以就需要将websocket端口绑定在httpServerwebsocket是http升级而来的,可以和httpServer共用一个端口,那么代码中如何实现呢?npm的ws已经有此处代码:https://www.npmjs.com/package/ws大体就是在创建websocket的时候,使用的是http来创建,然后启动server.listen(port
2020-05-19 11:13:40 2414 1
原创 nodejs中forEach和普通循环区别
问题描述:最近在写代码中发现在forEach循环中,使用await函数跟正常的循环有区别,所以进行记录。一般我们都将forEach叫做增强for循环,确实较少了部分代码量,但是当内部使用await的时候需要注意,下面我写了两个例子。1、如果在循环中不使用await这个promise,区别不大2、forEach和普通循环中执行await函数情况(1)forEach[1,2,3].forEach(function hehe),先执行hehe(1),假如hehe里面有异步,就不会等它执行完,继续执行h
2020-05-19 10:07:18 2388
原创 git提交规范和MergeRequest
前言:我们在提交git的时候是需要填写提交的内容的,用于后台进行统计。一、git提交规范Commit message包含三部分:Header,Body和Footer<type>(<scope>):<subject>//空一行<body>//空一行<footer>Header(必需),body和footer可以省略Header(必需)type用于说明commit的类别feat:新功能(feature)fix:修补bugdo
2020-05-13 14:35:36 2526
原创 Nodejs快速搭建项目_区分生产和测试环境
问题:测试环境和生产环境不是同样的数据库或者配置不一样,那么上线的时候总不能改代码吧?那么如果实现一件部署呢?实现:那么我就来快速搭建并且测试一下,步骤如下。1、你已经成功安装了node。2、快速搭建一个项目:使用express的应用程序生成器npx express-generator。具体实现如下:https://www.expressjs.com.cn/en/starter/gener...
2020-04-29 10:46:01 1695 1
原创 Resuful和OpenApi_http的几种请求方式
ResufulResuful是一种开发思想,是一种网络应用程序的设计风格和开发方式,基于http,可以使用xml或者json格式定义。具体可以查看Resuful的百度百科。总结起来的话就是:每一个URI代表一种资源客户端和服务器之间,传递这种资源的某种表现层客户端通过http的几种请求方式,对服务器资源进行操作,实现“表现层状态转化”请求的URI是不应该包含动词的,动词完全由get、...
2020-04-27 10:23:27 3236
原创 Nodejs使用Oauth2协议实现第三方登录GitLab
简述目前有一个功能需要将自己创建的登录注册功能的httpserver使用GitLab来登录自己的系统,而不需要每次登录HttpServer系统都要重新注册一个用户。(注意:是GitLab而不是GitHub哦)Oauth2原理部分原理部分,我在找文档的时候发现一篇挺好,讲解清楚,在此粘贴:https://www.cnblogs.com/wudimanong/p/10821215.htmlN...
2020-04-10 16:33:19 2120
原创 Nodejs模块化开发
前言对nodejs入门之后,我们经常会发现,代码中经常会出现require(’’)这样的代码,nodejs菜鸟教程的创建的第一个应用就使用到了require指令来载入http模块,并将实例化的http赋值给变量http。那么所谓的模块又是什么?今天将从require开始,进入模块的世界require(’’)方法require()是接收模块标识符参数,然后node根据一定的规则引入该模块之后,...
2020-04-03 15:03:49 217
原创 express中间件
简述Express项目底层就是由许多中间件在协同工作,简单来说,一个express应用就是在调用各种中间件。中间件描述中间件简单来说是功能的封装,就是封装在程序中处理http请求的功能,最终为路由提供服务。更简单来说,理解为拦截器中间件有一个next()函数,如果不调用next函数,请求就在这个中间件终止功能:执行任何代码修改请求和响应对象终结请求-响应循环:可以在处理请求之后,...
2020-04-01 17:38:29 229
原创 Nodejs入门思想
以下是讲解nodejs的方向列表一、Nodejs特点二、Nodejs模块化三、Nodejs异步回调四、Nodejs爬虫五、Nodejs中间件一、Nodejs特点Node是单线程_不需要为每一个客户端连接创建新线程,当有用户连接了,就触发一个内部时间,通过非阻塞IO,让Nodejs程序宏观上并行非阻塞I/O:Nodejs通过回调函数(Callback)和异步机制异步、事件驱动模型...
2020-04-01 14:57:40 200
原创 tomcat底层原理_浅入
本文将从4个方向讲述tomcat容器一、tomcat中四大servlet容器二、tomcat执行请求流程解析三、tomcat与socket/tcp/http协议关系四、tomcat io模型解析Tomcat重要性:web项目都需要tomcat,其作用用于连接用户和后台,图如下:一、Tomcat中四大servlet容器想必大家都知道Tomcat是servlet容器,其实Tomcat...
2020-03-16 10:22:45 320
原创 springboot入门
一、优点1、快速创建独立运行的spring项目以及与主流框架集成2、使用嵌入式的servlet容器,应用无需打成war包3、starters自动依赖与版本控制4、大量的自动配置,简化开发,也可修改默认值5、无需配置xml,无代码生成,开箱即用6、准生产环境的运行时应用监控7、与云计算的天然集成二、helloWord探究1、POM文件(1)父项目 <parent>...
2020-02-13 17:00:22 137
原创 springboot实际开发技巧总结
一、springboot搭建应用方式(1)idea直接实现创建springboot项目(2)官网下载一个springboot的项目demo,并且导入开发软件中二、项目配置1、单个配置,使用注解@Valueapplication.yml中配置(在配置中使用配置):minMoney: 2description: 最少要发${minMoney}2、对象配置@ConfigurationPr...
2020-02-13 12:12:40 492
原创 springboot配置全局的异常捕获
有些异常直接抛给用户,体验不好,所以一般会采用异常捕获的功能实现。以下是实现异常捕获的一个小demo1、模拟代码出现错误@Controller@RequestMapping("err")public class ErrorController{ @RequestMapping("/error") public String error(){ int a=1/0; retur...
2020-02-11 11:48:03 224
原创 springboot实现热部署
springboot实现热部署所谓热部署是在修改完文件之后,不需要手工进行重启实现步骤:一、在pom.xml文件中添加依赖1、devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application文件中配置spring.thymeleaf.cache=fasle来实现)2、实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署3、即devtool...
2020-02-10 16:48:55 116
原创 连接池
1、连接池问题:连接池是什么,有什么用?连接池:就是创建一个容器,用于装入多个connection对象,在使用连接对象时,从容器中获取一个connection,使用完成后,在将这个connection重新装入到容器中。这个容器就是连接池(DataSource),也叫做数据源。我们可以通过连接池获取连接对象,优点:节省连接与释放连接 性能消耗–连接池中连接起到复用的作用,提高程序性能、、、...
2020-01-14 11:51:49 1515
原创 事务解释
1、事务是什么?用处事务就是一个事情,组成这个事情可能有多个单元,要求这些单元,要么全部成功,要么全部不成功。在开发中,有事务的存在,可以保证数据完整性。2、事务怎么操作?(1)MySQL下怎么操作方式一:start transaction 开启事务rollback 事务回滚commit 事务提交方式二:通过show variables like '%commit%'...
2020-01-14 10:50:50 182
原创 Git入门使用
1、Git简介1、Git是一个源代码管理工具2、管理源代码让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化。3、Git之前很多使用svn,vss等。网站:https://guides.github.com/2、安装Git(1)Git命令行工具(2)基于Git命令行的一个客户端软件(提供一个界面去管理源代码)3、Git命令操作(1)初始化一个本地Git仓储cd 当前...
2020-01-06 10:53:10 109
原创 cxf入门和练习
一、什么是cxfApache CXF=Celtix+Xfire支持多种协议:1)SOAP1.1,1.22)HTTP3)可以与spring进行快速无缝整合4)灵活部署:可以运行有tomcat,JBoss,Jetty(内置),IBMWS上面。二、环境搭建1)JAVA_HOME,需要jdk的支持2)CXF_HOME三、实现cxf第一个示例1、创建java项目2、引入所有依赖的包...
2020-01-05 15:17:01 565
原创 WebService客户端和服务端代码实现
一、客户端1、生成客户端代码(1)wsimport是jdk自带的,可以根据wsdl文档生成客户端调用代码的工具。当然,无论服务器端的WebService是用什么语言写的,都将在客户端生成java代码。服务器端用什么写不重要。(2)wsimport.exe位于JAVA_HOME\bin目录下。常用参数:-d<目录> -将生成.class文件。默认参数。-s<目录>...
2020-01-04 20:53:05 787
原创 WebService知识储备1
1、学习WebService调用的预备知识(1)XML:Extensible Markup Language—扩展性标记语言XML,用于传输格式化的数据,是web服务的基础namespace–命名空间xmlns=“http://itcast.cn” 使用默认命名空间xmlns:itcast=“http://itcast.cn” 使用指定名称的命名空间(2)WSDL:webServ...
2020-01-04 19:03:01 122
原创 shiro与项目整合(spring环境)
1、shiro的jar包shiro-web的jar、shiro-spring的jar、shiro-core的jar2、在web.xml中配置shiro的filter在web系统中,shiro也通过filter进行拦截。filter拦截后加你个操作权交给spring中配置的filterChain(过滤链),shiro也提供很多filter。在web.xml中配置filter<!-- ...
2020-01-02 12:21:01 142
原创 shiro授权入门
1、授权流程2、三种授权方法shiro支持三种方式的授权:1、编程时,通过写if/else授权代码Subject subject = SecurityUtils.getSubject();if(subject.hasRole(“admin”)) {//有权限} else {//无权限}2、注解式:通过在执行的java方法上放置相应的注解完成:@RequiresRoles...
2020-01-01 19:57:01 99
原创 权限控制
1、什么是权限管理权限管理是系统的安全范畴,要求必须是合法的用户才可以访问系统(用户认证),且必须具有该资源的访问权限才可以访问该资源(授权)。认证:对用户合法身份的校验,要求必须是合法的用户才可以访问系统。授权:访问控制,必须具有该资源的访问权限才可以访问该资源。权限模型:标准权限数据模型包括:用户、角色、权限(包括资源和权限)、用户角色关系、角色权限关系。权限分配:通过UI界面方便给...
2019-12-31 17:03:45 430 1
原创 Hadoop序列化
Hadoop没有使用jdk的序列化机制,因为hadoop只需要数据进行传递,而jdk的当有继承什么的,特别的麻烦。序列化概念:1)序列化(Serializable)是指把结构化对象转化为字节流2)反序列化(Deserializable)是序列化的逆过程。即把字节流转回结构化对象3)java序列化(java.io.Serializable)Hadoop序列化特点:1、紧凑:高效使用存储空...
2019-11-17 21:08:51 391
原创 MapReduce概述和例子实现
MapReduce概述:MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题。MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单。这两个函数的形参是key,value对,表示函数的输入信息。执行步骤:1、map任务处理1.1读取输入文件内容,解析成key、value对...
2019-11-17 20:39:55 188
原创 MapReduce讲述1.0的讲解
MapReduce概述:MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题。MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单。这两个函数的形参是key,value对,表示函数的输入信息。执行步骤:1、map任务处理1.1读取输入文件内容,解析成key、value对...
2019-11-15 19:35:26 257
原创 HDFS读写过程
HDFS读过程:1、初始化FileSystem,然后客户端(client)用FileSystem的open()函数打开文件。2、FileSystem用RPC调用元数据节点,得到文件的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。3、FileSystem返回FSDataInputStream给客户端,用来读取数据,客户端调用stream的read()函数开始读取数据。...
2019-11-11 14:58:55 207
原创 Hadoop的Rpc
Remote Procedure Call(1)RPC–远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。Rpc协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,rpc跨越了传输层和应用层。rpc使得开发包括网络分布式多程序在内的应用程序更加容易。(2)rpc采用客户机/服务器模式。请求程序就是一个客户...
2019-11-07 16:12:14 188
原创 hadoop的基础讲解
一、DataNode1、提供真实文件数据的存储服务。(1)文件块(block):最基本的存储单元。对于文件内容而言,一个文件的长度大小是size,那么文件从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个block。HDFS默认block大小是128MB,以一个256MB文件,共有256/128=2个block。(2)不同于普通文件系统的是,HDFS中,如果...
2019-11-07 15:09:34 229
原创 Hadoop的SecondaryNameNode
一、secondaryNameNode讲述1、HA的一个解决方案,但是不支持热备。配置即可。2、执行过程,从NameNode上下载元数据信息(fsimage,edits),然后把两者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage。3、默认在安装在NameNode节点上,但是这样不安全。二、工作流程1、secondary通知NameNode切...
2019-11-07 15:03:26 358
原创 Hadoop的NameNode
1、NameNode Metadata2、NameNode介绍(1)是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。(2)文件包括:fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。edits:操作日志文件。fstime:保存最近一次checkpoint的时间。以上这些文件是保存...
2019-11-07 14:24:35 742
原创 Hadoop之hdfs的shell
1、调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。2、所有的FS shell命令使用URI路径作为参数。URI的格式是scheme://authority/path。HDFS的scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。例如:/paren...
2019-11-06 16:21:15 119
原创 hadoop搭建环境实现ssh免登陆
在完成分布式系统之后:Hadoop搭建伪分布式配置ssh免登陆密钥,因为Hadoop的底层就是ssh,每次启动都需要进行输入密码1、生成ssh免登陆密钥ssh-keygen -t rsa执行完之后,产生两个文件id_rsa(私钥)、id_rsa.pub(公钥),将公钥拷贝到要免登陆的机器上cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized...
2019-11-06 14:30:26 154 1
原创 hdfs的web端口
HDFS对外提供了可访问的http server,开放了很多端口,下面介绍几个常用的端口:50070端口,查看NameNode状态50075端口,查看DataNode50090端口,查看secondaryNameNode50030端口,查看JobTracker状态50060端口,查看TaskTracker...
2019-11-06 11:03:22 6185
httpServer.zip
2020-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人