消息队列使用的场景介绍

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题 实现高性能,高可用,可伸缩和最终一致性架构 使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 二、消息队列应用场景 以下介绍消息队列在实际应用...

2019-02-16 17:17:00

阅读数 13

评论数 0

etcd中的环形队列inflights

inflights结构体在progress.go文件中,主要用于记录当前节点已发出未收到的响应的MsgApp消息,具体实现如下 type inflights struct { // the starting index in the buffer start int //记录第一条Ms...

2019-01-31 16:54:33

阅读数 24

评论数 0

golang使用kafka

使用客户端:sarama 需要先安装gcc,windows系统可参考:https://blog.csdn.net/skh2015java/article/details/85075032   生产者   package main import ( "log&...

2019-01-31 14:19:25

阅读数 30

评论数 0

etcd中raft协议的消息(七)——快照复制消息(MsgSnap消息)

MsgSnap消息        通过前面介绍的raft.sendAppend()方法可知,在Leader节点尝试向集群中的Follower节点发送MsgApp消息时,如果查找不到待发送的Entry记录(即该Follower节点对应的Progress.Next指定的Entry记录),则会尝试通过...

2019-01-31 13:59:41

阅读数 34

评论数 0

etcd中raft协议的消息(六)——客户端的写请求相关的消息(MsgProp消息)

        在etcd-raft模块中,客户端发往集群中的写请求是通过MsgProp消息表示的。Raft集群中只有Leader节点能够响应客户端的写入请求。         客户端请求的写操作,会通过调用Node接口的Propose函数请求到raft模块中,当Follower接收到MsgPr...

2019-01-31 13:52:42

阅读数 24

评论数 0

etcd中raft协议的消息(五)—— 客户端只读相关的消息(MsgReadIndex和MsgReadIndexResp消息)

readOnly模式        在看MsgReadIndex类型的消息之前需要先对readOnly的模式有所了解,raft结构体中的readOnly作用是批量处理只读请求,只读请求有两种模式,分别是ReadOnlySafe和ReadOnlyLeaseBased,ReadOnlySafe是ET...

2019-01-31 13:46:26

阅读数 39

评论数 0

etcd中raft协议的消息(四) —— 心跳相关的消息(MsgBeat、MsgHeartbeat、MsgHeartbeatResp和MsgCheckQuorum)

MsgBeat和MsgHeartbeat消息       Leader推动心跳计时器(heartbeatElapsed),而Follower推动选举计时器(electionElapsed),选举计时器的流程前面已经提到,这里主要介绍心跳计时器。当上层模块调用Tick()时,Leader会推动心跳...

2019-01-31 11:46:17

阅读数 32

评论数 0

etcd中raft协议的消息(三) ——MspApp和MsgAppResp消息

MsgApp消息         上小结我们看到节点发起选举的相关消息,当候选人通过选举成为新的Leader后,首先会调用becomeLeader方法初始化相关状态,然后会调用bcastAppend方法,该方法主要向集群中其他节点广播MsgApp消息。消息的简略流程如下:     becom...

2019-01-31 11:24:00

阅读数 35

评论数 0

etcd中raft协议的消息(二) —— 选举相关的消息(MsgHup、MsgPreVote/MsgPreVoteResp、MsgVote/MsgVoteResp)

一、MsgHup消息    在raft协议中我们看到,Leader节点推动心跳计时器,而Follower节点会推动选举计时器。源码主要在etcd的github.com/etcd-io/etcd/tree/master/raft/node.go和raft.go中,raft结构体中有一个electi...

2019-01-31 10:39:47

阅读数 33

评论数 0

etcd中raft协议的消息(一) —— 简述raft中的所有类型消息

etcd中的Raft算法简介    Raft 是一种为了管理复制日志的一致性算法。一致性算法是从复制状态机的背景下提出的(参考英文原文引用37)。在这种方法中,一组服务器上的状态机产生相同状态的副本,并且在一些机器宕掉的情况下也可以继续运行。复制状态机在分布式系统中被用于解决很多容错的问题。例如...

2019-01-31 09:55:02

阅读数 22

评论数 0

golang解析yaml文件

首先安装解析的第三方包: go get gopkg.in/yaml.v2 示例: package main import ( "os" "log" "fmt" &...

2019-01-04 18:40:35

阅读数 60

评论数 0

Golang字符串反序

func ReverseString(s string) string { runes := []rune(s) for from, to := 0, len(runes)-1; from < to; from, to = from+1, to-1 { runes[...

2018-12-27 20:02:46

阅读数 34

评论数 0

Windows系统下载安装MinGW(包括32位和64位)

一、MinGW简介 MinGW是是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。MinGW是从Cygwin(1.3.3版)基础上发展而来。GCC支持的语言大多在MinGW也受支持,其中涵盖C、C++、Objective-...

2018-12-18 19:14:22

阅读数 262

评论数 0

Windows系统下kafka安装使用及配置文件详解

 下载安装kafka之前需要先下载和开启Zookeeper,可参考:https://blog.csdn.net/skh2015java/article/details/85014859 一、下载   下载地址:https://www.apache.org/dyn/closer.cgi?path...

2018-12-15 17:06:53

阅读数 74

评论数 0

Windows系统下安装使用Zookeeper

注:在安装使用前需要先安装jdk,并设置JAVA_HOME和PATH的系统环境变量 1.下载    下载地址:https://zookeeper.apache.org/releases.html#download https://www.apache.org/dyn/closer.cgi#v...

2018-12-15 15:52:46

阅读数 282

评论数 0

CentOS修改时间和时区

一、修改时区:   方法1: cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime   方法2:     列出时区:  timedatectl list-timezones 设置时区:timedatectl set-time...

2018-12-14 17:54:49

阅读数 85

评论数 0

Caddy介绍

caddy源码地址:https://github.com/mholt/caddy caddy下载地址:https://caddyserver.com/download       这是一个Web Server的时代,apache2与nginx共舞,在追求极致性能的路上,没有最高,只有更高...

2018-11-29 17:57:43

阅读数 190

评论数 0

java泛型详解

对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。 本文参考java 泛型详解、Java中的泛型方法、 java泛型详解   1. 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 什么是泛...

2018-11-21 19:38:58

阅读数 28

评论数 0

Golang中http请求设置cookie和header(包括GET和POST请求)

//http请求 func httpHandle(method, urlVal,data string) { client := &http.Client{} var req *http.Request if data == "&qu...

2018-10-31 14:30:12

阅读数 1539

评论数 0

MongoDB开启权限验证及设置用户名密码

一、MongoDB数据库角色 内建的角色 数据库用户角色:read、readWrite; 数据库管理角色:dbAdmin、dbOwner、userAdmin; 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 备...

2018-10-30 17:38:03

阅读数 143

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭