master

redis集群(Sentinel)

会有一股神秘感。 提交于 2020-01-07 04:13:26
问题 Redis 主哨兵模式是如何保证高可用的 主要依赖主哨兵的发现故障和故障转移 概述 本文假设读者对redis 的主从复制已经进行了了解 。 Redis 主哨兵集群为Redis 提供了 高可用 ,即高可用是猪哨兵模式的主要目的,这是宏观上Sentinel功能的完整列表 Monitoring :监视实例的情况 Notification : 通知 Automatic failover : 当Master异常下线后,自动会通过选举 Configuration provider : 提供配置信息。 注意事项 在配置哨兵模式下几件事需要注意 : 至少保证3台实例 由于Redis使用异步复制,因此Sentinel + Redis分布式系统不能保证在故障期间保留已确认的写入。 开启 Sentinel后,客户端也需要支持 Sentinel 模式 工作流程 分布式服务器布局 主哨兵的可以是如下布局 这是最简单的布局,Sentinel 依附在实例中,当实例 down 的话,那么 Sentinel 自然也会 down 掉,而图中的 quorum = 2 是什么意思呢,在后面章节再解释。二这种布局会出现分布式服务器“脑裂”问题,如下图 此时可以看到一台 replcation 成为了新的 master,而假如此刻客户端对 redis 进行写入那么数据将会丢失, redis.conf 中的两个参数可以设置

如何将本地未提交的更改合并到另一个Git分支?

余生颓废 提交于 2020-01-07 01:50:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 如何在Git中执行以下操作? 我当前的分支是branch1,我做了一些本地更改。 但是,我现在意识到我实际上是要将这些更改应用于branch2。 有没有办法应用/合并这些更改,以便它们成为branch2上的本地更改而不在branch1上提交它们? #1楼 到目前为止给出的答案并不理想,因为它们需要大量不必要的工作来解决合并冲突,或者它们做出太多假设,这些假设经常是错误的。 这是如何做到完美。 该链接指向我自己的网站。 如何在git中提交不同的分支 您在 my_branch 上有未提交的更改要提交给 master ,而不提交 my_branch 所有更改。 例 git merge master git stash -u git checkout master git stash apply git reset git add example.js git commit git checkout . git clean -f -d git checkout my_branch git merge master git stash pop 说明 首先将 master 合并到您的分支中,因为无论如何您最终都必须这样做,现在是解决任何冲突的最佳时机。 git stash -u 的 -u 选项(又名 --include

MFS分布式文件系统搭建

女生的网名这么多〃 提交于 2020-01-07 01:18:19
MFS概述 MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。 优势 1、高可靠(数据的多个拷贝被存储在不同的计算机上) 2、通过附加新的计算机或者硬盘可以实现容量的动态扩展 3、删除的文件可以根据一个可配置的时间周期进行保留(一个文件系统级别的回收站) 4、不受访问和写入影响的文件连贯快照 缺点 master服务器不能解决单点故障 MFS的构成 元数据服务器(Master): 在整个体系中负责管理文件系统,维护元数据,目前不支持高可用。 元数据日志服务器(MetaLogger): 备份Master服务器的变化日志文件,当master服务器损坏,可以从日志服务器中取得文件恢复。 数据存储服务器(Chunk Server): 真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好。 客户端(Client): 可以像挂载NFS一样 挂载MFS文件系统 实验拓扑图 实验环境     服务器                 IP地址              master服务器         192.168.13.128 log日志服务器         192.168.13.129 chunk1服务器         192.168.13.130 chunk2服务器         192.168.13

k8s安装dashboard(未解决)

心不动则不痛 提交于 2020-01-07 00:35:16
第一种,用helm安装 helm repo update Hang tight while we grab the latest from your chart repositories... ...Skip local chart repository ...Successfully got an update from the "stable" chart repository Update Complete. [root@k8s-master templates]# helm repo list NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts [root@k8s-master templates]# helm fetch stable/kubernetes-dashboard [root@k8s-master templates]# ls deployment.yaml kubernetes-dashboard-1.10.1.tgz service.yaml [root@k8s-master templates]# tar -zvxf kubernetes-dashboard-1.10.1.tgz kubernetes

rocketMQ之三 集群概念和工作流程

岁酱吖の 提交于 2020-01-06 21:51:30
集群概念和工作流程 各个角色的介绍 producer:消息的发送者 consumer:消息的接受者 Broker:暂存和传输消息 NameServer:管理Broker Topic:区分消息的种类,一个发送者可以发送消息给一个或者多个Topic,一个消息的接受者可以订阅一个或者多个Topic消息 tag:消息的标签,和topic基本是这样的关系 Message Queue:相当于Topic的分区,用于并行发送和接受消息 集群的特点 NameServer是一个几乎无状态节点,可集群部署,节点之间无任何信息同步 Broker部署相对复杂,Broker分为Master和Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master, Master和Slave的对应关系通过制定相同的BrokerName,不同的BrokerId来定义,BorkerId为0表示Master,非0便是Slave, Mater也可以部署多个,每个Broker和NameServer集群中所有节点建立长连接,定时注册Topic信息到所有NameServer Producer和NameServer集群中的其中一份节点建立长连接(随机),定期从NameServer取Topic路由信息,并向Topic服务的Master 建立长连接,且定时想Master发送心跳,Product完全无状态

【docker系列】三台阿里云服务器搭建zookeeper集群+kafka集群,并且测试

风流意气都作罢 提交于 2020-01-06 21:28:00
因为存在docker容器 跨主机网络通信,所以可以先看这一篇: 【docker系列】解决阿里云多主机服务器,docker overlay 跨主机网络通信环境 环境: 三台为:11.11.11.11 、11.11.11.22 、11.11.11.33 每台主机部署一个zookeeper节点,一个kafka节点,共三个zookeeper节点,三个kafka节点, 容器之间的网络采用overlay模式 一、创建 overlay 网络 # 创建 overlay 网卡,用于 集群服务的网卡设置(只需要在 master 节点上创建,从节点自然会获取) docker network create --driver overlay --subnet=15.0.0.0/24 --gateway=15.0.0.254 --attachable ccluster-overlay-elk 二、创建并运行容器 1、创建容器 [root@master conf]# sudo docker run -dit \ --net cluster-overlay-elk \ --ip 15.0.0.250 \ --restart=always \ --privileged=true \ --hostname=hadoop_zookeeper \ --name=hadoop-zookeeper-one \ -p

前端GIT规范

☆樱花仙子☆ 提交于 2020-01-06 20:36:28
1 分支规范 master 主分支 dev 主开发分支 hotfix 修复bug分支 feature 功能开发分支 1.1 主分支master master分支永远受保护。不可在master分支上开发,进行commit,push操作。 master分支只接收merge操作。 每次发布正式上线的稳定版本(发布后第一天),将当前发布版本merge到master分支。 master分支的代码永远和线上代码保持同步。 1.2 主开发分支dev dev分支为主开发分支。可以进行commit,push,merge操作。 一般不在dev分支上进行新功能的开发。dev分支用来做不同分支的代码整合。 每次master发布以后,需要把master的代码merge到dev上。保持比master的代码更新。 1.3 hotfix分支 hotfix/xxxx hotfix分支是由master分支checkout出来,用于热修复线上bug用。可以进行commit,push,merge操作。 修复完毕经验证后直接发布。发布完成后merge到master分支。 1.4 功能开发分支 feature/xxxx 用来进行新功能开发的分支。此分支由dev分支checkout出来,可以进行commit,push,merge操作。 按照功能或者版本可以同时checkout多个feature分支并行开发

从master更新Git分支

妖精的绣舞 提交于 2020-01-06 17:41:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我是Git的新手,现在我处于这种情况: 我有四个分支(master,b1,b2和b3)。 在我使用b1-b3之后,我意识到我在分支主机上有一些改变,应该在所有其他分支中。 我改变了 master 所需要的东西......这是我的问题: 如何使用 master 分支代码更新所有其他分支? #1楼 git rebase master 是执行此操作的正确方法。 合并意味着将为合并创建提交,而重新设置则不会。 #2楼 如果您一直在分支机构上工作,或者在您从事某些工作时在其他分支机构中发生了很多事情,那么最好将您的分支机构重新设置为主机。 这使历史保持整洁,使事情更容易遵循。 git checkout master git pull git checkout local_branch_name git rebase master git push --force # force required if you've already pushed 笔记: 不要改变你与他人合作的分支机构。 你应该在你将要合并的分支上进行重新定义,这可能并不总是掌握。 在 http://git-scm.com/book/ch3-6.html 上有一章关于变基的内容,以及 网上的 大量其他资源。 #3楼 你基本上有两个选择: 你合并。

RocketMQ多Master多Slave模式部署

南笙酒味 提交于 2020-01-06 07:17:45
每个 Master 配置一个 Slave,有多对Master-Slave,HA采用同步双写方式,主备都写成功,向应用返回成功。 优点:数据与服务都无单点,Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高。 缺点:性能比异步复制模式略低,大约低10%左右,发送单个消息的RT会略高。目前主宕机后,备机不能自动切换为主机,后续会支持自动切换功能。 ### 先启动 NameServer ### 在机器 A,启动第一个 Master ### 在机器 B,启动第二个 Master ### 在机器 C,启动第一个 Slave ### 在机器 D,启动第二个 Slave 以上 Broker 与 Slave 配对是通过指定相同的brokerName 参数来配对,Master的 BrokerId 必须是 0,Slave 的BrokerId 必须是大与 0 的数。 另外一个 Master 下面可以挂载多个 Slave,同一 Master 下的多个 Slave通过指定不同的 BrokerId来区分。 1. 服务器环境如下图所示 ,四台机器,IP位7为主节点,149是7的从节点。105是主节点,160是105的从节点 序号 IP 用户名 角色 模式 1 192.168.1.7 root nameServer1,brokerServer1 Master1 2 192.168.1.105

redis主从,哨兵回忆手册

无人久伴 提交于 2020-01-06 06:21:08
redis主从   持久化的开启与主从集群是否生效无关系   Slave Server同样是以 非阻塞的方式完成数据同步 。在同步期间,如果有客户端提交查询请求, Redis则返回同步之前的数据(注意初次同步则会阻塞) 。 Replication的工作原理: 如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。 缺点主节点挂了,那么就只能提供读操作了。 应用示例: 这里我们假设Master-Slave已经建立。 #启动master服务器。 [root@Stephen-PC redis]# redis-cli -p 6379 redis 127.0.0.1:6379> #清空Master当前数据库中的所有Keys。 redis 127.0.0.1:6379> flushdb OK #在Master中创建新的Keys作为测试数据。 redis 127.0.0.1:6379> set mykey hello OK redis 127.0.0.1:6379> set mykey2 world OK #查看Master中存在哪些Keys。 redis 127.0.0.1:6379> keys * 1) "mykey" 2) "mykey2" #启动slave服务器。 [root@Stephen-PC redis