摘要: 一、单机 说明:执行etcd备份数据的恢复的机器必须和原先etcd所在机器一致 1、单机备份 2、单机数据恢复 二、集群 1、模拟写入数据到Etcd集群 2、备份etcd数据 3、停止etcd集群 停止方法:分别在3台etcd的宿主机上执行以下命令停止etcd服务systemctl stop etc 阅读全文
posted @ 2019-01-23 17:31 lvelvis 阅读(6334) 评论(0) 推荐(0) 编辑
摘要: 一、etcd简介与应用场景 etcd 是一个分布式一致性k-v存储系统,可用于服务注册发现与共享配置,具有以下优点:1、简单 : 相比于晦涩难懂的paxos算法,etcd基于相对简单且易实现的raft算法实现一致性,并通过gRPC提供接口调用;2、安全:支持TLS通信,并可以针对不同的用户进行对ke 阅读全文
posted @ 2019-01-23 17:17 lvelvis 阅读(3284) 评论(0) 推荐(0) 编辑
摘要: 上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Server端。Server之间通过局域网或广域网通信实现数据一致性。每个Server或Client都是一个consul 阅读全文
posted @ 2019-01-23 17:08 lvelvis 阅读(428) 评论(0) 推荐(0) 编辑
摘要: Nginx配置文件性能微调 全局的配置 worker_process定义了nginx对外提供Web服务时的worker进程数,起始可以设置为CPU的核数,CPU核数是多少就设置为多少(设置为"auto"将自动检测) worker_rlimit_nofile更改worker进程的最大打开文件限制,如果 阅读全文
posted @ 2019-01-23 16:52 lvelvis 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 目前,nginx对后端节点健康检查的方式主要有3种,这里列出: 公司业务线上对后端节点的健康检查是通过nginx_upstream_check_module模块做的,这里我将分别介绍这三种实现方式以及之间的差异性。 一、ngx_http_proxy_module 模块和ngx_http_upstre 阅读全文
posted @ 2019-01-23 16:47 lvelvis 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 由于网站使用nginx做的反向代理he负载均衡。在没有默认的系统TCP参数情况下回导致大量的TIME_WAIT出现。 终端可以下敲入 Shell代码 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' Shell代 阅读全文
posted @ 2019-01-23 16:43 lvelvis 阅读(1518) 评论(0) 推荐(0) 编辑
摘要: 问题根源: 基于七层的负载均衡系统,获取IP的原理都是通过XRI和XFF进行处理,从中选出“正常情况下”的源头IP,然而这两个Header都是普通的HTTP头,任何代理程序都可以轻易修改伪造它们,使得获取IP的逻辑失效。 解决依据: TCP协议需要建立真实的网络链路,因此其信息可以认为是真实可靠难以 阅读全文
posted @ 2019-01-23 16:37 lvelvis 阅读(2003) 评论(0) 推荐(0) 编辑
摘要: Redis基本操作——List(原理篇) 学习过数据结构的同学,一定对链表(Linked List)十分的熟悉。相信我们自己也曾经使用过这种数据结构。 链表分为很多种:单向链表,双向链表,循环链表,块状链表[1]等等。 链表的作用也有很多。首先,链表可以存放数据。其次链表可以模拟队列、堆栈等其他的数 阅读全文
posted @ 2019-01-23 16:34 lvelvis 阅读(672) 评论(0) 推荐(0) 编辑
摘要: Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法。下面将Redis提供的命令做一总结。 官网命令列表:http://redis.io/commands (英文 阅读全文
posted @ 2019-01-23 16:29 lvelvis 阅读(2808) 评论(0) 推荐(0) 编辑
摘要: 一、下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: redis 学习笔记(1)-编译、启动、停止 二、建6个目录 ? 1 2 mkdir ~/app/redi 阅读全文
posted @ 2019-01-23 16:26 lvelvis 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 简单说下自己测试搭建简单的redis集群的大体步骤: 1.首先你的有6个redis(官方说最少6个,3master,3slave),可以先在一台机器上搭建,搭建到多台上应该只需要改变启动命令即可(可能需要一些ssh无密钥什么的,只是猜测) 在网上随便可以找到的配置多个redis,(总体有两种方式,一 阅读全文
posted @ 2019-01-23 15:59 lvelvis 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 配置文件参数说明: 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var 阅读全文
posted @ 2019-01-23 15:38 lvelvis 阅读(2694) 评论(0) 推荐(0) 编辑
摘要: 安装redis redis.conf相关参数 maxheap 1024000000 注意:参数说明中用红色标志的参数是比较重要的参数。 参数这部分参考:http://www.cnblogs.com/wenanry/archive/2012/02/26/2368398.html 配置redis主从 主 阅读全文
posted @ 2019-01-23 15:37 lvelvis 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个ma 阅读全文
posted @ 2019-01-23 15:33 lvelvis 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 为了监控Redis3的运行状况,去zabbix官网查找资料,根据提示,找到了这个项目:https://github.com/blacked/zbx_redis_template 但是文档和内容已经不匹配了,比如这个配置项: trap-message mode 和 Zabbix Agent mode 阅读全文
posted @ 2019-01-23 15:28 lvelvis 阅读(646) 评论(0) 推荐(0) 编辑
摘要: 在redis的使用过程中,有时候需要急需修改redis的配置,比如在业务运行的情况下,内存不够怎么办,这时要么赶紧删除无用的内存,要么扩展内存。如果有无用的内容可删除那么所有问题都已经解决。如果内容都是重要的,那只能选择扩展内存。说到扩展内存,redis为我们提供了一个命令。 例如:动态添加内存 我 阅读全文
posted @ 2019-01-23 15:23 lvelvis 阅读(2618) 评论(0) 推荐(0) 编辑
摘要: 缓存穿透 什么是缓存穿透? 一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。 如何避免? 1:对查询结果为空的情况也进行缓存 阅读全文
posted @ 2019-01-23 15:19 lvelvis 阅读(189) 评论(0) 推荐(0) 编辑
#####