node

生成器-generator

时光毁灭记忆、已成空白 提交于 2019-12-21 09:07:35
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ? 我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。 如何产生斐波拉契数列? 斐波那契数列 (Fibonacci sequence),又称 黄金分割 数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“ 兔子数列 ”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以 递归 的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) 许多初学者都可以写出下面的函数: 方法一: 1 # 生成斐波那契数列前n个元素 2 def fab(n): 3 i = 0 4 a, b = 0, 1 5 while i < n: 6 print(a) 7 a, b = b, a + b 8 i += 1 执行 fab(6) 得出前6个元素: 0 1 1 2 3 5 结果没有问题,但函数的返回值为None,别的函数无法获取结果,复用性很差, 要提高 fab 函数的可复用性,最好不要直接打印出数列,而是返回一个 List。以下是 fab 函数改写后的第二个版本: 方法二: 1 #

k8s的容器编排

可紊 提交于 2019-12-21 07:27:09
1、K8S是如何对容器编排? 在K8S集群中,容器并非最小的单位,K8S集群中最小的调度单位是Pod,容器则被封装在Pod之中。由此可知,一个容器或多个容器可以同属于在一个Pod之中。 2、Pod是怎么创建出来的? Pod并不是无缘无故跑出来的,它是一个抽象的逻辑概念,那么Pod是如何创建的呢?Pod是由Pod控制器进行管理控制,其代表性的Pod控制器有Deployment、StatefulSet等。 3、Pod资源组成的应用如何提供外部访问的? Pod组成的应用是通过Service这类抽象资源提供内部和外部访问的,但是service的外部访问需要端口的映射,带来的是端口映射的麻烦和操作的繁琐。为此还有一种提供外部访问的资源叫做Ingress。 4、Service又是怎么关联到Pod呢? 在上面说的Pod是由Pod控制器进行管理控制,对Pod资源对象的期望状态进行自动管理。而在Pod控制器是通过一个YAML的文件进行定义Pod资源对象的。在该文件中,还会对Pod资源对象进行打标签,用于Pod的辨识,而Servcie就是通过标签选择器,关联至同一标签类型的Pod资源对象。这样就实现了从service-->pod-->container的一个过程。 5、Pod的怎么创建逻辑流程是怎样的? (1)客户端提交创建请求,可以通过API Server的Restful API

二叉树的链式实现

↘锁芯ラ 提交于 2019-12-21 07:21:22
相关术语: 平衡树,非平衡树,完全数,满树。 实现策略: 1)数组实现 这个还是非常重要的,有时间写一下,先用链来写 元素n的(从0开始按层编号)左子树编号为2n+1,右子树编号为2n+2,数学证明就略了,用这个来控制下标 2)模拟链式实现 3)链式实现 树是一种非线性结构,那么跟前不一样,必须根据你的需求 来构造新的节点才能满足树中的节点特征 : package Tree;public class BinaryTreeNode { protected Object element; protected BinaryTreeNode left,right; public BinaryTreeNode(Object element)//用元素来构造一个结点 { this.element = element; left = null; right = null; } public int numChildren(){//返回结点的子树上结点的个数 int count = 0; if(left != null) count = 1 + left.numChildren(); if(right != null) count = count + 1 + right.numChildren(); return count; } } 下面是一个实现了一些基本操作的二叉树的ADT

windows下配置nodejs

大憨熊 提交于 2019-12-21 06:56:10
1.下载安装 去 nodejs 下载node.msi安装文件包 2.设置环境变量 [新版本都不需要设计环境变量了,软件会自动写入环境变量] 计算机(或者我的电脑)右击属性-》高级系统设置-》环境变量。 新建一个用户变量。 变量名:NODE_PATH 值:C:\Program Files\nodejs\node_modules 注意:值为nodejs安装目录 3.测试 随便找个项目文件夹,再里面新建一个service文件夹,我的目录是E:\nodetest\service 注意:此路径不能有中文 再在里面新建一个UTF-8编码的js文件、文件名字随便起、我的文件叫test.js 在js文件里面增加入下代码 var http=require('http'); http.createServer(function (request,response){ response.writeHead(200,{'Content-Type':'text/plain'}) response.end("hello,world\n"); }).listen(8887); console.log('Server runing at http://127.0.0.1:8887'); 4.运行 启动nodejs服务,window键+R,输入cmd然后回车 在命令行窗口中输入node E:\nodetest

nvm工具

不打扰是莪最后的温柔 提交于 2019-12-21 04:32:51
nvm工具 nvm简介 nvm是node version manager的简称,是nodeJs的版本管理器,他可以在一台主机上对node的版本进行方便的切换。我尝试了一下window的,但是不行,你可以试试nvm-windows 切换node版本命令为: nvm install 5.0//(版本号) nvm use 5.0//使用切换的版本 nvm的官方版只支持linux和mac,但是如果你的window兼容性处理能力较强的话,也可以在window下操作,我也是在windows下操作的: nvm安装 执行命令: wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash 或是 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash 常用命令 nvm install 用来下载各种版本的node nvm ls用来查看本机中所有的node版本 来源: https://www.cnblogs.com/yehui-mmd/p/6953385.html

源码安装ELK-5.6.10版本

百般思念 提交于 2019-12-21 04:01:15
目录: 一、介绍 二、安装JDK 三、安装Elasticsearch 四、安装Kibana 五、安装Nginx 六、安装Logstash 七、安装Logstash-forwarder 八、测试 系统环境:CentOS Linux release 7.4.1708 (Core) 软件版本: elasticsearch-5.6.10 kibana-5.6.10 logstash-5.6.10 当前问题状况 开发人员不能登录线上服务器查看详细日志。 各个系统都有日志,日志数据分散难以查找。 日志数据量大,查询速度慢,或者数据不够实时。 一、介绍 1、组成 ELK由Elasticsearch、Logstash和Kibana三部分组件组成; Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用 kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。 2、四大组件 Logstash: logstash server端用来搜集日志; Elasticsearch: 存储各类日志

【node】node的核心模块---http模块,http的服务器和客户端

巧了我就是萌 提交于 2019-12-21 03:35:28
nodejs事件机制 ##### http服务器和客户端 node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 HTTP服务器 1. http.createServer()创建HTTP服务器。 //服务器实例 var httpServer = require("http") httpServer.createServer(function(req,res){ res.writeHead(200,{"Content-Type":"text/html"}); res.write("<h2>hello world</h2>"); res.end("<h3>你好</h3>"); }).listen(2333); console.log("http server is listening at port 2333,localhost:2333"); 将一个函数作为HTTP请求处理函数,这个函数接受两个参数,分别是请求对象(req)和响应对象(res),在函数体内,res显式的写回了响应代码200(表示请求成功),指定响应头为"Content-Type":"text/html",然后写入响应体通过res.end()结束并发送,最后调用listen函数,启动服务器并且监听2333端口。 运行之后,我们在浏览器打开localhost:2333

docker swarm

女生的网名这么多〃 提交于 2019-12-21 01:43:58
https://blog.csdn.net/wanglei_storage/article/details/77508620 实践中会发现,生产环境中使用单个 Docker 节点是远远不够的,搭建 Docker 集群势在必行。然而,面对 Kubernetes, Mesos 以及 Swarm 等众多容器集群系统,我们该如何选择呢?它们之中,Swarm 是 Docker 原生的,同时也是最简单,最易学,最节省资源的,比较适合中小型公司使用。 Docker Swarm 介绍 Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。目前,Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。它可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。 Docker Swarm 是一个为 IT 运维团队提供集群和调度能力的编排工具。用户可以把集群中所有 Docker Engine 整合进一个「虚拟 Engine」的资源池,通过执行命令与单一的主 Swarm 进行沟通,而不必分别和每个 Docker Engine 沟通。在灵活的调度策略下,IT 团队可以更好地管理可用的主机资源

Node.js学习阶段(2)

ぃ、小莉子 提交于 2019-12-20 22:08:03
1.在node中有一个全局对象 global,它的作用和网页中window类似 在全局中创建的变量都会作为global的属性保存 在全局中创建的函数都会作为global的方法保存 当node在执行模块中的代码时,它会首先在代码的最顶部,添加如下代码 function (exports, require, module, __filename, __dirname) { 在代码的最底部,添加如下代码 } 实际上模块中的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递进了5个实参 exports - 该对象用来将变量或函数暴露到外部 require - 函数,用来引入外部的模块 module - module代表的是当前模块本身 - exports就是module的属性 - 既可以使用 exports 导出,也可以使用module.exports导出 __filename C:\Users\lilichao\WebstormProjects\class0705\01.node\04.module.js - 当前模块的完整路径 __dirname C:\Users\lilichao\WebstormProjects\class0705\01.node - 当前模块所在文件夹的完整路径 2.exports 和 module.exports 通过exports只能使用

Rust:enum私有性问题

白昼怎懂夜的黑 提交于 2019-12-20 19:52:01
在 Learn Rust With Entirely Too Many Linked Lists 中有这样一个问题,以下代码再编译的时候会报错 struct Node { elem: i32, next: List, } pub enum List { Empty, More(Box<Node>), } 这是因为虽然List的是pub的但是List是enum,它的取值中有一个私有的Node,虽然声明List为pub但是这样做会暴露私有成员因此编译会报错。 来源: CSDN 作者: 时间海YYY 链接: https://blog.csdn.net/qq_18474813/article/details/103629854