ZooKeeper

Docker

拟墨画扇 提交于 2021-02-12 03:43:57
原文: Docker - 容器部署 Consul 集群 目录 说明 简介 了解 Consul Consul 使用场景 Consul 优势 Consul 中的概念 安装 准备 Consul 镜像 安装单个 Consul 组装集群 Consul 总结 引用和附件 说明 本文主要介绍怎么使用 Docker 在 Linux 环境部署 Consul 集群,如果你对 Docker 不了解的同学,请先学习一下 Docker。推荐一本学习 Docker 在线书籍 : 【Docker入门到实践】 。 本文介绍 Consul 部署已经在准备好 Docker 环境好前提下开始的。 CentOS 7.3 Docker CE 18.09.2 简介 了解 Consul Consul 是一个支持多数据中心分布式高可用的 服务发现 和 配置共享 的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源。 Consul 支持 健康检查 ,并允许 HTTP 、 GRPC 和 DNS 协议调用 API 存储键值对. 命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品. 一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制.

Kafka学习笔记(2)----Kafka的架构

心已入冬 提交于 2021-02-11 02:21:41
1. 架构图      一个Kafka集群中包含若干个Broker(消息实例),Kafka支持Broker横向扩展,Broker越多,吞吐量越大,同时也包含了若干个Producer(可以是web前端产生的Page View,或者是服务器日志,系统CPU、Memory等)和若干个Consumer(消费者)以及一个zookeeper集群,Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。 2. Topic和Partition      Topic:是一个逻辑的概念,它可以认为类似于其他中间件中queue的概念,作为一组消息的一个集合,跟其他的消息中间件一样,每个消息的发送或者是消费都必须要指定Topic,表明将消息存在哪个Topic中。一个Topic可以接受多个Producer发送的消息和被多个Consumer消费。   Partition:了使得Kafka的吞吐率可以线性提高,物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件,同意Topic下不同分区包含的消息是不同的

Kafka学习之路 (二)Kafka的架构

雨燕双飞 提交于 2021-02-11 01:41:31
一、Kafka的架构 如上图所示,一个典型的Kafka集群中包含若干Producer(可以是web前端产生的Page View,或者是服务器日志,系统CPU、Memory等),若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干Consumer Group,以及一个Zookeeper集群。Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。 二、Topics和Partition Topic在逻辑上可以被认为是一个queue,每条消费都必须指定它的Topic,可以简单理解为必须指明把这条消息放进哪个queue里。为了使得Kafka的吞吐率可以线性提高,物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。创建一个topic时,同时可以指定分区数目,分区数越多,其吞吐量也越大,但是需要的资源也越多,同时也会导致更高的不可用性,kafka在接收到生产者发送的消息之后,会根据均衡策略将消息存储到不同的分区中

Redis 集群解决方案 Codis

大兔子大兔子 提交于 2021-02-10 06:34:17
Codis 详细介绍 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务. Codis 由四部分组成: Codis Proxy (codis-proxy) Codis Manager (codis-config) Codis Redis (codis-server) ZooKeeper codis-proxy 是客户端连接的 Redis 代理服务, codis-proxy 本身实现了 Redis 协议, 表现得和一个原生的 Redis 没什么区别 (就像 Twemproxy ), 对于一个业务来说, 可以部署多个 codis-proxy, codis-proxy 本身是无状态的. codis-config 是 Codis 的管理工具, 支持包括, 添加/删除 Redis 节点, 添加/删除 Proxy 节点, 发起数据迁移等操作. codis-config 本身还自带了一个 http server, 会启动一个

Kafka

倖福魔咒の 提交于 2021-02-09 06:42:04
Kafka 入门 什么是 Kafka kafka最初是 LinkedIn 的一个内部基础设施系统。最初开发的起因是, LinkedIn虽然有了数据库和其他系统可以用来存储数据,但是缺乏一个可以帮助处理持续数据流的组件。所以在设计理念上,开发者不想只是开发一个能够存储数据的系统,如关系数据库、Nosql 数据库、搜索引擎等等,更希望把数据看成一个持续变化和不断增长的流,并基于这样的想法构建出一个数据系统,一个数据架构。 Kafka外在表现很像消息系统,允许发布和订阅消息流,但是它和传统的消息系统有很大的差异, 首先,Kafka 是个现代分布式系统,以集群的方式运行,可以自由伸缩。 其次,Kafka 可以按照要求存储数据,保存多久都可以, 第三,流式处理将数据处理的层次提示到了新高度,消息系统只会传递数据,Kafka 的流式处理能力可以让我们用很少的代码就能动态地处理派生流和数据集。所以 Kafka 不仅仅是个消息中间件。 Kafka不仅仅是一个消息中间件,同时它是一个流平台,这个平台上可以发布和订阅数据流(Kafka 的流,有一个单独的包 Stream 的处理),并把他们保存起来,进行处理,这个是 Kafka作者的设计理念。 大数据领域,Kafka 还可以看成实时版的 Hadoop,但是还是有些区别,Hadoop 可以存储和定期处理大量的数据文件,往往以 TB 计数,而

保护Kafka环境的最佳实践

泄露秘密 提交于 2021-02-08 04:37:45
对于许多企业来说,Kafka是整个企业数据系统的中枢,因此保护事件流平台对于数据安全至关重要,并且通常是管理层要求的。本文会讲述五个安全类别以及Kafka和Confluent平台的基本功能,这些功能可以帮助用户保护事件流平台。 认证方式 认证机制会验证接入Kafka和Confluent平台的用户和应用的身份。需要关注的与认证相关的主要领域有三个:Kafka的Broker或Confluent的服务端,Apache ZooKeeper的服务端以及基于HTTP的服务。HTTP服务包括Kafka Connect工作节点、ksqlDB服务端、Confluent REST代理、模式注册表和Control Center。验证与这些服务的所有连接是安全的基础。 Kafka Broker和Confluent服务端 Kafka Broker和Confluent服务端使用 简单认证和安全层 (SASL)或 mutual TLS (mTLS)对来自客户端和其他Broker的连接进行身份验证。 SASL是用于身份验证的框架,提供了多种身份验证机制。当前支持的SASL机制包括 PLAIN 、 SCRAM 、 GSSAPI (Kerberos)和 OAUTHBEARER (注意:OAUTHBEARER的开发者必须提供代码以获取和验证凭据)。Kafka Broker可以 同时启用多种机制

Kafka 最佳实践

别来无恙 提交于 2021-02-08 04:07:49
这是一篇关于 Kafka 实践的文章,内容来自 DataWorks Summit/Hadoop Summit(Hadoop Summit)上的一篇分享,里面讲述了很多关于 Kafka 配置、监控、优化的内容,绝对是在实践中总结出的精华,有很大的借鉴参考意义,本文主要是根据 PPT 的内容进行翻译及适当补充。 Kafka 的架构这里就不多做介绍了,直接步入正题。 Kafka 基本配置及性能优化 这里主要是 Kafka 集群基本配置的相关内容。 硬件要求 Kafka 集群基本硬件的保证 OS 调优 OS page cache:应当可以缓存所有活跃的 Segment(Kafka 中最基本的数据存储单位); fd 限制:100k+; 禁用 swapping:简单来说,swap 作用是当内存的使用达到一个临界值时就会将内存中的数据移动到 swap 交换空间,但是此时,内存可能还有很多空余资源,swap 走的是磁盘 IO,对于内存读写很在意的系统,最好禁止使用 swap 分区; TCP 调优 JVM 配置 JDK 8 并且使用 G1 垃圾收集器 至少要分配 6-8 GB 的堆内存 Kafka 磁盘存储 使用多块磁盘,并配置为 Kafka 专用的磁盘; JBOD vs RAID10; JBOD(Just a Bunch of Disks,简单来说它表示一个没有控制软件提供协调控制的磁盘集合

在CentOS 7上安装Kafka

↘锁芯ラ 提交于 2021-02-07 22:53:56
简介 Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区、多副本、冗余,因此被广泛用于大规模消息数据处理应用。Kafka 支持Java 及多种其它语言客户端,可与Hadoop、Storm、Spark等其它大数据工具结合使用。中文网站: http://kafka.apachecn.org/quickstart.html 本教程主要介绍Kafka 在Centos 7上的安装和使用,包括功能验证和集群的简单配置。 安装JDK Kafka 使用Zookeeper 来保存相关配置信息,Kafka及Zookeeper 依赖Java 运行环境,从 oracle网站 下载JDK 安装包,解压安装: $tar zxvf jdk-8u65-linux-x64.tar.gz $mv jdk1.8.0_65 java 设置Java 环境变量: JAVA_HOME=/opt/java PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME PATH 也可以选择yum install安装,相应设置环境变量。 安装Kafka 从 官网 下载Kafka 安装包,解压安装: tar zxvf kafka_2.11-0.8.2.2.tgz mv kafka_2.11-0.8.2.2 kafka cd

ZooKeeper 基本操作

南笙酒味 提交于 2021-02-07 21:21:06
记录日期:2019年6月20日 14点26分 ZooKeeper 版本:3.5.5 参考链接: https://zookeeper.apache.org/doc/current/zookeeperStarted.html 1、连接 ZooKeeper E:\environment\zookeeper\apache-zookeeper-3.5.5>bin\zkCli -server 127.0.0.1:2181 2、查看节点 ls / 3、创建节点 create /zk_test my_data 4、设置节点数据 set /zk_test junk 5、获取节点数据 get /zk_test 6、删除节点 delete /zk_test 如果删除的节点存在子节点,删除失败,使用以下命令。 deleteall /zk_test 7、查看节点状态 stat /zk_test ZooKeeper 命令: ZooKeeper - server host:port cmd args addauth scheme auth close config [ -c] [-w] [- s] connect host:port create [ -s] [-e] [-c] [- t ttl] path [data] [acl] delete [- v version] path deleteall

kafka集群管理工具kafka-manager部署安装

天大地大妈咪最大 提交于 2021-02-07 20:35:36
一、kafka-manager 简介 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能: 1.管理多个kafka集群 2.便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况) 3.选择你要运行的副本 4.基于当前分区状况进行 5.可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同) 6.删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true) 7.Topic list会指明哪些topic被删除(在0.8.2以上版本适用) 8.为已存在的topic增加分区 9.为已存在的topic更新配置 10.在多个topic上批量重分区 11.在多个topic上批量重分区(可选partition broker位置) kafka-manager 项目地址: https://github.com/yahoo/kafka-manager 二