NO WAY OUT | 无往不前


  • 首页

  • 分类

  • 欧拉计划

  • ARTS计划

  • 归档

  • 标签

  • 关于

  • 搜索

正向代理和反向代理的区别

发表于 2021-02-19 | 分类于 网络 | | 阅读次数:

什么是代理服务器?

所谓代理服务器就是位于发起请求的客户端与原始服务器端之间的一台跳板服务器,正向代理可以隐藏客户端,反向代理可以隐藏原始服务器。

阅读全文 »

Linux国内各大源站

发表于 2021-01-18 | | 阅读次数:
企业源:

阿里云开源镜像站: http://mirrors.aliyun.com/
搜狐开源镜像站:http://mirrors.sohu.com/
网易开源镜像站:http://mirrors.163.com/

阅读全文 »

Kafka-Cluster-building

发表于 2020-11-11 | | 阅读次数:

https://cloud.tencent.com/developer/article/1023898

zookeeper集群搭建

发表于 2020-11-11 | 分类于 教程 | | 阅读次数:

为什么 zookeeper 集群的节点数是奇数

zookeeper 集群通常是用来对用户的分布式应用程序提供协调服务的,为了保证数据的一致性,对 zookeeper 集群进行了这样三种角色划分:leader、follower、observer分别对应着主、从、观察者。

1
2
3
leader : 负责进行投票的发起和决议,更新系统状态。
follower : 用于接收客户端请求并向客户端返回结果以及在选举过程中参与投票。
observer : 通常是针对于查询操作做负载的。 observer 与 follower 节点最大的不同在于 observer 没有投票权,在客户端发起的增删改操中, leader 节点是不会把消息传递给 observer 让其投票的。但是查询操作跟 follower 一样,客户端的查询到了 observer 节点, observer 节点会去访问 leader 节点取最新的数据然后返回给客户端。

集群可以保证在每台机器数据保持一致的情况下,客户端每次发起的查询操作,集群节点都能返回同样的结果。但是对于客户端发起的增、删、改等能改变数据的操作,如果集群中的多台机器各自修改数据,那么就无法保证数据的一致性。

那么,对于增、删、改操作, zookeeper 集群规定只有 leader 节点才有权利去执行修改数据的操作,而 follower 节点即使接收到客户端发起的数据修改操作,也要将其转交给 leader 来处理, leader节点接收到修改数据的请求后,会向所有 follower 节点广播一条消息,让其执行操作, follower 节点执行完后,需要向 leader 节点回复执行结果。当 leader 节点收到半数以上的 follower 节点的确认消息后,便会判定该操作执行完毕,然后向所有 follower 节点广播该操作已经生效。

所以在 zookeeper 集群中, leader 节点是不可缺少的, leader 节点也是由所有 follower 节点选举产生,而且只有一个。

//todo leader节点选取逻辑

zookeeper 集群中 leader 的选取逻辑,要求 可用节点数量 > 总节点数量 / 2,注意,这里是 > ,并非 >= 。

为什么集群节点数量要奇数个,主要从以下两个方面考虑。

防脑裂导致集群不可用

在一个 zookeeper 集群中,可以有多个 follower 和 observe 节点,但是有且只能有一个 leader 节点。如果 leader 节点不可用或者宕机,剩下的所有节点机器会投票产生新的 leader 节点。

集群脑裂: 一个集群由于网络不通或者其他原因分裂成多个小集群的现象。

容错率和成本控制

https://www.cnblogs.com/lishiqi-blog/p/12314111.html

https://www.cnblogs.com/ysocean/p/9860529.html

https://blog.csdn.net/jiangxiulilinux/article/details/96433560

Introduction-to-h264-frame

发表于 2020-10-21 | | 阅读次数:

Linux 环境下搭建 MySQL 主从同步

发表于 2020-10-12 | 分类于 MySQL | | 阅读次数:

MySQL 主从复制是指数据可以从一个 MySQL 数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。

阅读全文 »

详解 HTTP/2 四大核心特性

发表于 2020-09-15 | | 阅读次数:

HTTP/2 是 HTTP 协议自 1999 年 HTTP 1.1 发布后的首个更新,主要基于 SPDY 协议。由互联网工程任务组(IETF)的 Hypertext Transfer Protocol Bis(httpbis)工作小组进行开发。该组织于2014年12月将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。HTTP/2标准于2015年5月以RFC 7540正式发表。

阅读全文 »

同城双中心容灾简介及部署网络

发表于 2020-03-04 | 分类于 教程 | | 阅读次数:

同城双中心是指在同城或邻近城市建立两个可独立承担业务的数据中心,双中心具备基本相同的业务处理能力并通过高速链路实时同步数据,日常情况下可同时分担业务及管理系统的运行,并可切换运行;灾难情况下备应急切换,保证业务的持续性。异地灾备中心是指在异地的城市建立一个备份的灾备中心,用于双中心的数据备份,当双中心出现自然灾害等原因而发生故障时,异地灾备中心可以用备份数据进行业务的恢复。

同城双中心的部署方式分为两种,分别为主备和双活。

阅读全文 »

gRpc-go流模式中,服务端如何主动关闭stream

发表于 2020-03-02 | 分类于 教程 | | 阅读次数:

在使用gRpc流模式的过程中会发现,官方API只提供了客户端关闭stream的方法。

1
2
3
4
// CloseSend closes the send direction of the stream. It closes the stream
// when non-nil error is met. It is also not safe to call CloseSend
// concurrently with SendMsg.
CloseSend() error

那么在开发过程中我们是不是需要从服务端主动断开stream,如果需要,该怎么断开?

阅读全文 »

最佳实践之 - Golang's Dockerfile

发表于 2020-02-13 | 分类于 最佳实践 | | 阅读次数:

常用做法

基于 golang 官方基础镜像打包,Dockerfile如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 基于 golang 官方基础镜像打包
FROM golang:1.12

NV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct

WORKDIR /app

COPY . .

RUN go build .

EXPOSE 10010

ENTRYPOINT ["./app"]

但是最终 docker build 出来的镜像高达300多M, 这是由于 golang 这个基础镜像中的工具链及其依赖项(git,mercurial 等)重达几百MB,而这一部分我们在运行的时候是不需要的。

因此,我们需要对基础镜像进行精简。

阅读全文 »
1234…6
xiaolong

xiaolong

51 日志
18 分类
62 标签
RSS
GitHub Twitter weibo LinkedIn
© 2017 — 2021 xiaolong
since 2017