- 博客(106)
- 收藏
- 关注
原创 数据结构概述
1. 数据结构的基本概念“数据结构”是研究各种数据的特性以及数据之间存在的关系,进而根据实际应用的要求,合理地组织和存储数据,设计出相应的算法。数据是对客观事物的符号表示,数据元素(节点):数据的基本单位,在程序中通常作为一个整体进行考虑和处理。一个数据元素可以由若干个数据项组成。数据项:具有独立含义的最小标识单位。例如,一条数据记录可以称为一个数据元素,数据记录的某个字段就是一个数据项。数据
2018-04-18 00:12:39 677
原创 Redis 主从及哨兵模式部署
1. 部署Redis Master-Slave集群redis的安装及配置参考redis部署 本文以创建一主二从的集群为例。1.1 部署与配置先创建sentinel目录,在该目录下创建8000,8001,8002三个以端口号命名的目录。mkdir sentinelcd sentinelmkdir 8000 8001 8002 在对应端口号目录中创建redis...
2018-02-26 13:58:08 1696
原创 Redis集群模式部署
1. Redis部署 以下以Linux(CentOS)系统为例1.1 下载和编译$ wget http://download.redis.io/releases/redis-4.0.7.tar.gz$ tar xzf redis-4.0.7.tar.gz$ cd redis-4.0.7$ make编译完成后会在src目录下生成Redis服务端程序redis-serv
2018-02-02 19:46:48 33560 1
原创 Kubernetes基本概念(一)之理解Kubernetes对象
1. kubernetes对象概述kubernetes中的对象是一些持久化的实体,可以理解为是对集群状态的描述或期望。包括:集群中哪些node上运行了哪些容器化应用应用的资源是否满足使用应用的执行策略,例如重启策略、更新策略、容错策略等。kubernetes的对象是一种意图(期望)的记录,kubernetes会始终保持预期创建的对象存在和保持集群运行在预期的状态下。操作
2018-01-15 20:03:55 2174
原创 Golang包管理工具(二)之glide的使用
1. glide简介glide是一个golang项目的包管理工具,非常方便快捷,一般只需要2-3个命令就可以将go依赖包自动下载并归档到vendor的目录中。glide官网参考:https://glide.sh/2. glide安装go get github.com/Masterminds/glide3. glide使用#进入到项目目录cd /home/gopat
2018-01-14 20:01:29 7694
原创 Golang系列(四)之面向接口编程
1. 接口[多态]多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简而言之,就是允许将子类类型的指针赋值给父类类型的指针。即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。不修改程序代码就可以改变程
2018-01-13 23:22:41 10607
原创 数学基础(一)之矩阵的基本概念
1. 矩阵和向量1.1 矩阵⎡⎣⎢⎢⎢⎢1402137194914719182114371448⎤⎦⎥⎥⎥⎥\begin{bmatrix} 1402 & 191 \\ 1371 & 821 \\ 949 & 1437 \\ 147 &1448 \end{bmatrix}这个是4x2的矩阵,即4行2列。矩阵的维度即行数乘以列数。矩阵的元素(矩阵项): A=⎡⎣⎢⎢⎢⎢
2017-12-31 22:25:50 4531
原创 Python系列(四)之Python面向对象编程
本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-object-oriented-programming/1. 类和实例在Python中所有的数据类型都可以视为对象,也可以自定义对象。自定义的对象数据类型即面向对象中的类(Class)概念。类是抽象的模板,实例是具体的对象。类的定义Python使用clas
2017-12-31 16:13:41 750
原创 机器学习的概念
本文个人博客地址:http://www.huweihuang.com/article/machine-learning/machine-learning-concept/1. 机器学习的概念1.1 Arthur Samuel的定义 机器学习是在特定的编程环境下,给予机器学习能力的领域。1.2 Tom Mitchell的定义 机器学习是指一个程序被认为能从经验
2017-12-29 09:57:38 1126
原创 Python系列(三)之Python高级特性
本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-advanced-features/1. 切片切片操作(slice),即从list(tuple是一种特殊的list)中获取部分元素。L[m,n]表示从L[m]~L[n-1]的list。L[:n]表示从L[0]~L[n-1]的list。L[m:]表示从L[
2017-12-21 20:33:44 390
原创 client-go的使用及源码分析
本文个人博客地址:http://www.huweihuang.com/article/source-analysis/client-go-source-analysis/1. client-go简介1.1 client-go说明 client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象(包
2017-12-16 20:21:12 29072 2
原创 Python系列(二)之Python函数
本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-function/1. 内置函数python的内置参数详见以下链接,也可以通过help(function_name)来查看具体函数的使用帮助。http://docs.python.org/3/library/functions.html Built
2017-12-10 22:58:28 458
原创 Python系列(一)之Python基础
本文个人博客地址:http://www.huweihuang.com/article/python/basics/python-basics/1. 数据类型和变量Python使用缩进来组织代码块,一般使用4个空格的缩进。使用#来注释一行,其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。Python对大小写敏感。1.1 整数 Python可以处理任意大小
2017-12-09 11:49:11 1209
原创 Git详解
一、Git是什么(what)(一)概述Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统如果中央服务器宕机则会影响数据和协同开发。Git是分布式的版本控制系统,客户端不只是提取最新版本的快照,而且将整个代码仓库镜像复制下来。如果任何协同工作用的服务器发生故障了,也可以用任何一个代码仓库来恢复。而且在协作服务器宕机期间,你也可以提交代码到本地仓库,当协作服务器正常工作
2017-11-11 11:34:06 3520
原创 Golang系列(一)之顺序编程
一、初识Go语言(一)概述一个在语言层面实现了并发机制的类C通用型编程语言。(二)Go关键字(25个) 类别 关键字 说明 程序声明 package,import 包的声明和导入 声明与定义 var,const 变量和常量的声明 type 用于定义类型 复合数据类型 struct 定义结构体...
2017-11-02 22:04:54 1513
原创 Kubernetes常用命令(kubectl)
1. kubectl介绍kubectl controls the Kubernetes cluster manager.Usage: kubectl [flags] kubectl [command][root@node5 ~]# kubectl --helpkubectl controls the Kubernetes cluster manager.Find mo
2017-10-16 23:52:45 6023
原创 Kubernetes基本概念(三)之Pod详解
1. Pod的定义文件apiVersion: v1kind: Podmetadata: name: string namaspace: string labels: - name: string annotations: - name: stringspec: containers: - name: string images: string i
2017-09-28 16:27:36 18789 4
原创 ssh或scp免密登录
1. ssh/scp免密码A服务器地址:10.8.216.25,下面简称A B服务器地址:10.8.216.26,下面简称B实现A登录B免密码。1.1. 在A生成密钥对ssh-keygen -t rsa -P ""执行上述命令,一路回车,会在当前登录用户的home目录下的.ssh目录下生成id_rsa和id_rsa.pub两个文件,分别代表密钥对的私钥和公钥,如下图所示: 1.2. 拷贝A的公钥
2017-09-16 20:10:01 1324
原创 JSON语法
1. JSON的语法JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组1.1. JSON名称/值对"name" : "value"1.2. JSON 值可以是:数字(整数或浮点数)字符串(在双引号中)逻辑值(true 或 false)数组(在中括号中)对象(
2017-09-16 19:50:52 1077
原创 《图解TCP/IP》(三)之TCP与UDP
1. 传输层的作用1.1. 传输层的定义IP首部有个协议字段,用来标识传输层协议,识别数据是TCP的内容还是UDP的内容。同样,传输层,为了识别数据应该发给哪个应用也设定了这样的编号,即端口。1.2. 通信处理应用协议大多以C/S形式运行,即服务端需提前启动服务,监听某个端口,当客户端往该端口发送数据时,可以及时处理请求。服务端程序在UNIX系统中称为守护进程,例如HTTP的服务端程序为httpd;
2017-09-10 20:08:07 835
原创 beego web框架(二)之日志处理
1. 使用入门beego 的日志处理是基于 logs 模块搭建的,内置了一个变量 BeeLogger,默认已经是 logs.BeeLogger 类型,初始化了 console,也就是默认输出到 console。beego.Emergency("this is emergency")beego.Alert("this is alert")beego.Critical("this is critic
2017-09-10 17:52:58 21414
原创 Golang系列(八)之文本处理
1. JSON处理JSON是一种轻量级的数据交换语言。1.1. 解析JSON[Unmarshal(data []byte, v interface{})]1.1.1. Unmarshal源码/src/encoding/json/decode.gofunc Unmarshal(data []byte, v interface{}) error { // Check for well-forme
2017-09-10 15:22:08 3105
原创 Kubernetes核心原理(四)之Kubelet
1. kubelet简介在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在API Server上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。可以把kubelet理解成【Server-Agent】架构中的agent,是Node上的pod管家。
2017-09-10 15:04:25 24860 2
原创 Kubernetes API分类汇总
1. 资源对象1.1. Namespace 分类 说明 方法 API 查 list or watch objects of kind Namespace GET /api/v1/namespaces read the specified Namespace GET /api/v1/namespaces/{name} 增 create a Nam
2017-09-10 14:51:37 4036 1
原创 Kubernetes网络原理
1. kubernetes网络模型1.1. 基础原则每个Pod都拥有一个独立的IP地址,而且假定所有Pod都在一个可以直接连通的、扁平的网络空间中,不管是否运行在同一Node上都可以通过Pod的IP来访问。k8s中Pod的IP是最小粒度IP。同一个Pod内所有的容器共享一个网络堆栈,该模型称为IP-per-Pod模型。Pod由docker0实际分配的IP,Pod内部看到的IP地址和端口与外部保
2017-09-10 14:33:59 17457
原创 Kubernetes监控体系(二)之cAdvisor介绍
1. cAdvisor简介 cAdvisor对Node机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,cAdvisor集成在Kubelet中,当kubelet启动时会自动启动cAdvisor,即一个cAdvisor仅对一台Node机器进行监控。kubelet的启动参数–cadvisor-port可以定义cAdvisor对外提供服务的
2017-09-09 22:24:04 11293 1
原创 Kubernetes监控体系(一)之集群监控概述
1. 概述1.1. cAdvisorcAdvisor对Node机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,cAdvisor集成在Kubelet中,当kubelet启动时会自动启动cAdvisor,即一个cAdvisor仅对一台Node机器进行监控。kubelet的启动参数–cadvisor-port可以定义cAdvisor对外提供服务
2017-09-08 21:40:39 5004 1
原创 Kubernetes监控体系(三)之Heapster介绍
1. heapster简介Heapster是容器集群监控和性能分析工具,支持Kubernetes和CoreOS。 Kubernetes有个监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机以及容器的监控数据(cpu,memory,filesystem,network,uptime)。2. heapster部署与配置2.1
2017-09-08 21:24:42 8162 1
原创 Kubernetes监控体系(四)之InfluxDB介绍
1. InfluxDB简介InfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统。主要特色功能:1)基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)2)可度量性:你可以实时对大量数据进行计算3)基于事件:它支持任意的事件数据2. InfluxDB安装1)安装wget https://dl.i
2017-09-08 21:20:22 3007
原创 Flannel介绍
一、flannel是什么(what)(一)概述Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。 Flannel官网:https://github.com/coreos/flannel(二)补充知识点1、覆盖网络[overlay network]运行在一个网上的网(应用层网
2017-09-08 21:09:35 13864 1
原创 Redis简介
一、redis是什么?(what)Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。Redis是一个开源的使
2017-09-08 17:32:32 379
原创 Nginx Http服务器
1. Nginx的系统架构Nginx包含一个单一的master进程和多个worker进程,每个进程都是单进程,并且设计为同时处理成千上万个连接。worker进程是处理连接的地方,Nginx使用了操作系统事件机制来快速响应这些请求。master进程负责读取配置文件、处理套接字、派生worker进程、打开日志文件和编译嵌入式的perl脚本。master进程是一个可以通过处理信号量来管理请求的进程。
2017-09-07 21:27:03 873
原创 Nginx作为反向代理
1. 反向代理简介Nginx可以作为反向代理,接收客户端的请求,并向上游服务器发起新的请求。该请求可以根据客户端请求的URI,客户机参数或其他逻辑进行拆分,原始URL中的任何部分可以以这种方式进行转换。1.1. 代理模块指令 指令 说明 proxy_connect_timeout Nginx从接受到请求到连接至上游服务器的最长等待时间 proxy_cookie_domain 替
2017-09-07 21:24:22 2058
原创 Keepalived常用配置及脚本
1. keepalived.conf1.1. MASTER(主机配置)global_defs { router_id wae-proxy-keepalived}vrrp_script check_nginx { script "/etc/keepalived/scripts/check_nginx.sh" interval 3 weight 2 }vrr
2017-09-07 21:16:52 9512 1
原创 Nginx的部署与配置
1. 部署1.1. 使用安装包的方式rpm -ivh nginx-xxx.rpm1.2. 使用源代码安装1.2.1. 下载源码包wget http://blob.wae.haplat.net/nginx/nginx-1.9.13.tar.gz1.2.2. 创建临时目录并解压源码包mkdir $HOME/buildcd $HOME/build && tar zxvf nginx-<version-n
2017-09-07 20:53:26 5063
原创 Golang系列(五)之Golang指针
1. 指针的概念 概念 说明 变量 是一种占位符,用于引用计算机的内存地址。可理解为内存地址的标签 指针 表示内存地址,表示地址的指向。指针是一个指向另一个变量内存地址的值 & 取地址符,例如:{指针}:=&{变量} * 取值符,例如:{变量}:=*{指针}2. 内存地址说明2.1. 内存定义计算机的内存 RAM 可以把它想象成一些有序的盒子,一个接一个的排成
2017-09-07 12:52:06 18968 2
原创 GoLand同步插件配置
1.1. Gogland(GoLand)下载并安装Gogland,配置GOROOT和GOPATH,安装包见官网:http://www.jetbrains.com/go/download/1.2. 常用插件同步插件:Source SynchronizerRemote Hosts Access自动保存插件:File Watchers1.3. 设置同步到li...
2017-09-07 11:23:32 12242
原创 《图解TCP/IP》(二)之IP协议详解
1. IP基础TCP/IP的心脏是互联网层,这一层主要有IP和ICMP两个协议组成,在OSI参考模型中为第三层(网络层)。网络层的主要作用是实现终端节点之间的通信(点对点通信)。1.1. 网络层与数据链路层的关系1.2. IP寻址IP地址用于在“连接到网络中的所有主机中识别出进行通信的目标地址”。因此TCP/IP通信中所有主机或路由器必须设定自己的IP地址(每块网卡至少配置一个或以上的IP地址)。1
2017-08-21 20:27:04 2294
原创 Golang包管理工具(一)之govendor的使用
本文个人博客地址为:http://www.huweihuang.com/article/golang/govendor-usage/ 本文个人博客地址为:https://huweihuang.net/article/golang/govendor-usage/ 更多golang包管理工具参考 golang包管理工具之glide的使用1. govendor简介golang工程的依...
2017-08-14 20:56:53 57642 1
原创 Golang系列(六)之测试用例
1. Go中的测试框架Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,testing框架和其他语言中的测试框架类似,你可以基于这个框架写针对相应函数的测试用例,也可以基于该框架写相应的压力测试用例。2. 单元测试原则文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码你必须i
2017-08-13 10:42:59 4061
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人