02 2018 档案
摘要:在ubunru16.04上重信更改了nginx的配置后,重新reload包一下的错误 解决方案
阅读全文
摘要:storm是Twitter开发的一个开源的分布式实时计算系统,可以简单可靠的处理大量的数据流。storm有很多的应用场景,如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。storm支持水平扩展,具有很高的容错性,保证每个消息都能得快速的得到处理(在一个小的集群中,每个节点每秒可以处理数
阅读全文
摘要:Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码
阅读全文
摘要:Redis有自己的内存分配器,当key value对象被移除时,Redis不会马上向操作系统释放其占用内存。redis之所以这样的设计有两个原因。 OS可能会将释放内存交换到虚拟内存,但OS的虚拟内存又是物理文件,其IO读写效率较低,从而影响Redis性能表现 OS的虚拟内存换入换出是基于Page机
阅读全文
摘要:RabbitMQ Exchange分发消息时根据类型的不同分发策略有区别,目前共四种类型:direct、fanout、topic、headers 。headers 匹配 AMQP 消息的 header 而不是路由键,此外 headers 交换器和 direct 交换器完全一致,但性能差很多,目前几乎
阅读全文
摘要:merge 能够胜任平常大部分的合并需求。但也会遇到某些特殊的情况,例如正在开发一个新的功能,线上说有一个紧急的bug要修复。bug修好了但并不像把仍在开发的新功能代码也提交到线上去。这时候也许想要一个只合并指定某些 commit 的功能。 假设分支结构如下: 再假设 62ecb3 的提交修复了bu
阅读全文
摘要:有时 git diff 执行显示文件内容没变化,但是有 old mode xxx new mode,原因是文件的权限,被chmod变化了,这种变化也被 diff 识别出来了,让git忽略掉文件权限检查可以使用一下命令:
阅读全文
摘要:查看Repository中文件权限 修改权限 权限修改后,相当于文件进入了index中。 提交修改
阅读全文
摘要:引入RabbitMQ的jar包 创建消息生产者 创建消费者
阅读全文
摘要:Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStack 等相比,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、
阅读全文
摘要:RabbitMQ特点 RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的
阅读全文
摘要:安装 添加源 新增公钥 更新源 安装rabbitmq server 检查rabbitmq进程状态 查看安装的插件 查看用户 添加用户 打开http://127.0.0.1:15672用添加的用户登录
阅读全文
摘要:Zookeeper快照文件和事物操作文件以文件的形式存储在硬盘上,以快照文件为主,日志文件为辅。因为当对内存数据进行变更的时候,会保证将事务操作记入log日志,而snapshot只是内存某一个时刻影像,为了性能takeSnapshot生成snapshot并不是实时的,而是由后台线程根据一定规则处理的
阅读全文
摘要:ZKDatabase在内存中维护了zookeeper的sessions, datatree和commit logs集合。 当zookeeper server启动的时候会将txnlogs和snapshots从磁盘读取到内存中。核心逻辑主要在方法ZkDatabase.loadDataBase()中实现,
阅读全文
摘要:Zookeeper事物日志文件用于记录事物操作,如添加,删除节点等等,都会在事务日志中记录一条记录。下面我们就详细分析一下txnLog事务日志文件。 txnLog事务日志文件文件由三部分组成: 日志文件头FileHeader TxnList代表记录记录集合 ZeroPad文件尾部 FileHeade
阅读全文
摘要:Zookeeper内存结构 Zookeeper数据在内存中的结构类似于linux的目录结构,DataTree代表这个目录结构, DataNode代表一个节点。DataTree默认初始化三个目录:"","/zookeeper","/zookeeper/quota" DataNode表示一个节点,存储了
阅读全文
摘要:1.迁移topic到新增的node上 假如现在一个kafka集群运行三个broker,broker.id依次为101,102,103,后来由于业务数据突然暴增,需要新增三个broker,broker.id依次为104,105,106.目的是要把chatmessage迁移到新增node上。脚本(jso
阅读全文
摘要:1、安装install package 按control + `,打开命令输入框 输入一下命令: Sublime Text3请输入以下命令: 2、安装pretty json cmd + shift +p,输入install package,打开包管理器。 输入 pretty json 回车,稍等片刻
阅读全文
摘要:Kafka基于高吞吐率和效率考虑,并没有使用第三方网络框架,而且自己基于java nio封装的,总体网络模型如下: Broker的内部按照SEDA模型处理网络请求,处理过程如下: Accept Thread负责与客户端建立连接链路,然后把Socket轮转交给Process Thread Proces
阅读全文
摘要:Partition Recovery机制 每个Partition会在磁盘记录一个RecoveryPoint, 记录已经flush到磁盘的最大offset。broker fail 重启时,会进行loadLogs。 首先会读取该Partition的RecoveryPoint,找到包RecoveryPoi
阅读全文
摘要:一.topic中partition存储分布 在本地的kafka中,我们只启动一个broker,创建两个topic:single-todo和single-todo-vip ,每个topic有两个partition,在${KAFKA_HOME}conf/server.properties中log.dir
阅读全文
摘要:副本分配算法如下: 将所有N Broker和待分配的i个Partition排序. 将第i个Partition分配到第(i mod n)个Broker上. 将第i个Partition的第j个副本分配到第((i + j) mod n)个Broker上. 将所有N Broker和待分配的i个Partiti
阅读全文