master

redis哨兵(sentinel)原理

泄露秘密 提交于 2020-02-29 03:46:10
简介 sentinel是redis高可用的解决方案,sentinel系统(N个sentinel实例,N >= 1)可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的某个从服务升级为master服务替代已下线的master服务继续处理请求。 1. sentinel初始化 可以使用命令 redis-sentinel /path/to/sentinel.conf 或者 redis-server /path/to/sentinel.conf --sentinel 来启动 sentinel sentinel启动时,需要经过一下几个步骤 a. 初始化服务 sentinel本质上是一个特殊的redis服务,所以初始化的时候跟redis服务初始化差不多,不过有几点不一样;首先sentinel不会载入RDB或者AOF文件,因为sentinel根本不使用数据库,其次,sentinel不能使用数据库键值对方面的命令,例如set、del、flushdb等等,同时,sentinel也不能使用事务、脚本、RDB或者AOF持久化命令,最后,复制命令,发布与订阅命令,文件事件处理器,时间事件处理器等只能在sentinel内部使用。 b. 将普通redis代码转成 sentinel专用代码 将redis服务的代码转成

Docker实战之MySQL主从复制

∥☆過路亽.° 提交于 2020-02-29 03:04:16
原文: Docker实战之MySQL主从复制 前言 曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批? 其实很多时候,我们所缺少的只是对高大上的技术的演练。没有相关的业务需求,没有集群环境,然后便只是Google几篇博文,看下原理,便算是了解了。然而真的明白了吗?众多的复制粘贴中,那篇文章才对我们有用,哪些又是以讹传讹? 所幸容器技术的快速发展,让各种技术的模拟成为现实。接下来Docker相关的一系列文章,将以实战为主,帮助大家快速搭建测试和演练环境。 Docker文件编排 由于是测试为了演练用,这里用docker-compose进行配置文件的编排,实际的集群环境中并不是这么部署的。 编排docker-compose-mysql-cluster.yml,安装master和slave节点 version: '3' services: mysql-master: image: mysql:5.7 container_name: mysql-master environment: - MYSQL_ROOT_PASSWORD=root ports: - "3307:3306" volumes: - "./mysql/master/my.cnf:/etc/my.cnf" - "./mysql

Docker实战之MySQL主从复制

核能气质少年 提交于 2020-02-28 23:43:23
前言 曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批? 其实很多时候,我们所缺少的只是对高大上的技术的演练。没有相关的业务需求,没有集群环境,然后便只是Google几篇博文,看下原理,便算是了解了。然而真的明白了吗?众多的复制粘贴中,那篇文章才对我们有用,哪些又是以讹传讹? 所幸容器技术的快速发展,让各种技术的模拟成为现实。接下来Docker相关的一系列文章,将以实战为主,帮助大家快速搭建测试和演练环境。 Docker文件编排 由于是测试为了演练用,这里用docker-compose进行配置文件的编排,实际的集群环境中并不是这么部署的。 编排docker-compose-mysql-cluster.yml,安装master和slave节点 version: '3' services: mysql-master: image: mysql:5.7 container_name: mysql-master environment: - MYSQL_ROOT_PASSWORD=root ports: - "3307:3306" volumes: - "./mysql/master/my.cnf:/etc/my.cnf" - "./mysql/master/data:/var/lib

git-cleanup-workspace

旧时模样 提交于 2020-02-28 23:33:46
很多时候需要为自己的工作目录清理一下,比如,常见的有恢复当前版本 到HEAD,保存当前的工作,check out出来另一个分支做开发,下面介绍几个我自己常用 的方法。 git stash 保存当前的工作,checkout出来其它的分支进行开发。比如,我在更新一个Readme文件, 而同时,我又有一个新的任务进来,需要checkout另外一个分支。那么这个时候,我就 需要保存当前的工作,一个很好用的方法就是 git stash git st # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: README # no changes added to commit (use "git add" and/or "git commit -a") git stash # Saved working directory and index state WIP on master: afd3c45 Rewrapped lines # HEAD is

防火墙教程

这一生的挚爱 提交于 2020-02-28 22:35:05
firewall 主动防御-网络过滤器(firewall) windows篇 第一课 网络基础(socket) https://github.com/haidragon/study_firewall/blob/master/study_firewall/page1/page.md 第二课 基于SPI层的网络过滤(LSP) https://github.com/haidragon/study_firewall/blob/master/study_firewall/page2/page.md 第三课 windows内核调试环境搭建(双机调试 mac平台 windows平台) https://github.com/haidragon/study_firewall/blob/master/study_firewall/page3/page.md 第四课 TDI层的网络过滤 ( Transport Driver Interface ) https://github.com/haidragon/study_firewall/blob/master/study_firewall/page4/page.md 第五课 NDIS层的网络过滤 https://github.com/haidragon/study_firewall/blob/master/study_firewall/page5/page

llvm教程

空扰寡人 提交于 2020-02-28 22:30:45
study_obscure 混淆反混淆视频教程 第一章 llvm项目简单使用 第一课 llvm项目 编译(windows xcode) 链接: https://pan.baidu.com/s/1ILvoVripdAcHF9NLKJYZ2A https://github.com/haidragon/study_obscure/blob/master/llvm_note/class1/note.md 第二课 clang编译与调试(xcode) 链接: https://pan.baidu.com/s/1MHvB4IysZ0v_0vMz1NJOhA https://github.com/haidragon/study_obscure/blob/master/llvm_note/class2/note.md 第三课 clang插件编写 链接: https://pan.baidu.com/s/1iwi0AIcis8M8ZBIBg27Nwg https://github.com/haidragon/study_obscure/blob/master/llvm_note/class3/note.md 第四课 实现一个自定义检查规范的 Clang 插件 链接: https://pan.baidu.com/s/1rWOowwOMAm2SrOh-nxPT6w https://github.com

git

馋奶兔 提交于 2020-02-28 19:27:00
git 用法 安装 创建版本库 第一步:创建 第二步:使用 git init 命令,把这个目录变成Git可管理的仓库 第三步:把文件放到git仓库中 第四步:提交 git 命令 ==git命令后无反应大都表示成功== 安装 安装后需要输入的命令 $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com" 创建版本库 第一步:创建 $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit 第二步:使用 git init 命令,把这个目录变成Git可管理的仓库 $ git init Initialized empty Git repository in /Users/michael/learngit/.git/ 第三步:把文件放到git仓库中 命令git add 把文件添加到仓库 $ git add readme.txt 命令 git commit ,把文件提交到仓库 $ git commit -m "wrote a readme file" [master (root-commit) eaadf4e] wrote a readme file 1 file changed, 2

GIT版本团队内部操作规范

陌路散爱 提交于 2020-02-28 14:10:51
Paste_Image.png 版本号命名规则 v1.1.1:第一位大版本号,大功能发布时增加,技术负责人审核;第二位小版本号,增加小特性时增加,主开发审核;第三位BUG修复号,修复BUG用,修复人员负责。 各节点GIT命令 【0】使用develop节点开发 检出develop git checkout branch 开始代码开发工作。开发完成后,提交代码 git commit -a -m "xxxxx" 提交代码后合并到master git push --all # <然后登录http://git.oschina.net, 点击`pull request`,填写相关信息,等待MASTER分支管理员审核。> 这时需要MASTER管理员 确认合并(必须在网站确认) 打标签升级版本(可以命令行) 对应的命令行如下 git tag -a v1.2.2 【1】修复生产环境BUG 【1.1】建立hotfix分支 git checkout -b hotfix-1.2.1 master 然后可以开发。开发完成后: git commit -m "Fixed severe production problem" 【1.2】合并回master git checkout develop git push --all # <然后登录http://git.oschina.net, 点击`pull

Git 的 4 个阶段的撤销更改

断了今生、忘了曾经 提交于 2020-02-28 13:41:06
虽然git诞生距今已有12年之久,网上各种关于git的介绍文章数不胜数,但是依然有很多人(包括我自己在内)对于它的功能不能完全掌握。以下的介绍只是基于我个人对于git的理解,并且可能生编硬造了一些不完全符合git说法的词语。 目的只是为了让git通俗化,使初学者也能大概了解如何快速上手git。同时,下面所有讨论,我们都假设只使用一个分支,也就是主分支master的情况,虽然这种作法并不符合git规范,但是现实情况中绝大部分用户是直接在master分支上进行工作的,所以在这里我们不去引入更加复杂的各种分支的情况,也不涉及标签tag的操作,只讲在最简单的主分支上如何回退。 # 基本概念 3个步骤 正常情况下,我们的工作流就是3个步骤,对应上图中的3个箭头线: 1 git add . 2 git commit -m "comment" 3 git push git add .把所有文件放入暂存区; git commit把所有文件从暂存区提交进本地仓库; git push把所有文件从本地仓库推送进远程仓库。 4个区 git之所以令人费解,主要是它相比于svn等等传统的版本管理工具,多引入了一个暂存区(Stage)的概念,就因为多了这一个概念,而使很多人疑惑。其实,在初学者来说,每个区具体怎么工作的,我们完全不需要关心,而只要知道有这么4个区就够了: 工作区(Working Area)

CentOS7安装scala2.11.8+spark2.0.2

百般思念 提交于 2020-02-28 12:20:12
说明: ( 1、安装JDK1.8+hadoop2.6+SSH: https://www.cnblogs.com/SysoCjs/p/10835793.html 2、安装hive1.2.2+mysql5.7: https://www.cnblogs.com/SysoCjs/p/10835954.html ) Master 192.168.112.10 Slave1 192.168.112.11 Slave2 192.168.112.12 #master:表示在master节点上操作 #slave1:表示在slave1节点上操作 #slave2:表示在slave2节点上操作 一、下载资源包 #master 可以使用wget命令下载资源包,但前提是你有对应版本的镜像下载地址。本人习惯是直接到到官网下载资源包到windows下面,然后通过ctrl+c和ctrl+v的方式,将资源包放到虚拟机上面,虚拟机也必须是有可视化操作界面。 至于为什么选择这两个版本,首先,scala开发,是要在IDEA上面操作的,可以在IDE上面查看scala的插件版本,本人使用的IDEA是2018.2版本,所以对应的scala版本是2.11.8. 二、解压资源包 #master 将上一步下载回来的资源包拷贝到虚拟机的Desket,为了方便管理,使用mv命令统一移动到一个自己认为比较方便的文件夹下: mv /home