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 原理和配置的更多相关文章

  1. kafka producer 生产者客户端参数配置

    在生产者向broker发送消息时,需要配置不同的参数来确保发送成功. acks = all #指定分区中有多少副本必须收到这条消息,生产者才认为这条消息发送成功 acks = 0 #生产者发送消息之后 ...

  2. Apache Kafka Producer For Beginners

    在我们上一篇Kafka教程中,我们讨论了Kafka Cluster.今天,我们将通过示例讨论Kafka Producer.此外,我们将看到KafkaProducer API和Producer API. ...

  3. flume集成kafka(kafka开启kerberos)配置

    根据flume官网:当kafka涉及kerberos认证: 涉及两点配置,如下: 配置一:见下实例中红色部分 配置conf实例: [root@gz237-107 conf]# cat flume_sl ...

  4. 【原创】Kafka producer原理 (Scala版同步producer)

    本文分析的Kafka代码为kafka-0.8.2.1.另外,由于Kafka目前提供了两套Producer代码,一套是Scala版的旧版本:一套是Java版的新版本.虽然Kafka社区极力推荐大家使用J ...

  5. 【转】Kafka producer原理 (Scala版同步producer)

    转载自:http://www.cnblogs.com/huxi2b/p/4583249.html     供参考 本文分析的Kafka代码为kafka-0.8.2.1.另外,由于Kafka目前提供了两 ...

  6. 深入剖析kafka架构内部原理

    1 概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cl ...

  7. Kafka producer介绍

    Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer.本文着重讨论新版本producer的设计原理以及基本的使用方法. 新版本Producer 首先明确 ...

  8. Kafka设计解析(十四)Kafka producer介绍

    转载自 huxihx,原文链接 Kafka producer介绍 Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer.本文着重讨论新版本produce ...

  9. kafka集群原理介绍

    目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...

随机推荐

  1. Codefoces 277 E. Binary Tree on Plane

    题目链接:http://codeforces.com/problemset/problem/277/E 参考了这篇题解:http://blog.csdn.net/Sakai_Masato/articl ...

  2. js 过滤器

    ,,]; ary[] = ; ary.filter(function(x) { return x === undefined; }); // A. [undefined x 7] // B. [0, ...

  3. 【Core Swagger】.NET Core中使用swagger

    一.入门 https://www.nuget.org/packages/Swashbuckle.AspNetCore.SwaggerGen/ 1.添加核心NUGET包 Swashbuckle.AspN ...

  4. Bilinear CNN与 Randomly Wired Neural Network

    最近主要学习了两篇论文以及相关的代码. 1.Bilinear CNN 这篇论文主要是在细粒度分类上应用的,在全连接层之前,在所有的卷积计算完成之后,进行的Bilinear计算,关键的代码如下: def ...

  5. 机器学习之决策树_CART算法

    目录 3.CART算法(classification and regression tree tree) 3.1 CART生成算法(回归树生成和分类树生成) 3.2 CART剪枝 决策树基本知识参考, ...

  6. js实现下雪雪花特效

    两种下雪特效: 1. <script type="text/javascript"> (function($){ $.fn.snow = function(option ...

  7. Win10系列:C#应用控件基础19

    ScrollViewer控件 ScrollViewer控件包含一个水平和一个竖直滚动条以及一个可滚动的内容显示区域,在显示区域内可以放置其他可见控件.ScrollViewer控件的水平和垂直滚动条两端 ...

  8. 不安全的HTTP方法(渗透实验)

    1.使用 curl -v -X OPTIONS url(含目录) 获取允许访问的http method 例如:curl -v -X OPTIONS http://192.168.1.123:12123 ...

  9. SHOW Syntax

    MySQL 5.5 Reference Manual  /  SQL Statement Syntax  /  Database Administration Statements  /  SHOW ...

  10. VSTO:使用C#开发Excel、Word【14】

    操作workbooks集合可从Application对象的Workbooks属性中获取的Workbooks集合包含当前在应用程序中打开的Workbook对象的集合. 它还具有用于管理开放工作簿,创建新 ...