kafka-producer kerberos 原理和配置
kerberos简单介绍
kerberos这一名词来源于希腊神话“三个头的狗---地狱之门守护者”后来沿用作为安全认证的概念,该系统设计上
采用客户端/服务器结构与DES(Data Encryption Standard标准加密技术),AES(Advanced Encryption Standerd
高级加密技术)等加密技术,并且能够进行相互认证,即客户端和服务端均可对对方进行身份认证。可以防止窃听、
防止replay攻击、保护数据完整性等场合,是一种应对对称密钥体制进行密钥管理的系统。
基本概念
票据授权票(TGT Ticket Granting):
用于应用程序与KDC(Key Distribution Center 密钥分发中心)服务器建立安全会话的票据,票据授权票存在有效期,
当票据授权票失效后,应用侧需要重新建立与KDC服务器的安全会话。会话有效期为24小时,不可配置。
服务票据(ST Service Ticket):
用于应用程序与服务端建立安全会话的票据,服务票据存在有效期,当服务票据失效后,应用侧需要重新建立于
服务端的安全会话。默认有效期5分钟,不可配置。
kafka kerberos 配置
详见网络说明在这里不再赘述:http://orchome.com/500
kafka kerberos producer客户端配置
1)使用配置文件kafka-console-producer.sh生产数据
cat kafka_client_jaas.conf 文件配置
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=false
useKeyTab=true
keyTab="/hbase/test.keytab"
principal="test@KERBEROS.TEST"
serviceName="kafka"
Client=true;
};
配置环境变量KAFKA_OPTS 举例说明
export KAFKA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=/kafka_client_jaas_acl.conf"
cat producer.properties
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka
生产脚本kafka-console-producer.sh
./kafka-console-producer.sh --broker-list hostname:9092 --topic TEST_ACL1 --producer.config producer.properties
kafka kerberos producer客户端JAVA代码设置
import org.apache.kafka.clients.producer.*;
import java.util.Properties; /**
* Created by Administrator on 2018-05-24.
*/
public class mykafkaprocucerwithkerberos { private static final String BROKER_LIST = "127.0.0.1:9093"; public static void main(String[] args) throws InterruptedException { String rootPath = System.getProperty("user.dir");
System.setProperty("java.security.krb5.conf", rootPath + "/src/main/resources/krb5.conf");
System.setProperty("java.security.auth.login.config",rootPath + "/src/main/resources/kafka_client_jaas.conf"); Properties props1 = new Properties();
Producer<String, Object> producer1=null;
props1.put("bootstrap.servers", BROKER_LIST);
props1.put("security.protocol","SASL_PLAINTEXT");
props1.put("sasl.mechanism","GSSAPI");
props1.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props1.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); producer1= new KafkaProducer<String,Object>(props1);
int line = 1;
while (line <=4) {
ProducerRecord<String, Object> message1= new ProducerRecord<String, Object>("TEST_ACL1","TEST_TOPIC_DATA");
producer1.send(message1, new Callback() {
public void onCompletion(RecordMetadata recordMetadata, Exception e) {
if( e!=null){
e.printStackTrace();
System.out.println("failed");
}else {
System.out.println(recordMetadata.topic());
}
}
});
line++;
}
producer1.close();
}
}
kafka-producer kerberos 原理和配置的更多相关文章
- kafka producer 生产者客户端参数配置
在生产者向broker发送消息时,需要配置不同的参数来确保发送成功. acks = all #指定分区中有多少副本必须收到这条消息,生产者才认为这条消息发送成功 acks = 0 #生产者发送消息之后 ...
- Apache Kafka Producer For Beginners
在我们上一篇Kafka教程中,我们讨论了Kafka Cluster.今天,我们将通过示例讨论Kafka Producer.此外,我们将看到KafkaProducer API和Producer API. ...
- flume集成kafka(kafka开启kerberos)配置
根据flume官网:当kafka涉及kerberos认证: 涉及两点配置,如下: 配置一:见下实例中红色部分 配置conf实例: [root@gz237-107 conf]# cat flume_sl ...
- 【原创】Kafka producer原理 (Scala版同步producer)
本文分析的Kafka代码为kafka-0.8.2.1.另外,由于Kafka目前提供了两套Producer代码,一套是Scala版的旧版本:一套是Java版的新版本.虽然Kafka社区极力推荐大家使用J ...
- 【转】Kafka producer原理 (Scala版同步producer)
转载自:http://www.cnblogs.com/huxi2b/p/4583249.html 供参考 本文分析的Kafka代码为kafka-0.8.2.1.另外,由于Kafka目前提供了两 ...
- 深入剖析kafka架构内部原理
1 概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cl ...
- Kafka producer介绍
Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer.本文着重讨论新版本producer的设计原理以及基本的使用方法. 新版本Producer 首先明确 ...
- Kafka设计解析(十四)Kafka producer介绍
转载自 huxihx,原文链接 Kafka producer介绍 Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer.本文着重讨论新版本produce ...
- kafka集群原理介绍
目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...
随机推荐
- spring-data-jpa——如果使用了one-to-many,many-to-one的注解,在Jackson进行json字符串化时出现错误的解决方案
参考资料: http://blog.csdn.net/remote_roamer/article/details/51330843 http://blog.csdn.net/xiaodaiye/art ...
- java笔记 -- java运算
运算符: 算术运算符: 加减乘除求余 + , - , * , / , % 当参与/运算的两个操作数都是整数时, 表示整数除法, 否则表示浮点除法. 例: 15 / 2 = 7; 15 % 2 = 1; ...
- web 服务发布注意事项
1.在发布的时候首先查看服务器对外开放的端口,如果没有最好和客户进行沟通需要开放那些对应的端口,要不外界无法访问发布的站点. 2.在oracle需要远程控制服务器的数据库的时候需要开发1521端口.
- 手机端页面可以左右轻微拖动的bug
在做项目的时候,必须要适应各种屏幕,移动端是必须的. 但是在移动端中,网站是左右可以动,怎么办呢? 这是只要在样式表中写入 html,body{overfow-x:hidden;} bug产生在H5的 ...
- Bupt归队赛, gunfight
只需要关心是否开枪,上个人和当前这个人的位置关系,转移可以前缀和优化 为了不重复,始终认为第一个就是1,最后答案乘以n #include<bits/stdc++.h> using name ...
- SAP跳过权限检查/前提是有debug权限
SE37,AUTH_CHECK_TCODE加断点: 执行事务代码,进入断点,修改sy-subrc = 0,执行,就可以跳过权限检查. 只给了事务代码权限,没有操作权限: CL_SUID_TOOLS== ...
- 3. Longest Substring Without Repeating Characters无重复字符的最长子串
网址:https://leetcode.com/problems/longest-substring-without-repeating-characters/ 显然采用sliding window滑 ...
- Hadoop 2.7.4 HDFS+YRAN HA部署
实验环境 主机名称 IP地址 角色 统一安装目录 统一安装用户 sht-sgmhadoopnn-01 172.16.101.55 namenode,resourcemanager /usr/local ...
- jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详解
1.(function($) {…})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){…} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写 ...
- zzw原创_解决Could not chdir to home directory /test/bdctool: Permission denied一例
1.用命令新建一用户 adduser -d /test/bdctool -m bdctool 2.用新用户登录,报错:Could not chdir to home directory /test/ ...