node

[k8s]-k8s入门

依然范特西╮ 提交于 2020-02-29 22:56:21
第1章 k8s系统架构 从系统架构来看,k8s分为2个节点 Master 控制节点 指挥官 Node 工作节点 干活的 1.Master节点组成 API Server :提供k8s API接口 主要处理Rest操作以及更新Etcd中的对象 是所有资源增删改查的唯一入口。 Scheduler:资源调度器 根据etcd里的节点资源状态决定将Pod绑定到哪个Node上 Controller Manager 负责保障pod的健康存在 资源对象的自动化控制中心,Kubernetes集群有很多控制器。 Etcd 这个是Kubernetes集群的数据库 所有持久化的状态信息存储在Etcd中 2.Node节点的组成 Docker Engine 负责节点容器的管理工作,最终创建出来的是一个Docker容器。 kubelet 安装在Node上的代理服务,用来管理Pods以及容器/镜像/Volume等,实现对集群对节点的管理。 kube-proxy 安装在Node上的网络代理服务,提供网络代理以及负载均衡,实现与Service通讯。 第2章 k8s逻辑架构 从逻辑架构上看,k8s分为 Pod Controller Service 1.POD POD是k8s的最小单位 POD的IP地址是随机的,删除POD会改变IP POD都有一个根容器 一个POD内可以由一个或多个容器组成

框架源码深入需要准备的知识之解析XML

让人想犯罪 __ 提交于 2020-02-29 21:48:39
1.DOM解析XML DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = documentBuilder.parse(new FileInputStream(file)); 得到的Document对象就是XML文档对象的实体 NodeList nodeList = document.getElementsByTagName("book"); 得到标签名称是book的节点集合 Node和Element的区别: node和Element是两个领域的概念。 NODE是相对TREE这种数据结构而言的。TREE就是由NODE组成。这个部分你可以参考离散数学的树图。 ELEMENT则是XML里的概念,<xxx>就是元素,是XML中的数据的组成部分之一。 元素(Element)和结点(Node)的区别,元素是一个小范围的定义,必须是含有完整信息的结点才是一个元素, 例如<div>...</div>。但是一个结点不一定是一个元素,而一个元素一定是一个结点。 举例来说: <book

深入浅出NodeJS——异步I/O

一个人想着一个人 提交于 2020-02-29 19:36:50
底层操作系统,异步通过信号量、消息等方式有着广泛的应用。 PHP语言从头到尾都是以同步堵塞方式执行,利于程序猿顺序编写业务逻辑。 异步I/O、事件驱动、单线程构成Node的基调。 why异步I/O (1)、用户体验 在Web2.0中Ajax广泛应用异步刷新机制能够更好的提高用户体验,消除UI堵塞。后端相同採用异步I/O能够有效较少同一时候请求多个资源的效应时间其为max(M,N)。 (2)、资源分配 多任务主流方式: a. 单线程异步I/O b. 多线程并行 多线程的代价在于创建线程和运行期线程上下午切换的开销较大。在复杂场景中,多线程常常面临锁、状态同步的问题。但多线程能够更有效的利用多核CPU,提高利用率。 NodeJS利用单线程远离多线程死锁、状态同步等问题;利用异步I/O,让单线程远离堵塞,以更好利用CPU。 为了弥补单线程无法利用多核CPU特点,Node採用类似Web Workers的子进程。 异步I/O 操作系统内核对于I/O仅仅有两种方式:堵塞和非堵塞 堵塞I/O一个特点是调用之后一定要等到系统内核层面完毕全部操作后,调用才结束。其造成CPU等待I/O,浪费时间和资源,CPU利用不充分。 非堵塞I/O不同之处在于调用之后会马上返回。其问题在于为了获取完整的数据,应用程序须要反复调用I/O操作来确认是否完毕,这样的反复调用判定是否完毕的技术叫做 轮询 堵塞I

LeetCode 208 - Implement Trie (Prefix Tree)

此生再无相见时 提交于 2020-02-29 17:20:57
一、问题描述 D e s c r i p t i o n : Implement a trie with insert, search, and startsWith methods. N o t e : You may assume that all inputs are consist of lowercase letters a-z . 二、解题报告 什么是trie树,trie树有哪些应用,怎么实现trie树,请看《 Trie树的应用与实现 》。 直接上代码: class TrieNode { public: bool iskey; // 标记该节点是否代表关键字 TrieNode *children[26]; // 各个子节点 TrieNode() { iskey = false; for(int i=0; i<26; ++i) children[i] = NULL; } }; class Trie { public: Trie() { root = new TrieNode(); } // 插入一个单词到trie树中 void insert(string s) { TrieNode* node = root; for(int i=0; i<s.size(); ++i) { if(node->children[s[i]-'a'] == NULL) { node-

1-8 数组的maxtree

痴心易碎 提交于 2020-02-29 17:17:43
题目描述 一个数组的maxtree定义如下: 数组没有重复元素,包括maxtree在内的每个子树都是根节点最大,而且maxtree是二叉树。 给定一个没有重复元素的数组arr,要求生成这个数组对应的maxtree,且时间复杂度和空间复杂度都要求为n。 解题方法1 一个数组的matree不是唯一的,但是我们要的是符合时间复杂度和空间复杂度的构建方法。 那么如何尽快找到每个数左右两侧第一个比他大的数呢?可以使用栈,如果寻找每个数左边第一个比他大的数,每遍历一个新的数就将它与栈顶比较,小于栈顶入栈,大于栈顶让栈顶出栈直到小于当前栈顶或栈空。 如【3 1 2】,遍历到3时栈为空说明3没有左边比他大的数,3入栈,遍历到1时1小于3则1左边第一个比他大的数是3,1入栈。遍历到2时1出栈,2入栈说明2左边第一个大于他的数是3。 这样我们就可以以比较低的时间复杂度找到每个元素的左右第一个比他大的数,进而找到每个元素的父节点。 然后我们要申请两个哈希表,分别存储每个节点左边第一个大的节点和右边第一个大的节点,key为当前节点,value为当前节点左边第一个大的元素节点或右边。 最后利用这两个哈希表遍历所有节点找到当前节点父节点,梳理父子节点映射关系,构建二叉树。 public class Test { public static void main ( String [ ] args ) { int

6-6 学生成绩链表处理 (20分)

时间秒杀一切 提交于 2020-02-29 16:47:45
本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。 函数接口定义: struct stud_node * createlist ( ) ; struct stud_node * deletelist ( struct stud_node * head , int min_score ) ; 函数createlist利用scanf从输入中获取学生的信息,将其组织成单向链表,并返回链表头指针。链表节点结构定义如下: struct stud_node { int num ; /*学号*/ char name [ 20 ] ; /*姓名*/ int score ; /*成绩*/ struct stud_node * next ; /*指向下个结点的指针*/ } ; 输入为若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束。 函数deletelist从以head为头指针的链表中删除成绩低于min_score的学生,并返回结果链表的头指针。 # include <stdio.h> # include <stdlib.h> struct stud_node { int num ; char name [ 20 ] ; int score ; struct stud_node * next ; } ; struct stud_node

Module build failed: Error: Cannot find module 'node-sass'报错问题

微笑、不失礼 提交于 2020-02-29 09:45:24
由于重新装了一个系统,很多环境配置要重新配置。在想run 一个项目时,出现下面的错误: error in ./src/page/Index.vue Module build failed: Error: Cannot find module 'node-sass' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15) at Function.Module._load (internal/modules/cjs/loader.js:507:25) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:22:18) at Object.sassLoader (E:\trip_user_ui\node_modules\sass-loader\lib\loader.js:46:72) @ ./node_modules/vue-style-loader!./node_modules/css-loader?{"sourceMap":false}!./node_modules/vue-loader/lib/style-compiler?{"vue"

kubernetes容器编排系统介绍

a 夏天 提交于 2020-02-29 09:13:45
版权声明:本文由turboxu原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/152 来源:腾云阁 https://www.qcloud.com/community Kubernetes作为容器编排生态圈中重要一员,是Google大规模容器管理系统borg的开源版本实现,吸收借鉴了google过去十年间在生产环境上所学到的经验与教训。 Kubernetes提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用。当前Kubernetes支持GCE、vShpere、CoreOS、OpenShift、Azure等平台,除此之外,也可以直接运行在物理机上.kubernetes是一个开放的容器调度管理平台,不限定任何一种言语,支持java/C++/go/python等各类应用程序 。 kubernetes是一个完备的分布式系统支持平台,支持多层安全防护、准入机制、多租户应用支撑、透明的服务注册、服务发现、内建负载均衡、强大的故障发现和自我修复机制、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力,完善的管理工具,包括开发、测试、部署、运维监控,一站式的完备的分布式系统开发和支撑平台。 一. 系统架构

CentOS7.5安装nodejs

假装没事ソ 提交于 2020-02-29 05:40:02
安装方法1——直接部署 1.首先安装wget yum install -y wget 如果已经安装了可以跳过该步 2.下载nodejs最新的tar包 可以在下载页面 https://nodejs.org/en/download/ 中找到下载地址。然后执行指令 wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz 然后就是等着下载完毕。 另外你也可以在你喜欢的任意系统上下载最新的bin包,然后通过FTP上传到CentOS上。 3.解压包 依次执行 tar -xvf node-v9.3.0-linux-x64.tar.xz 4. 部署bin文件 先确认你nodejs的路径,我这里的路径为~/node-v9.3.0-linux-x64/bin。确认后依次执行 ln -s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npm 注意ln指令用于创建关联(类似与Windows的快捷方式)必须给全路径,否则可能关联错误。 5.测试 node -v npm 如果正确输出版本号,则部署OK 这种安装的方法好处是比较干净,安装也比较快速。个人认为比较适合新手

STL源码剖析学习十:红黑树的实现

隐身守侯 提交于 2020-02-29 05:39:27
STL源码剖析学习十:红黑树的实现 RB-Tree的节点设计: 节点设计分为两层: struct __rb_tree_node_base { typedef __rb_tree_color_type color_type; typedef __rb_tree_node_base* base_ptr; color_typr color; base_ptr parent, left, right; static base_ptr minimun(base_ptr x) { while (x->left != 0) x = x->left; return x; } static base_ptr maximun(base_ptr x) { while (x->right != 0) x = x->right; return x; } }; template<class value> struct __rb_tree_node:public __rb_tree_node_base { typedef __rb_tree_node<value>* link_type; value value_field;//关键是把节点的值独立出来 }; RB-Tree的迭代器: 也分两层,和slist的设计比较相似,比较特殊的是前进和后退的操作。 struct __rb_tree_base