redis持久化简介 持久化简介持久化一般有两种思路:将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据。将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程。以上两种思路在redis中分别对应RDB和AOF。RDB在redis命令行输入SAVE命令就能手动执行一次RDB持久化。但这种前台启动的方式会阻塞当前Redis服务器,直到当前RDB过程完...
keepalived安装配置实现高可用 介绍为了防止单点组件不可用,本文介绍用keepalived实现主备双节点高可用,主节点不可用后自动切换到备节点继续提供服务。另外,keepalived还可以做负载均衡。安装在组件对应的机器上安装:yum install -y keepalived主节点配置我们以禅道zbox为例写一个配置,如下。首先check_zbox.sh是一个检测脚本,检测应用是不是可用,不可用时停止keepa...
rsync同步文件 介绍为了实现组件的高可用,比如gitlab或者禅道,一般会在不同机器分别安装gitlab,它们公用一个外接的数据库。但是gitlab在本地还会有一些数据生成,这些数据在各个gitlab之间也需要保持一致,可以采用rsync实现不同机器之间的文件同步。安装以禅道双节点为例,所有安装了禅道客户端的机器安装rsync,命令:yum install -y rsync主节点配置切换到主禅道所在...
CDH6.0.1离线安装 计划用vmware虚拟机安装三个节点,其中Cloudera Manager Server一台(用来管理),cdh两台(Hadoop主从)。所有操作在root用户下进行。版本:软件版本osCentOS Linux release 7.5.1804jdk1.8.0_141cm(Cloudera Manager)cm6(6.0.1)cdh(Parcels)...
使用rke搭建k8s集群 计划三台机器用rke安装k8s,rke安装之前先配好一台,然后克隆。版本信息:软件版本osCentOS Linux release 7.5.1804docker18.06.2-cerkev0.2.4(默认k8s版本:v1.13.5-rancher1-3)一、装机,配静态ip,装常用软件用vmware最小化安装centos7后,修改主机名和hosts...
Go语言学习8:深入理解切片slice slice定义slice是个结构体,源码如下:// runtime/slice.gotype slice struct { array unsafe.Pointer // 元素指针 len int // 长度 cap int // 容量}slice 共有三个属性:指针,指向底层数组;长度,表示切片可用元素的个数,也就是说使用下标对 slice 的...
Go语言学习7:并发 并发与并行go是支持并发的语言。并发的程序往往是在单核中交替运行的(通信开销小),并行的程序往往是多核同时运行的(通信开销大)。Go 协程(Goroutine)Go 协程是与其他函数或方法一起并发运行的函数或方法。Go 协程可以看作是轻量级线程。与线程相比,创建一个 Go 协程的成本很小。package mainimport ( "fmt" "time")...
redis入门操作 Try Redis链接:http://try.redis.io该网站可以直接在网页端练习redis命令。Redis是键值存储的NoSQL数据库。我们可以使用命令SET将字符串(string)类型的值"fido"存储在键"server:name"中:> SET server:name "fido"OK然后可以用命令GET根据键进行查询:> GET server:name...
nginx初学者指南 1NGINX 启动后,有一个主进程(master process)和一个或多个工作进程(worker process),主进程的作用主要是读入和检查NGINX的配置信息,以及维护工作进程;工作进程才是真正处理客户端请求的进程。工作进程个数在 NGINX 的配置文件nginx.conf中指定。可以通过以下这些命令来控制 NGINX:nginx -s [ stop | quit | reopen...
ansible基础命令 基础ansible命令ansible采用ssh的方式操作远程机器,首先我们需要在ansible所在机器创建一个hosts文件记录要操作机器的ip。[root@vm1 ansible-test]# cat hosts [master]192.168.178.129[node]192.168.178.130# 设置k8s组包含这俩组[k8s:children]masternod...
prometheus学习4:多集群高可用 前言在Prometheus设计上,使用本地存储可以降低Prometheus部署和管理的复杂度同时减少高可用(HA)带来的复杂性。 在默认情况下,用户只需要部署多套Prometheus,采集相同的Targets即可实现基本的HA。当然本地存储也带来了一些不好的地方,首先就是数据持久化的问题,特别是在像Kubernetes这样的动态集群环境下,如果Promthues的实例被重新调度,那所有历史监控...
prometheus学习3:告警Alertmanager 告警介绍如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息,以邮件等方式通知运维人员。Alertmanager可以对这些告警信息进行进一步的处理,比如当接收到大量重复告警时能够消除重复的告警信息,同时对告警信息进行分组并且路由到正确的通知方。告警规则ru...
prometheus学习2:PromQL PromQL是Prometheus内置的监控数据查询语言。根据标签过滤直接使用监控指标名称查询时,可以查询该指标下的所有时间序列。如:http_requests_total等同于:http_requests_total{}该表达式会返回指标名称为http_requests_total的所有时间序列:http_requests_total{code="200",handler="a...
prometheus学习1:快速上手 安装运行先把程序跑起来再说,不懂的概念后边再看。官网:https://prometheus.io首先下载并解压如下包:prometheus-2.9.1.linux-amd64.tar.gz进入解压后的目录,运行./prometheus即可,浏览器输入机器IP加9090端口查看页面,页面比较简单,自己瞎点点就知道啥是啥了。prometheus服务端安装完毕,为了监控主机信息,安装node...
Go语言学习6:接口 接口定义了一组方法,但是这些方法不包含实现代码(它们是抽象的),接口里也不能包含变量。接口指定了一个类型应该具有的方法,并由该类型决定如何实现这些方法。类型通过实现一个接口的所有方法来实现该接口。package mainimport ( "fmt")type SalaryCalculator interface { CalculateSalary() int}t...
Go语言学习5:结构体、方法 struct结构体结构体是用户定义的类型,表示若干个字段的集合。有时应该把数据整合在一起,而不是让这些数据没有联系。Go 语言中没有类的概念,结构体就像是类的一种简化形式。命名的结构体package mainimport ( "fmt")type Employee struct { firstName, lastName string age, salary...
Go语言学习4:数组、切片、map映射 数组数组是同一类型元素的集合。举例:package mainimport "fmt"func main() { var a [2]string a[0] = "Hello" a[1] = "World" fmt.Println(a) primes := [6]
Go语言学习3:函数 一般的函数package mainimport "fmt"func add1(x int, y int) int { return x + y}func add2(x, y int) (r1, r2 int) { r1 = x + y r2 = 0 return}func main() { a := add1(1, 2) b, _...
Go语言学习2:变量、常量、类型、指针 变量:package mainimport "fmt"func main() { var ( a int = 1 b string = "hello" c bool = true d = false e, f int = 3, 4