ZK

8 分钟了解 Kubernetes

本小妞迷上赌 提交于 2020-03-01 15:57:49
Kubernetes 脱胎于 Google 的 Borg 系统,是一个功能强大的容器编排系统。Kubernetes 及其整个生态系统(工具、模块、插件等)均使用 Go 语言编写,从而构成一套面向 API、可高速运行的程序集合,这些程序文档精良、易于参与贡献或在其上构建应用程序。 每个开发、运维或感兴趣的读者都应熟悉它的一些核心概念,以便理解这个系统及其不同的功能,以及为什么几乎所有人都在使用它。 在继续之前,我想提一下 Kubernetes 的几个顶级朋友(或竞争对手):ECS、Nomad 和 Mesos。ECS 是 AWS 自己的编排解决方案,最近它又推出了托管在 AWS 上的 Kubernetes 系统——EKS。两者都支持 FARGATE,让用户无须关心所运行的物理资源。 Kubernetes 毫无疑问是最大赢家,作为一个开源系统,三大主流云服务商都以托管的方式提供了这项功能。但是,它比其他几个产品都要来得复杂和混乱。Kubernetes 可以处理几乎任何类型的容器负载,也有很多技巧,但这并不意味着每个人都应该使用它。其他解决方案或许也能满足某些公司的要求,例如,完全部署在 AWS 上的互联网产品公司,使用 ECS 会比 Kubernetes 具有更佳的生产环境体验,是的,也好于 EKS。 话虽如此,Kubernetes 的魔力在于:它可以部署在任何地方、它拥有一个活跃的社区

发现一套面试题--很震撼,整理下答案吧,网上搜集的答案,自己不会啊

这一生的挚爱 提交于 2020-03-01 10:03:20
面试题网址 https://www.oschina.net/question/3866162_2280368 以下为原内容,后边整理下答案。 淘宝一面: 1.简单介绍你目前的工作情况 2.在这些工作项目当中有没有哪些项目是你主导或者比较了解的,详细说明一下情况,包括技术的设计 3.由项目中所使用的框架,介绍一下对公司内部框架的具体实现(我这里主要是亚信的CSF和AICACHE) 4.csf是怎么实现的? 5.csf是亚信内部的分布式通信框架,通过zk去管理服务注册和发现,那么,如果当zk集群压力过大,是如何动态扩容和管理的?比如像阿里这样体系的公司, 对于服务注册和发现,可以如何设计,去承载搞负载,高并发的,也就是主机集群并没有宕机,但是负载很高,如何做扩展和优化? 6.当前是一个服务提供者,我发布了服务之后向zk注册,此时,服务调用方来调用服务,会首先询问zk我要调用的服务有哪些提供者,这些服务信息是缓存在 服务调用者这一方,还是每次调用时都问zk要呢? 7.如果服务调用时,突然提供服务的主机不可用了,比如因为网络抖动调用不通,此时又是一个什么样的流程呢? 8.假如此时服务不可用的主机短时间内又恢复了服务提供能力,又是一个怎样的流程? 9.csf服务本身有路由规则的设计吗?双机房,相互容灾,甚至是异地多机房相互容灾,调同机柜,同机房,同城,这些调用顺序是如何设计的

Eureka VS Zookeeper

∥☆過路亽.° 提交于 2020-03-01 08:50:59
Zookeeper(Zookeeper保证CP)缺点:存在服务不可用情况 当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性的要求要高于一致性。但是zk会出现这样一种情况,当master节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举。问题在于,选举leader的时间太长,30 ~ 120s, 且选举期间整个zk集群都是不可用的,这就导致在选举期间注册服务瘫痪。在云部署的环境下,因网络问题使得zk集群失去master节点是较大概率会发生的事,虽然服务能够最终恢复,但是漫长的选举时间导致的注册长期不可用是不能容忍的。 Eureka保证AP Eureka看明白了这一点,因此在设计时就优先保证可用性。Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册或时如果发现连接失败,则会自动切换至其它节点,只要有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性)。除此之外,Eureka还有一种自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障

Kafka无法消费!?究竟是bug的“沦陷”还是配置的“扭曲”?

流过昼夜 提交于 2020-03-01 05:10:18
在一个月黑风高的夜晚,突然收到现网生产环境Kafka消息积压的告警,梦中惊醒啊,马上起来排查日志。 问题现象 消费请求卡死在查找Coordinator Coordinator为何物?Coordinator用于管理Consumer Group中各个成员,负责消费offset位移管理和Consumer Rebalance。Consumer在消费时必须先确认Consumer Group对应的Coordinator,随后才能join Group,获取对应的topic partition进行消费。 那如何确定Consumer Group的Coordinator呢?分两步走: 1、 一个Consumer Group对应一个__consumers_offsets的分区,首先先计算Consumer Group对应的__consumers_offsets的分区,计算公式如下: __consumers_offsets partition# = Math.abs(groupId.hashCode() % groupMetadataTopicPartitionCount,其中groupMetadataTopicPartitionCount由offsets.topic.num.partitions指定。 2、 1中计算的该partition的leader所在的broker就是被选定的Coordinator。

大数据(kafka-原理及架构)

三世轮回 提交于 2020-02-29 12:43:09
kafka背景及应用场景 由LinkedIn 公司开发的一个分布式的消息系统; 高吞吐率; 支持Kafka Server间的消息分区,及分布式消费; 同时支持离线数据处理和实时数据处理; 支持在线水平扩展。 kafka基本架构 kafka基本名词解释 kafka顺序写磁盘 Kafka的文件存储机制 Kafka的文件复制原理 Kafka的数据可靠性的保证 request.required.acks=-1参数来设置数据可靠性的级别 min.insync.replicas配合使用 Kafka的发送模式,默认同步producer.type=sync,以下是异步的参数 Kafka的消息传输保障 At most once: 消息可能会丢,但绝不会重复传输 At least once:消息绝不会丢,但可能会重复传输 Exactly once:每条消息肯定会被传输一次且仅传输一次 Kafka的单节点搭建 Kafka版本下载 配置server.properties和consumer.properties Kafka依赖zookeeper 搭建步骤 1:下载kafka 地址:http://kafka.apache.org/downloads 2:上传安装包到服务器上面,并且进行解压 3:进入kafka的安装目录下的config目录 1)编辑server.properties文件,修改zk的服务地址

大数据教程(3.6):zookeeper的命令行客户端+znode数据结构类型+监听等功能_

一个人想着一个人 提交于 2020-02-29 07:56:27
上一篇文章,博主介绍了zookeeper集群的搭建全过程;今天博主将为大家分享的是zookeeper的命令行客户端使用、zookeeper的数据结构和监听功能。 zookeeper启动与关闭服务的命令: ./bin/zkServer.sh start 开启zookeeper ./bin/zkServer.sh stop 停止zookeeper 一、zookeeper数据结构 zookeeper特性: 1)、Zookeeper:一个leader,多个follower组成的集群 2)、全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的 3)、分布式读写,更新请求转发,由leader实施 4)、更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行 5)、数据更新原子性,一次数据更新要么成功,要么失败 6)、实时性,在一定时间范围内,client能读到最新数据 zookeeper数据结构: 1)、层次化的目录结构,命名符合常规文件系统规范(见下图) 2)、每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识 3)、节点Znode可以包含数据和子节点(EPHEMERAL短暂类型的节点不能有子节点) 4)、客户端应用可以在节点上设置监视器 数据结构的图: 节点类型 1)、Znode有两种类型: 短暂

区块链100讲:加密货币隐私性概述

陌路散爱 提交于 2020-02-29 02:47:17
“在我眼中,隐私就是让我们免于言行受到外界关注的困扰,并创造出一些空间以便我们为了自身的幸福而随心所欲地进行优化,只是为了我们自己的幸福,而不是因为在意别人对我们的看法。”—— Vitalik Buterin 众所周知,隐私性是近来加密货币领域的一项重要话题。无论是公司还是个人,都不希望本国政府、他国政府、家人、同事或商业竞争对手可以毫无限制地随意查看他们发布在公有链上的所有信息。 目前针对保护区块链上隐私的各种方法已经过大量的试验和研究。然而,我们尚未看到过关于这方面的综合性概述。 在这篇文章中,我们将从以下四个方面分析有关隐私领域的最新试验和研究情况:1)隐私币;2)智能合约隐私;3)隐私架构;和4)隐私研究。 1 比特币的隐私(或者说,比特币没有隐私) 原先,比特币是作为匿名加密货币被开发的,只要现实世界的身份无法与比特币地址联系起来,就能保护隐私。然而,由于比特币区块链的公开性,人们很快就发现,基于某些地址和交易的使用模式是有可能识别个人身份的。另外,节点在广播交易时也会泄露自己的 IP 地址。 每个节点代表一个地址,每条边代表一项交易。许多节点(诸如 Mt. Gox、Silk Road 和 Satoshi Dice)的身份都已经根据其交易模式被识别出来了。 2013年,Meiklejohn 等人成功地识别出了很多在线钱包、商户和其它服务提供商的身份。如今,诸如

5分钟带你体验一把 Kafka

余生颓废 提交于 2020-02-28 16:10:10
说在文章前面的话: 前置条件:你的电脑已经安装 Docker 主要内容: 使用 Docker 安装 使用命令行测试消息队列的功能 zookeeper和kafka可视化管理工具 Java 程序中简单使用Kafka 使用 Docker 安装搭建Kafka环境 单机版 下面使用的单机版的Kafka 来作为演示,推荐先搭建单机版的Kafka来学习。 以下使用 Docker 搭建Kafka基本环境来自开源项目:github.com/simplesteph… 。当然,你也可以按照官方提供的来:github.com/wurstmeiste… 。 新建一个名为 zk-single-kafka-single.yml 的文件,文件内容如下: version: '2.1' services: zoo1: image: zookeeper:3.4.9 hostname: zoo1 ports: - "2181:2181" environment: ZOO_MY_ID: 1 ZOO_PORT: 2181 ZOO_SERVERS: server.1=zoo1:2888:3888 volumes: - ./zk-single-kafka-single/zoo1/data:/data - ./zk-single-kafka-single/zoo1/datalog:/datalog kafka1: image:

数据库水平切分(Mycat分片路由原理和全局序列号)

我与影子孤独终老i 提交于 2020-02-28 15:55:43
分片路由原理 Select * from travelrecord where id in(5000001, 10000001); dn1,dn2,dn3, id=5000001这条数据在dn2上,id=10000001这条数据在dn3上。 全部扫描一遍dn1 dn2 dn3,结果导致性能浪费。 扫描某个片。漏掉数据的情况。 总结:不能多扫===》性能不足,也不能少===》漏掉数据。 Mycat使用DruidParser作为分析器。 Visitor/Statement Visitor过程,解析如下属性: 哪一张表 字段列表 条件信息 什么样的SQL Statement过程 改写SQL: Dn2, id= 5000001 Dn3, id= 100000001 Select * from travelrecord where id = 5000001;(dn2执行) Select * from travelrecord where id = 10000001;(dn3执行) 查看mycal参数信息 9066端口连接后 show @@sysparam\G; 可以看到 sequnceHandlerType全局序列号类型 mysql> show @@sysparam\G; *************************** 1. row *************************

5分钟带你体验一把 Kafka

倾然丶 夕夏残阳落幕 提交于 2020-02-28 13:12:25
Guide哥答应大家的 Kafka系列的第2篇原创文章。为了保证内容实时更新,我将相关文章也发送到了Gihub上!地址 :https://github.com/Snailclimb/springboot-kafka 相关阅读: 入门篇!大白话带你认识 Kafka! 前置条件:你的电脑已经安装 Docker 主要内容: 使用 Docker 安装 使用命令行测试消息队列的功能 zookeeper和kafka可视化管理工具 Java 程序中简单使用Kafka 使用 Docker 安装搭建Kafka环境 单机版 下面使用的单机版的Kafka 来作为演示,推荐先搭建单机版的Kafka来学习。 以下使用 Docker 搭建Kafka基本环境来自开源项目: https://github.com/simplesteph/kafka-stack-docker-compose 。当然,你也可以按照官方提供的来: https://github.com/wurstmeister/kafka-docker/blob/master/docker-compose.yml 。 新建一个名为 zk-single-kafka-single.yml 的文件,文件内容如下: version: '2.1' services: zoo1: image: zookeeper:3.4.9 hostname: zoo1 ports