diff --git a/0001-adopt-huaweimaven.patch b/0001-adopt-huaweimaven.patch new file mode 100644 index 0000000000000000000000000000000000000000..ea4c7d6d502bcd90370524c8fd1e8686a0ea899e --- /dev/null +++ b/0001-adopt-huaweimaven.patch @@ -0,0 +1,48 @@ +diff -Naur kafka-2.8.1-src/build.gradle kafka-2.8.1-src-change/build.gradle +--- kafka-2.8.1-src/build.gradle 2021-09-14 21:03:12.000000000 +0800 ++++ kafka-2.8.1-src-change/build.gradle 2022-08-11 22:41:08.381225132 +0800 +@@ -19,11 +19,7 @@ + + buildscript { + repositories { +- mavenCentral() +- jcenter() +- maven { +- url "https://plugins.gradle.org/m2/" +- } ++ maven{url 'https://repo.huaweicloud.com/repository/maven/'} + } + apply from: file('gradle/buildscript.gradle'), to: buildscript + apply from: "$rootDir/gradle/dependencies.gradle" +@@ -54,7 +50,7 @@ + allprojects { + + repositories { +- mavenCentral() ++ maven{url 'https://repo.huaweicloud.com/repository/maven/'} + } + + apply plugin: 'idea' +diff -Naur kafka-2.8.1-src/gradle/buildscript.gradle kafka-2.8.1-src-change/gradle/buildscript.gradle +--- kafka-2.8.1-src/gradle/buildscript.gradle 2021-09-14 21:03:12.000000000 +0800 ++++ kafka-2.8.1-src-change/gradle/buildscript.gradle 2022-08-11 23:00:43.143217999 +0800 +@@ -17,7 +17,7 @@ + repositories { + // For license plugin. + maven { +- url 'https://dl.bintray.com/content/netflixoss/external-gradle-plugins/' ++ url 'https://repo.huaweicloud.com/repository/maven/' + } + } + } +diff -Naur kafka-2.8.1-src/gradle/wrapper/gradle-wrapper.properties kafka-2.8.1-src-change/gradle/wrapper/gradle-wrapper.properties +--- kafka-2.8.1-src/gradle/wrapper/gradle-wrapper.properties 2021-09-14 21:03:12.000000000 +0800 ++++ kafka-2.8.1-src-change/gradle/wrapper/gradle-wrapper.properties 2022-08-11 22:41:33.044813236 +0800 +@@ -1,5 +1,6 @@ + distributionBase=GRADLE_USER_HOME + distributionPath=wrapper/dists +-distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-all.zip ++#distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-all.zip ++distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-6.8.1-all.zip + zipStoreBase=GRADLE_USER_HOME + zipStorePath=wrapper/dists diff --git a/0001-fix-can-not-connect-http-dl.bintray.com.patch b/0001-fix-can-not-connect-http-dl.bintray.com.patch deleted file mode 100644 index 0093413866e6e041f3941b8b05d072728d260102..0000000000000000000000000000000000000000 --- a/0001-fix-can-not-connect-http-dl.bintray.com.patch +++ /dev/null @@ -1,25 +0,0 @@ -From c07d1d34d23997c36e195a430ded2ae439118faa Mon Sep 17 00:00:00 2001 -From: xiewenhao -Date: Wed, 30 Mar 2022 17:01:47 +0800 -Subject: [PATCH] fix-can-not-connect-http-dl.bintray.com - ---- - gradle/buildscript.gradle | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gradle/buildscript.gradle b/gradle/buildscript.gradle -index 83967bb..5ba971a 100644 ---- a/gradle/buildscript.gradle -+++ b/gradle/buildscript.gradle -@@ -17,7 +17,7 @@ repositories { - repositories { - // For license plugin. - maven { -- url 'https://dl.bintray.com/content/netflixoss/external-gradle-plugins/' -+ url 'https://repos.spark-packages.org/content/netflixoss/external-gradle-plugins/' - } - } - } --- -2.18.1 - diff --git a/README.md b/README.md index 683a44ca25b8a81002e59d9e8a17abb3a1ffc22d..cace83076f4088861b5fb46f4a8eb6f2cc7191ef 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,52 @@ # kafka -Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. +#### 介绍 +Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Apache Kafka与传统消息系统相比,有以下不同: +- 它被设计为一个分布式系统,易于向外扩展; +- 它同时为发布和订阅提供高吞吐量; +- 它支持多订阅者,当失败时能自动平衡消费者; +- 它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。 +#### 软件架构 +软件架构说明 +Apache kafka组件介绍 +- Broker: 和RabbitMQ概念相似,Broker是一台独立的Kafka服务节点,负责消息的存储和转发。默认端口9092,集群可以包含多个Kafka Broker。生产者和消费者需要跟Broker建立连接才可以收发消息。 +- Producer:消息发送方。在Kafka中,生产者不是逐条发送消息给Broker,而是批量发送的,这样可以提升消息发送速率。通过batch.size参数可以控制批次的大小 +- Consumer:消息接收方,消费者。Kafka只支持pull模式,通过pull拉取信息。 +- Topic:消息队列,生产者发送消息给Topic,消费者从Topic获取消息。生产者和Topic,Topic和消费者,都是多对多关系。生产者发送消息时,如果Topic不存在,会自动创Topic。 +- Partition:一个Topic可以被划分成多个分区,每个分区可以对外单独提供消息服务能力,这也是分片思想的落地。Partition类似于MySQL的分库分表,为了达到横向扩展和负载均衡的目的。 +- Replication: 分区副本,是Partition的冗余备份分区,当Partition不可用时,ZooKeeper会自动将Replication(Follower)分区升级为Partition(Leader)分区。 +- Offset: 分区中的Record的位置标示,每一个消费者都会记录自己的消费位置(offset)。 +#### ARM支持: +1. 移植指南:https://support.huaweicloud.com/prtg-apache-kunpengbds/kunpengkafka_02_0001.html +2. 部署指南:https://support.huaweicloud.com/dpmg-apache-kunpengbds/kunpengkafka_04_0001.html +3. 调优指南:https://support.huaweicloud.com/tngg-kunpengbds/kunpengkafkahdp_05_0002.html + + +#### 安装教程 + +1. xxxx +2. xxxx +3. xxxx + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request + + +#### 特技 + +1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md +2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) +3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 +4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 +5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) +6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/gradle-6.5-bin.zip b/gradle-6.8.1-all.zip similarity index 66% rename from gradle-6.5-bin.zip rename to gradle-6.8.1-all.zip index aa94644bd073794b801b615530cab0b3593a74d1..4b31ee74ae948ecc4633d46109a69b5f164b93d8 100644 Binary files a/gradle-6.5-bin.zip and b/gradle-6.8.1-all.zip differ diff --git a/gradle-wrapper.jar b/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f Binary files /dev/null and b/gradle-wrapper.jar differ diff --git a/kafka-2.6.0-src.tgz b/kafka-2.8.1-src.tgz similarity index 49% rename from kafka-2.6.0-src.tgz rename to kafka-2.8.1-src.tgz index 19dbec6365c2a7562803bfea6698f887bf26e0d4..fe7506fe4b615f617236514096f77a451e234ba6 100644 Binary files a/kafka-2.6.0-src.tgz and b/kafka-2.8.1-src.tgz differ diff --git a/kafka.spec b/kafka.spec index ae24692a48848d0a79d9cc0b95e7e4247b00071c..b79aa7e0131b8cfd3468d94feda3bd15b0675fe3 100644 --- a/kafka.spec +++ b/kafka.spec @@ -3,16 +3,16 @@ %define kafka_home /opt/kafka Name: kafka -Version: 2.6.0 -Release: 3 +Version: 2.8.1 +Release: 1 Summary: A Distributed Streaming Platform. -Patch1: 0001-fix-can-not-connect-http-dl.bintray.com.patch - -License: Apache License, Version 2.0 +License: Apache-2.0 Source0: https://archive.apache.org/dist/%{name}/%{version}/%{name}-%{version}-src.tgz -Source1: https://services.gradle.org/distributions/gradle-6.5-bin.zip +Source1: https://mirrors.huaweicloud.com/gradle/gradle-6.8.1-all.zip Source2: kafka.service +Source3: gradle-wrapper.jar +Patch0: 0001-adopt-huaweimaven.patch BuildRequires: systemd java-1.8.0-openjdk-devel Provides: kafka = %{version} @@ -29,23 +29,27 @@ getent passwd %{name} >/dev/null || \ exit 0 %prep -%setup -q -n %{name}-%{version}-src -%patch1 -p1 +%autosetup -p1 -n %{name}-%{version}-src +cp -r $RPM_SOURCE_DIR/gradle-6.8.1-all.zip %{_builddir}/kafka-2.8.1-src/gradle/wrapper/ +cp -r $RPM_SOURCE_DIR/gradle-wrapper.jar %{_builddir}/kafka-2.8.1-src/gradle/wrapper/ %build -unzip -q $RPM_SOURCE_DIR/gradle-6.5-bin.zip -./gradle-6.5/bin/gradle -./gradlew jar +unzip -q $RPM_SOURCE_DIR/gradle-6.8.1-all.zip +./gradle-6.8.1/bin/gradle --info +./gradlew jar releaseTarGz %install -mkdir -p $RPM_BUILD_ROOT%{kafka_home}/{libs,bin,config} - -install -p -D -m 755 bin/*.sh $RPM_BUILD_ROOT%{kafka_home}/bin -install -p -D -m 644 config/* $RPM_BUILD_ROOT%{kafka_home}/config -cp -n */build/libs/* $RPM_BUILD_ROOT%{kafka_home}/libs -cp -n */build/dependant-libs*/* $RPM_BUILD_ROOT%{kafka_home}/libs -cp -n */*/build/libs/* $RPM_BUILD_ROOT%{kafka_home}/libs -cp -n */*/build/dependant-libs*/* $RPM_BUILD_ROOT%{kafka_home}/libs +mkdir -p $RPM_BUILD_ROOT%{kafka_home}/{libs,bin,config,site-docs,licenses} +cd %{_builddir}/kafka-2.8.1-src/core/build/distributions/ +tar -xvf kafka_2.13-2.8.1.tgz +cp -pr kafka_2.13-2.8.1 %{_builddir} +cd %{_builddir}/kafka_2.13-2.8.1 + +cp -pr libs/* $RPM_BUILD_ROOT%{kafka_home}/libs +cp -pr bin/* $RPM_BUILD_ROOT%{kafka_home}/bin +cp -pr config/* $RPM_BUILD_ROOT%{kafka_home}/config +cp -pr site-docs/* $RPM_BUILD_ROOT%{kafka_home}/site-docs +cp -pr licenses/* $RPM_BUILD_ROOT%{kafka_home}/licenses %files %defattr(-,root,root) @@ -59,6 +63,9 @@ cp -n */*/build/dependant-libs*/* $RPM_BUILD_ROOT%{kafka_home}/libs rm -rf %{buildroot} %changelog +* Sun Sep 4 2022 xiexing - 2.8.1-1 +- update version to fix CVE-2021-38153 + * Wed Mar 30 2022 ouyangminxiang 2.6.0 - 3 - fix can not connect dl.bintray.com