kafka外部访问设置
一、broker参数
broker.id:kafka集群的唯一标识。
log.dirs:kafka存储消息日志的目录,多个用逗号隔开,需要保证指定的目录有充足的磁盘空间。
zookeeper.connect:必须配置,指定kafka集群注册的zookeeper集群的地址。格式是:[主机名]:端口,多个使用逗号隔开。当多个kafka集群注册到同一个zookeeper集群时,必须在末尾指定chroot(即当前kafka集群注册到zookeeper的根目录),用于
将每个kafka集群隔离开,如:localhost:2181,localhost:2182/kafka_cluster1,此处的/kafka_cluster1就表示chroot。
listeners:该参数用于客户端连接broker端。格式:[协议]://[主机名]:[端口],多个使用逗号隔开。如果不指定主机名,则绑定默认网卡,若主机名是:0.0.0.0,则绑定多有网卡。kafka当前支持的协议包括:PLAINTEXT、SSL和SASL_SSL。对于未启用安全的
kafka集群,使用PLAINTEXT就可以了。否者使用SSL或者SASL_SSL。
advertised.listeners:和listeners类似,也是用于发布给clients的,不过该参数主要用于IaaS环境。对于有多块网卡的环境(公网网卡和私网网卡),可以指定该参数绑定公网IP,供外部clients使用,使用listeners绑定私网IP,公内部clients使用。
unclean.leader.election.enable:是否开启unclean leader选举,默认是false。表示如果ISR变空,而此时leader有宕机了,kafka不允许从剩下存活的非ISR副本中选择一个当leader,因为如果允许,虽然kafka可以继续为clients提供服务,但会造成数据丢失。
delete.topic.enable:是否允许删除topic及管理的所有数据,新版本默认允许。这是一个异步删除。
log.retention.{hours|minutes|ms}:该参数主要用于设置kafka消息持久化的时间,若同时设置,优先级是ms>minutes>hours,默认是保存7天。
log.retention.bytes:该参数主要控制kafka集群需要为每个消息日志保存多大的数据。对于大小超过了这个设置,kafka会自动清理过期的日志段文件。默认是1G。
min.insync.replicas:该参数主要配合producer的acks使用。当acks=-1,表示producer端寻求最高等级的持久化保证,而min.insync.replicas也只有在acks=-1时才有意义,它指定了broker端必须成功响应clients端消息发送的最少分片数才算成功。举个栗子:
加上某个topic的每个分片数为3,当min.insync.replicas=2,则表示我们容一台kafka机器宕机。
num.network.threads:控制一个broker在后台用于处理网络请求的线程数,默认3。这里的“处理”只是负责转发请求,他会将接收到的请求转发到后面的处理线程中。在正式环境中,用户需要不停的监控NetworkProcessorAvgIdlePercent JMX指标,若该指标
持续低于0.3,则需要调大该参数。
num.io.threads:这个参数是控制broker端实际处理网络请求的线程数,默认8,。kafka默认创建8个线程以轮询的方式不停的监听转发过来的网络请求并进行处理。kafka同样也为请求处理提供了一个JMX监控指标RequestHandlerAvgIdlePercent ,当指标低于0.3时,
则需要调大该参数。
message.max.bytes:kafka能够接受的最大消息大小,默认是977KB,用户可以根据需要进行设置。
二、topic参数
delete.retention.ms:每个topic可以设置自己的留存时间,以覆盖broker设置的全局留存时间。
max.message.bytes:覆盖全局的message.max.bytes。
retention.bytes:覆盖全局的log.retention.bytes。
FAQ
2018-05-02 14:49:18.916 WARN 11916 --- [ntainer#0-3-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-4, groupId=cwenao-group] Connection to node 0 could not be established. Broker may not be available.
0.10.x broker配置弃用了advertised.host.name和 advertised.port这两个个配置项,就配置advertised.listeners就可以了。
kafka外部访问设置的更多相关文章
- linux mysql 数据库开启外部访问设置指南
Linux下设置MySQL和允许外部机器访问,具体目录是具体情况而定,有的人是安装了在个人目录下,则找到对应的目录则可以 Linux下设置MySQL和允许外部机器访问sudo vi /etc/my.c ...
- Redis 外部访问设置
1.错误原因 Redis搭建好后一般都是使用编程语言进行连接调用,默认Redis的设置是不允许外界访问的,连接Redis只能通过本地(127.0.0.1)来连接,而不能使用网络IP(192.168.1 ...
- ubuntu系统lamp环境搭建、数据库迁移、设置数据库外部访问
sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 ...
- centos7 打开mysql 3306端口并 设置外部访问
mysql安装后默认是localhost访问,如果需要外部访问可以设置一个新的账号把host改为%,意味着所有ip均可以访问 grant all privileges on *.* to 'outUs ...
- mysql 设置可以外部访问
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; --授权可以外部 ...
- C# Web应用调试开启外部访问
在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...
- centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法
centos 下安装jdk.tomcat 以及tomcat无法从外部访问的解决办法 原创 2014年08月28日 10:24:33 标签: selinux enforce cent 2223 昨天在c ...
- 私有字段private也可以外部访问
<?php//私有字段private也可以外部访问class nowamagic { private $domain; function __get($key){ return "使用 ...
- 2016/07/07 wamp中apache2.4.9允许外部访问的配置 重点是版本 版本不同配置效果不同
wamp安装包中安装好服务器之后只能使用127.0.0.1来访问了,如果我们要设置多个站点或其它像192.168.1.1这种就需要进行一下修改,具体步骤如下. wamp-apache2.4.9允许 ...
随机推荐
- 地产propretie单词propretie财产
中文名:房产财产地产 外文名:property.propretie 释义:财产.所有物等 用法:作名词. 词汇搭配动词+-等 目录 1 英文释义 2 释义例句 3 词汇搭配 4 衍生 英文释义 1. ...
- sendMessage 与 obtainMessage (sendToTarget)比较
我们平时在做到多线程问题的时候可能利用Handler去传递Message,其中,经常使用的就是 1.new Handler().obtainMessage().sendToTarget(); 2.ne ...
- jQuery循环之each()
/** *定义和用法:$(selector).each(function(index,element)) *each()函数会对每个匹配到的元素运行函数(返回false可终止循环). *each()函 ...
- WebService基础概念
一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...
- spring Cloud Feign作为HTTP客户端调用远程HTTP服务
在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Ap ...
- PL/SQL Developer 快捷键
前面我有分享了一个PLSQL美化规则,其实通过统一的美化SQL,把这里SQL写在Java代码里可以比较容易阅读代码,且保持良好得编码风格. 在工作中我们也经常使用PLSQL来写一SQL,有些常用的SQ ...
- Java中String对象的存储位置(学习笔记)
首先,String是final修饰的.immutable对象,它以一个个字符的方式存储在字符数组中.其次,String类型创建对象有两种方式:①通过字面量赋值:会先去常量池中查找是否存在相同的字符串, ...
- 关于Classloader(学习笔记)
1)类加载的过程是怎么样的?①加载:根据具体需求,选择合适的加载器(Bootstrap ClassLoader不可直接获取.Extension ClassLoader.系统.自定义)来控制字节流的获取 ...
- Maven下创建SSM项目的所有依赖和插件
记录下来,方便以后使用 tomcat:7 Maven:3.6.1 IDEA:2018.3 <properties> <spring.version>5.1.5.RELEASE& ...
- k-mean
import numpy as np from k_initialize_cluster import k_init np.random.seed() class YOLO_Kmeans: def _ ...