node

前端知识体系-NodeJS相关】NodeJS基础知识全面总结

让人想犯罪 __ 提交于 2019-12-06 03:34:59
NodeJS基础知识 1. Node的全局对象和全局变量 1.1 全局对象:所有模块都可以调用的 global:表示Node所在的全局环境,类似于浏览器的window对象。 process:该对象表示Node所处的当前进程,允许开发者与该进程互动。 console:指向Node内置的console模块,提供命令行环境中的标准输入、标准输出功能。 1.2 全局函数 定时器函数:共有4个,分别是setTimeout(), clearTimeout(), setInterval(), clearInterval(); require:用于加载模块; Buffer():用于操作二进制数据。 1.3 全局变量 __filename:指向当前运行的脚本文件名。 __dirname:指向当前运行的脚本所在的目录。 2. Node的三大特点 2.1 单线程 Node.js不为每个客户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞I/O、事件驱动机制,让Node.js程序宏观上也是并行的。 2.2 非阻塞I/O 由于Node.js中采用了非阻塞型I/O机制,因此在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。 当某个I/O执行完毕时,将以事件的形式通知执行I/O操作的线程

详解Condition的await和signal等待/通知机制

谁说胖子不能爱 提交于 2019-12-06 03:34:59
本人免费整理了Java高级资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G,需要自己领取。 传送门: https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q 1.Condition简介 任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等待/通知机制,同样的, 在java Lock体系下依然会有同样的方法实现等待/通知机制。从整体上来看Object的wait和notify/notify是与对象监视器配合完成线程间的等待/通知机制,而Condition与Lock配合完成等待通知机制,前者是java底层级别的,后者是语言级别的,具有更高的可控制性和扩展性。两者除了在使用方式上不同外,在功能特性上还是有很多的不同: Condition能够支持不响应中断,而通过使用Object方式不支持; Condition能够支持多个等待队列(new 多个Condition对象),而Object方式只能支持一个;

Consul 简介及集群安装

浪子不回头ぞ 提交于 2019-12-06 03:34:55
简介 Consul是基于GO语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。 Consul的功能都很实用,其中包括:服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等特性。 Consul本身只是一个二进制的可执行文件,所以安装和部署都非常简单,只需要从官网下载后,在执行对应的启动脚本即可。 官网下载地址: https://www.consul.io/downloads.html 特性 基础特性 服务注册/发现 数据强一致型保证 多数据中心 健康检查 Key/Value存储 高级特性 HTTP API ACL 工作模式 Consul中包括的3种不同的角色:Client、Server、Server-Leader。 还有一个在图上没有标出来的角色Agent,一共4个角色。 Agent 是一个守护线程 跟随Consul应用启动而启动 负责检查、维护节点同步 Client 转发所有请求给Server 无状态, 不持久化数据 参与LAN Gossip的健康检查 Server 持久化数据 转发请求给Server-Leader 参与Server-Leader选举 通过WAN Gossip(流言算法协议, Cassandra和比特币的底层算法, 符合弱一致性), 与其他数据中心交换数据 Server-Leader 响应RPC请求

k8s 修改节点角色和删除节点

旧时模样 提交于 2019-12-06 02:57:21
修改节点角色: kubectl label nodes cn-thin05 node-role.kubernetes.io/node= 卸载节点: kubectl drain jupiter --delete-local-data --force --ignore-daemonsets 删除节点: kubectl delete node jupiter 清空init配置,需要删除的节点上执行 kubeadm reset 来源: https://www.cnblogs.com/lph970417/p/11959373.html

【集合系列】- 深入浅出分析HashMap

痞子三分冷 提交于 2019-12-06 02:36:43
一、摘要 在集合系列的第一章,咱们了解到,Map的实现类有HashMap、LinkedHashMap、TreeMap、IdentityHashMap、WeakHashMap、Hashtable、Properties等等。 关于HashMap,一直都是一个非常热门的话题,只要你出去面试,我保证一定少不了它! 本文主要结合JDK1.7和JDK1.8的区别,就HashMap的数据结构和实现功能,进行深入探讨,废话也不多说了,直奔主题! 二、简介 在程序编程的时候,HashMap是一个使用非常频繁的容器类,它允许键值都放入null元素。除该类方法未实现同步外,其余跟Hashtable大致相同,但跟TreeMap不同,该容器不保证元素顺序,根据需要该容器可能会对元素重新哈希,元素的顺序也会被重新打散,因此不同时间迭代同一个HashMap的顺序可能会不同。 HashMap容器,实质还是一个哈希数组结构,但是在元素插入的时候,存在发生hash冲突的可能性; 对于发生Hash冲突的情况,冲突有两种实现方式, 一种开放地址方式(当发生hash冲突时,就继续以此继续寻找,直到找到没有冲突的hash值),另一种是拉链方式(将冲突的元素放入链表) 。 Java HashMap采用的就是第二种方式,拉链法。 在jdk1.7中,HashMap主要是由数组+链表组成,当发生hash冲突的时候

npm cnpm node yarn

谁说胖子不能爱 提交于 2019-12-06 02:11:35
1、yarn: windows 下需要下载msi文件, 2、npm,node 安装绿色版本 3、cnpm安装:npm install -g cnpm --registry=https://registry .npm .taobao .org(解决了npm ERR! code: 'EPERM'问题) 4、使用国内镜像加速npm和yarn   npm config set registry=https://registry.npm.taobao.org   yarn config set registry https://registry.npm.taobao.org 来源: https://www.cnblogs.com/wenbolwm/p/11956324.html

八、安装flannel集群网络

≡放荡痞女 提交于 2019-12-06 02:09:14
1、安装cni插件 二进制包下载地址:https://github.com/containernetworking/plugins/releases [root@k8s-master01 node]# mkdir cni/bin -p [root@k8s-master01 node]# tar xf cni-plugins-linux-amd64-v0.8.2.tgz -C cni/bin/ [root@k8s-master01 node]# scp -r cni k8s-node01:/opt/ [root@k8s-master01 node]# scp -r cni k8s-node02:/opt/ [root@k8s-master01 node]# scp -r cni k8s-node03:/opt/ #mkdir -p /etc/cni/net.d [root@k8s-node01 ~]# ls /etc/cni/ net.d [root@k8s-node02 ~]# ls /etc/cni/ net.d [root@k8s-node03 ~]# ls /etc/cni/ net.d 2、部署flannel 文档说明 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create

Windows下如何更新node.js

别等时光非礼了梦想. 提交于 2019-12-06 02:08:20
因为在Windows下是没有n模块的并不支持 npm install -g n n latest 更新 ,所以只能老老实实安装 1.在Path环境变量下查看自己的node.js安装路径 计算机-属性-高级系统设置-环境变量-系统变量,在path下找到自己的安装位置 2.在node官网下载最新的版本 下载完成后打开安装包进行安装 注意:安装地址一定要覆盖原版本的地址 然后一路下一步,安装完成 3.最后打开命令行,查看版本发现更新成功了 Windows 下Npm和NodeJS升级 前提电脑中已经安装过NodeJS, npm。现在需要进行升级操作。 1、查看当前的npm和NodeJs的版本: C:\Users\Administrator>node -v v4.4.3 C:\U... 来源: CSDN 作者: 芜菁甘蓝_F 链接: https://blog.csdn.net/www_baid_com/article/details/81391547

七、安装node

孤者浪人 提交于 2019-12-06 02:07:45
1、安装docker,在Node节点上面操作 yum安装 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum list --showduplicates |grep docker-ce yum install -y docker-ce-17.12.1.ce-1.el7.centos 二进制安装 二进制包下载地址:https://download.docker.com/linux/static/stable/x86_64/ wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.3.tgz tar xf docker-18.09.3.tgz mv docker/* /usr/bin mkdir /etc/docker cat /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https:/

关于安装gulp-sass失败的问题解决

时光毁灭记忆、已成空白 提交于 2019-12-06 02:07:39
该文章所介绍的问题均是在64位win8下出现的。 网络原因导致gulp-sass安装失败 如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件。 执行安装gup-sass的命令 $ npm install gulp -sass -- save -dev 这个过程中会先安装 node-sass ,因为 gulp-sass 依赖于 node-sass 。中间出现的错误信息类似下面这样: Cannot download https: / /github.com/sass /node-sass/releases /download/v 3. 4.2 /win32-x64- 46_ bind 处理思路 看现象很有可能是这些二进制文件使用了 GitHub 的 lfs 服务,而 lfs 使用的是亚马逊云,由于网络原因,这些服务器无法访问。 现在解决问题的办法思路就很清晰了,下载源码自己编译一个这样的二进制文件,或下载官方的二进制文件。只要解决该文件的下载问题就可以继续往后安装。 打开 github 看一下该项目 https://github.com/sass/node-sass ,在 releases 页面能找到下失败的文件 win32-x64-46_binding