IntelliJ IDEA下构建kafka环境与源码编译

如何用idea 开发工具搭建运行kafka 源码 介绍: 阅读优秀开源项目源码,学习源码中的一些设计和编程技巧,思考他们的设计目的,有助于我们提升自己技术、代码能力,在工作开发中,完全可以借鉴这些优秀的设计思想去应用到我们自己的业务中: kafka是scala语言开发的项目,和java语言很类似,不需要学习sacla语言基本上都可以读懂,我们可以把kafka当成自己工作中的一个web项目。kafka中大量的用到了jdk并发类,比如集合... 阅读详情

最近希望深入研究下kafka的架构,想了解架构必须去阅读其源码。于是自己动手在IDE下构建一个可运行可调试的kafka环境,下面是构建kafka环境及编译源码。

一、安装jdk

C:\Users\Administrator>java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

二、安装scala

C:\Users\Administrator>scala -version
Scala code runner version 2.11.12 -- Copyright 2002-2017, LAMP/EPFL

三、安装gradle

E:\workspace\javaworkspace\kafka-1.1.1-src\kafka-1.1.1-src>gradle --version

------------------------------------------------------------
Gradle 5.3-rc-2
------------------------------------------------------------

Build time:   2019-03-11 21:07:26 UTC
Revision:     cb19a113017a9351f8d9fa767d50a9a0f590617a

Kotlin:       1.3.21
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_172 (Oracle Corporation 25.172-b11)
OS:           Windows 7 6.1 amd64

四、安装mvn

C:\Users\Administrator>mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:1
4+08:00)
Maven home: D:\Program Files\apache-maven-3.5.4\bin\..
Java version: 1.8.0_172, vendor: Oracle Corporation, runtime: D:\Program Files\J
ava\jdk1.8.0_172\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

五、将kafka生成idea项目

E:\workspace\javaworkspace\kafka-1.1.1-src\kafka-1.1.1-src>gradle idea

> Configure project :
Building project 'core' with Scala version 2.11.12
<-------------> 2% EXECUTING [22m 54s]
> IDLE
> :ideaProject > Resolve files of :core:detachedConfiguration5 > scala-compiler
> IDLE
> IDLE

> Task :idea
Generated IDEA project at file:///E:/workspace/javaworkspace/kafka-1.1.1-src/kaf
ka-1.1.1-src/kafka-1.1.1-src.ipr

Deprecated Gradle features were used in this build, making it incompatible with
Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.3-rc-2/userguide/command_line_interface.html#sec:c
ommand_line_warnings

BUILD SUCCESSFUL in 1h 50m 31s
24 actionable tasks: 24 executed

六、安装zookeeper

我下载的zookeeper版本为apache-zookeeper-3.5.5-bin.tar.gz,将安装包解压到本地目录,然后调整配置文件,将zoo_sample.cfg复制一份为zoo.cfg,内容如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=D:/APP/apache-zookeeper-3.5.5-bin/data
# the port at which the clients will connect
clientPort=12181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=127.0.0.1:12888:13888

在D:/APP/apache-zookeeper-3.5.5-bin/data目录下增加一个myid的文件,然后内容填写"1",此是为了构建zookeeper集群时同步提供区分节点的id,此处我们只是单点,并没有部署集群。

启动zookeeper服务,执行zkServer.cmd

D:\APP\apache-zookeeper-3.5.5-bin\bin>zkServer.cmd &

D:\APP\apache-zookeeper-3.5.5-bin\bin>call "D:\APP\jdk1.8.0_101"\bin\java "-Dzookeeper.log.dir=D:\APP\apache-zookeeper-3.5.5-bin\bin\..\logs" "-Dzookeeper.root.logger=INFO,CONSOLE" "-Dzookeeper.log.file=zookeeper-linxiaojie-server-LINXIAOJIE.log" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%p /t /f" -cp "D:\APP\apache-zookeeper-3.5.5-bin\bin\..\build\classes;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\build\lib\*;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\*;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\*;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\conf" org.apache.zookeeper.server.quorum.QuorumPeerMain "D:\APP\apache-zookeeper-3.5.5-bin\bin\..\conf\zoo.cfg"
2019-08-12 17:00:09,254 [myid:] - INFO  [main:QuorumPeerConfig@133] - Reading configuration from: D:\APP\apache-zookeeper-3.5.5-bin\bin\..\conf\zoo.cfg
2019-08-12 17:00:09,263 [myid:] - INFO  [main:QuorumPeerConfig@385] - clientPortAddress is 0.0.0.0/0.0.0.0:12181
2019-08-12 17:00:09,263 [myid:] - INFO  [main:QuorumPeerConfig@389] - secureClientPort is not set
2019-08-12 17:00:09,273 [myid:1] - INFO  [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
2019-08-12 17:00:09,275 [myid:1] - INFO  [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
2019-08-12 17:00:09,276 [myid:1] - INFO  [main:DatadirCleanupManager@101] - Purge task is not scheduled.
2019-08-12 17:00:09,276 [myid:1] - WARN  [main:QuorumPeerMain@125] - Either no config or no quorum defined in config, running  in standalone mode
2019-08-12 17:00:09,278 [myid:1] - INFO  [main:ManagedUtil@46] - Log4j found with jmx enabled.
2019-08-12 17:00:09,337 [myid:1] - INFO  [main:QuorumPeerConfig@133] - Reading configuration from: D:\APP\apache-zookeeper-3.5.5-bin\bin\..\conf\zoo.cfg
2019-08-12 17:00:09,338 [myid:1] - INFO  [main:QuorumPeerConfig@385] - clientPortAddress is 0.0.0.0/0.0.0.0:12181
2019-08-12 17:00:09,341 [myid:1] - INFO  [main:QuorumPeerConfig@389] - secureClientPort is not set
2019-08-12 17:00:09,346 [myid:1] - INFO  [main:ZooKeeperServerMain@117] - Starting server
2019-08-12 17:00:18,387 [myid:1] - INFO  [main:Environment@109] - Server environment:zookeeper.version=3.5.5-390fe37ea45dee01bf87dc1c042b5e3dcce88653, built on 05/03/2019 12:07 GMT
2019-08-12 17:00:18,388 [myid:1] - INFO  [main:Environment@109] - Server environment:host.name=linxiaojie
2019-08-12 17:00:18,398 [myid:1] - INFO  [main:Environment@109] - Server environment:java.version=1.8.0_101
2019-08-12 17:00:18,404 [myid:1] - INFO  [main:Environment@109] - Server environment:java.vendor=Oracle Corporation
2019-08-12 17:00:18,413 [myid:1] - INFO  [main:Environment@109] - Server environment:java.home=D:\APP\jdk1.8.0_101\jre
2019-08-12 17:00:18,414 [myid:1] - INFO  [main:Environment@109] - Server environment:java.class.path=D:\APP\apache-zookeeper-3.5.5-bin\bin\..\build\classes;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\build\lib\*;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\*;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\audience-annotations-0.5.0.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\commons-cli-1.2.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jackson-annotations-2.9.0.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jackson-core-2.9.8.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jackson-databind-2.9.8.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\javax.servlet-api-3.1.0.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jetty-http-9.4.17.v20190418.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jetty-io-9.4.17.v20190418.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jetty-security-9.4.17.v20190418.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jetty-server-9.4.17.v20190418.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jetty-servlet-9.4.17.v20190418.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jetty-util-9.4.17.v20190418.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\jline-2.11.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\json-simple-1.1.1.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\log4j-1.2.17.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\netty-all-4.1.29.Final.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\slf4j-api-1.7.25.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\slf4j-log4j12-1.7.25.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\zookeeper-3.5.5.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\lib\zookeeper-jute-3.5.5.jar;D:\APP\apache-zookeeper-3.5.5-bin\bin\..\conf
2019-08-12 17:00:18,416 [myid:1] - INFO  [main:Environment@109] - Server environment:java.library.path=D:\APP\jdk1.8.0_101\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:\APP\Anaconda3;D:\APP\Anaconda3\Library\mingw-w64\bin;D:\APP\Anaconda3\Library\usr\bin;D:\APP\Anaconda3\Library\bin;D:\APP\Anaconda3\Scripts;C:\Perl64\site\bin;C:\Perl64\bin;D:\app\linxiaojie\product\11.2.0\dbhome_1\bin;D:\APP\jdk1.8.0_101\bin\;D:\APP\jdk1.8.0_101\lib\;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5\;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5\Doctrine extensions for PHP\;C:\Program Files\CMake\bin;C:\Program Files\Microsoft Network Monitor 3\;D:\APP\Apache Software Foundation\Tomcat 8.0\bin;.;D:\APP\scala\bin;D:\APP\Git\cmd;C:\Go\bin;D:\APP\hadoop-common-2.2.0\bin;C:\Program Files\TortoiseSVN\bin;D:\APP\MATLAB\R2017b\runtime\win64;D:\APP\MATLAB\R2017b\bin;C:\WINDOWS\System32\OpenSSH\;D:\APP\apache-maven-3.5.4\bin;D:\APP\gradle-3.5.1-bin\gradle-3.5.1\bin;C:\Users\linxiaojie\AppData\Local\Microsoft\WindowsApps;D:\APP\Nmap;C:\Users\linxiaojie\AppData\Local\GitHubDesktop\bin;C:\Users\linxiaojie\AppData\Local\Programs\Fiddler;D:\APP\Microsoft VS Code\bin;.
2019-08-12 17:00:18,417 [myid:1] - INFO  [main:Environment@109] - Server environment:java.io.tmpdir=C:\Users\LINXIA~1\AppData\Local\Temp\
2019-08-12 17:00:18,424 [myid:1] - INFO  [main:Environment@109] - Server environment:java.compiler=<NA>
2019-08-12 17:00:18,427 [myid:1] - INFO  [main:Environment@109] - Server environment:os.name=Windows 10
2019-08-12 17:00:18,428 [myid:1] - INFO  [main:Environment@109] - Server environment:os.arch=amd64
2019-08-12 17:00:18,428 [myid:1] - INFO  [main:Environment@109] - Server environment:os.version=10.0
2019-08-12 17:00:18,429 [myid:1] - INFO  [main:Environment@109] - Server environment:user.name=linxiaojie
2019-08-12 17:00:18,429 [myid:1] - INFO  [main:Environment@109] - Server environment:user.home=C:\Users\linxiaojie
2019-08-12 17:00:18,429 [myid:1] - INFO  [main:Environment@109] - Server environment:user.dir=D:\APP\apache-zookeeper-3.5.5-bin\bin
2019-08-12 17:00:18,432 [myid:1] - INFO  [main:Environment@109] - Server environment:os.memory.free=358MB
2019-08-12 17:00:18,437 [myid:1] - INFO  [main:Environment@109] - Server environment:os.memory.max=5440MB
2019-08-12 17:00:18,437 [myid:1] - INFO  [main:Environment@109] - Server environment:os.memory.total=368MB
2019-08-12 17:00:18,439 [myid:1] - INFO  [main:ZooKeeperServer@938] - minSessionTimeout set to 4000
2019-08-12 17:00:18,439 [myid:1] - INFO  [main:ZooKeeperServer@947] - maxSessionTimeout set to 40000
2019-08-12 17:00:18,441 [myid:1] - INFO  [main:ZooKeeperServer@166] - Created server with tickTime 2000 minSessionTimeout 4000 maxSessionTimeout 40000 datadir D:\APP\apache-zookeeper-3.5.5-bin\data\version-2 snapdir D:\APP\apache-zookeeper-3.5.5-bin\data\version-2
2019-08-12 17:00:18,484 [myid:1] - INFO  [main:Log@193] - Logging initialized @9393ms to org.eclipse.jetty.util.log.Slf4jLog
2019-08-12 17:00:18,625 [myid:1] - WARN  [main:ContextHandler@1588] - o.e.j.s.ServletContextHandler@1794d431{/,null,UNAVAILABLE} contextPath ends with /*
2019-08-12 17:00:18,626 [myid:1] - WARN  [main:ContextHandler@1599] - Empty contextPath
2019-08-12 17:00:18,648 [myid:1] - INFO  [main:Server@370] - jetty-9.4.17.v20190418; built: 2019-04-18T19:45:35.259Z; git: aa1c656c315c011c01e7b21aabb04066635b9f67; jvm 1.8.0_101-b13
2019-08-12 17:00:18,696 [myid:1] - INFO  [main:DefaultSessionIdManager@365] - DefaultSessionIdManager workerName=node0
2019-08-12 17:00:18,697 [myid:1] - INFO  [main:DefaultSessionIdManager@370] - No SessionScavenger set, using defaults
2019-08-12 17:00:18,709 [myid:1] - INFO  [main:HouseKeeper@149] - node0 Scavenging every 660000ms
2019-08-12 17:00:18,720 [myid:1] - INFO  [main:ContextHandler@855] - Started o.e.j.s.ServletContextHandler@1794d431{/,null,AVAILABLE}
2019-08-12 17:00:18,828 [myid:1] - INFO  [main:AbstractConnector@292] - Started ServerConnector@50f8360d{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2019-08-12 17:00:18,855 [myid:1] - INFO  [main:Server@410] - Started @9770ms
2019-08-12 17:00:18,858 [myid:1] - INFO  [main:JettyAdminServer@112] - Started AdminServer on address 0.0.0.0, port 8080 and command URL /commands
2019-08-12 17:00:18,868 [myid:1] - INFO  [main:ServerCnxnFactory@135] - Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory
2019-08-12 17:00:18,872 [myid:1] - INFO  [main:NIOServerCnxnFactory@673] - Configuring NIO connection handler with 10s sessionless connection timeout, 1 selector thread(s), 8 worker threads, and 64 kB direct buffers.
2019-08-12 17:00:18,876 [myid:1] - INFO  [main:NIOServerCnxnFactory@686] - binding to port 0.0.0.0/0.0.0.0:12181
2019-08-12 17:00:18,915 [myid:1] - INFO  [main:ZKDatabase@117] - zookeeper.snapshotSizeFactor = 0.33
2019-08-12 17:00:18,917 [myid:1] - INFO  [main:FileTxnSnapLog@372] - Snapshotting: 0x0 to D:\APP\apache-zookeeper-3.5.5-bin\data\version-2\snapshot.0
2019-08-12 17:00:18,921 [myid:1] - INFO  [main:FileTxnSnapLog@372] - Snapshotting: 0x0 to D:\APP\apache-zookeeper-3.5.5-bin\data\version-2\snapshot.0
2019-08-12 17:00:18,940 [myid:1] - INFO  [main:ContainerManager@64] - Using checkIntervalMs=60000 maxPerMinute=10000

七、配置Kafka

将server.properties中的log.dirs修改为本地磁盘。

log.dirs=D:/tmp/kafka-logs

将config目录下的log4j.properties文件拷贝到core\src\main\scala\目录下,方便我们后面查看日志。其他地方暂时不需要变更,毕竟此项目是为了进一步研究kafka运行原理作用的,主要kafka能够跑起来,我们可以调试代码即可。

八、启动kafka

配置启动参数:

然后执行启动,我们来确认下服务是否已启动:

C:\Users\Administrator>netstat -ano | findstr "9092"
  TCP    0.0.0.0:9092           0.0.0.0:0              LISTENING       31380
  TCP    192.168.211.1:1172     192.168.211.1:9092     ESTABLISHED     31380
  TCP    192.168.211.1:9092     192.168.211.1:1172     ESTABLISHED     31380
  TCP    [::]:9092              [::]:0                 LISTENING       31380

从上面看到kafka绑定的端口已经启动了,说明kafka broker已运行。调试就是后续事情啦。

三分钟教会你如何使用IDEA操作Kafka创建生产者消费者(有详细案列) 目录一、Kafka生产者详解1.生产者发送消息的过程2.创建生产者二.消费者详解1.消费者和消费者群组2.创建消费者 一、Kafka生产者详解 1.生产者发送消息的过程 首先介绍一下 Kafka 生产者发送消息的过程: Kafka 会将发送消息包装为 ProducerRecord 对象, ProducerRecord 对象包含了目标主题和要发送的内容,同时还可以指定键和分区。在发送 ProducerRecord 对象前,生产者会先把键和值对象序列化成字节数组,这样它们才能够在网络上传输。 接下来,数据被传 阅读详情

相关推荐

Mac使用IDEA搭建kafka开发环境

kafka是gradle项目,故需要先下载gradle包,在引入IDEA中。 步骤: 1、下载gradle brew update && brew isntall gradle 注: kafka可以在官网直接下载source版2、在IDEA中选择Use default gradle wrapper ,不要选择Use local gradle distribution

简单就好 3214

【Kafka】Kafkaide让IDEA开发者不在游走

通过对两种方式的分析,我们发现开发者需要游走于IDEA与第三方工具之间,并完成繁琐的操作来辅助完成开发任务。不但降低工作效率而且增加了部分学习成本这对开发者来说是非常浪费时间的。IDEA开发者在与Kafka进行交互的过程中,经常操作Shell命令或通过CMAK、Eagle等管理工具来辅助开发者完成与Kafka交互的开发任务。通过调用KafkaAPI实现Kafka原生Shell命令界面化来减少开发者的学习成本,并且在日常的开发任务中也省去了开发者游走于IDEA与第三方工具的时间,提高了开发者的工作效率。

扬_帆_起_航 2380

使用IntelliJ IDEA进行Java编程操作Kafka

在上述代码中,我们指定了Kafka服务器的地址(bootstrap.servers)、消费者组的ID(group.id)和要消费的主题(topicName)。在上述代码中,我们指定了Kafka服务器的地址(bootstrap.servers)、消费者组的ID(group.id)和要消费的主题(topicName)。在上述代码中,我们首先指定了Kafka服务器的地址(bootstrap.servers)和要发送消息的主题(topicName)。打开项目的pom.xml文件,并添加Kafka的依赖项。

WdzDevops的博客 828

免安装:IDEA中的Kafka管理神器!

Kafka 是一种高吞吐、分布式的消息队列,在大数据处理和分布式系统中广泛应用。IDEA 提供了便捷的 Kafka 管理工具,通过安装插件Kafka和,开发者可以在本地 IDE 环境中轻松管理 Kafka 的各种操作,如连接配置、查看 Topic、发送与消费消息等。

jast 4425

SystemRDL:从寄存器描述到自动化生成的完整指南

本文详细介绍了SystemRDL如何通过“一份描述,多处生成”的理念,彻底解决芯片与FPGA设计中手动维护寄存器带来的不一致与低效问题。文章提供了从语言快速上手、核心组件讲解到使用PeakRDL工具链实现自动化代码与文档生成的完整实战指南,帮助硬件工程师构建高效、可靠的寄存器开发流程。

weixin_29243279的博客 660

手把手实战:RK3588上YOLOv8模型从训练到部署全流程解析

本文详细解析了在RK3588开发板上部署YOLOv8目标检测模型的全流程。从模型训练、正确导出适配的ONNX格式,到使用RKNN-Toolkit2进行模型转换与量化,最后在板卡上完成部署与性能测试。文章提供了完整的代码示例和关键避坑指南,帮助开发者高效实现嵌入式AI应用落地。

weixin_28224217的博客 407

Kafka源码环境搭建

原 Kafka源码环境搭建https://blog.youkuaiyun.com/u013256816/article/details/78533725版权声明:本文为博主原创文章,未经博主朱小厮允许不得转载。 https://blog.youkuaiyun.com/u013256816/article/details/78533725 欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战...

rede 450

电拖笔记1电磁学基本知识与定律

电拖学习

qq458629839的博客 1134

kafka源码环境

本文主要讲述的是如何搭建Kafka的源码环境,主要针对的Windows操作系统下IntelliJ IDEA编译器,其余操作系统或者IDE可以类推。 1.安装和配置JDK 确认JDK版本至少为1.7,最好是1.8及以上。使用java -version命令来查看当前JDK的版本,示例如下: C:\Users\hidden> java -version java versio...

老猿说说专栏 344

FPGA+滨淞CCD实战:手把手教你搭建S7031/S10142成像电路(附避坑指南)

本文详细介绍了使用FPGA驱动滨淞CCD传感器(S7031/S10142)构建高精度成像系统的完整实战流程。内容涵盖核心器件选型、系统架构规划、电路板(焦面板与接口板)设计要点、FPGA Verilog逻辑实现,并提供了从电源管理、信号调理到数据采集的详细避坑指南,帮助读者从零搭建稳定可靠的成像电路。

weixin_29271263的博客 227

Halcon深度图转点云实战:从XYZ映射到3D可视化全解析

本文详细解析了如何使用Halcon将深度图转换为点云图,涵盖从XYZ映射到3D可视化的全流程。通过实战案例和代码示例,介绍了深度图预处理、xyz_to_object_model_3d核心转换及3D可视化技巧,适用于工业检测、三维重建等场景。

stem5的博客 766

别再用Docker了!手把手教你用Gradle 8.7和IDEA从源码启动Kafka 3.6.1服务器

本文详细介绍了如何不使用Docker,而是通过Gradle 8.7和IDEA从源码编译并启动Kafka 3.6.1服务器。从环境准备、源码获取、编译配置到IDEA项目设置,手把手教你深入理解Kafka的核心机制,适合需要定制化开发和性能调优的高级用户。

weixin_42635064的博客 303

一文读懂无人机AI识别算法,原理、技术、应用

本文详细介绍了无人机识别算法的工作原理、技术优势以及在多个行业的应用前景,展现了其在提升安全监控、资源管理和应急响应中的关键作用。尽管无人机识别算法在多个领域展现出巨大潜力,但仍面临技术挑战,如算法的准确性、数据的实时处理能力以及对复杂环境的适应性。4. 消防与城市管理: 无人机识别算法在消防和城市管理中的应用,为相关部门提供了及时的信息支持,提升了应急处置能力和城市管理水平。1. 公安监控: 无人机识别算法在公安领域的应用,可以实时识别犯罪嫌疑人和违法行为,有效提升城市治安管理的智能化水平。

foiadrone的博客 1849

使用IDEA搭建kafka源码环境

本文主要讲述的是如何搭建Kafka的源码环境,主要针对的Windows操作系统下IntelliJ IDEA编译器,其余操作系统或者IDE可以类推。 1.安装和配置JDK 确认JDK版本至少为1.7,最好是1.8及以上。使用java -version命令来查看当前JDK的版本,示例如下: 2.下载并安装配置Gradle 下载地址为:https://gradle.org/releases/,......

Turn X7 5282

STM32Cube高效开发教程<基础篇>(一)----概述

一、 STM32系列器件和开发工具发展历史声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。本专栏博客参考《STM32Cube高效开发教程(基础篇)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。一、 STM32系列器件和开发工具发展历史。

我的博客 187

WPF数据绑定Binding对数据的转换与效验(四)

Binding的作用就是架在Source与Target之间的桥梁,数据可以在这座桥梁的帮助下来流通。就像现实世界中的桥梁会设置一些关卡进行安检一样,Binding这座桥上也可以设置关卡对数据的有效性进行检验,不仅如此,当Binding的两端要求使用不同的数据类型时,我们还可以为数据设置转换器。Binding用于数据有效性检验的关卡是它的ValidationRules属性,用于数据类型转换的关卡是它的Converter属性。

qq_30725967的博客 1630

Kafka源码环境搭建完整指南

本文详细介绍了从零开始搭建Kafka源码开发环境的完整流程,包括环境准备(JDK、Scala、Gradle安装)、源码获取与版本选择、编译配置(镜像源设置)、源码编译与IDE项目生成、IntelliJ IDEA配置等关键步骤。特别提供了Windows和Linux系统下的操作指南,并针对国内用户给出了加速下载的解决方案。文章还包含Zookeeper配置、Kafka启动、Topic测试等实际运行环节,以及编译和运行过程中的常见问题解决方法。最后介绍了源码调试技巧,帮助开发者深入理解Kafka内部机制。整个过程强

油墨香^-^的博客 909

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

linux编译kafka源码,Linux Kafka源码环境搭建

本文主要讲述的是如何搭建Kafka的源码环境,主要针对的Linux操作系统下IntelliJ IDEA编译器,其余操作系统或者IDE可以类推。1.安装和配置JDK确认JDK版本至少为1.7,最好是1.8及以上。使用java -version命令来查看当前JDK的版本,示例如下:lenmom@M1701:~/workspace/software/hadoop-/bin$ java -versionj...

weixin_32818781的博客 633

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

kafka源码解读(一)kafka2.x读源码环境搭建

在windows下,使用idea 阅读kafka2.x源代码 1.前提 必读 kafka ReadMe https://github.com/apache/kafka/blob/trunk/README.md Apache Kafka See ourweb sitefor details on the project. You need to haveGradleandJ...

腊八粥 2607

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Kafka源码编译

1. 环境准备 kafka源码编译需要依赖gradle与scale,所以在编译kafka源码之前需要安装配置爱gradle与scala环境。下表是各个环境安装的版本及下载地址,当然还需要jdk8,这里不做详细说明。 序号 软件 版本 下载地址 1 gradle 5.5 点击下载-gradle_5.5 2 scala 2.11.xx(2.11.12) 点击下载-scala-2.11.12 3 kafka 2.1.0 点击下载-kafka_2.1.0 2. 环境安装 这里安装按照正常

梁海江的博客 2944

Kafka/Kafka Stream源码阅读环境搭建

Kafka Stream源码阅读环境搭建安装JDK下载并安装Gradle下载并安装Scala下载Kafka并构建源码环境 **源码环境说明: OS:Ubuntu16.04.6,IDE:Intellij IDEA,JDK8,Scala 2.11.8, ** 安装JDK 添加仓库源 sudo add-apt-repository ppa:webupd8team/java 更新软件包列表 sudo a...

ibless的博客 1134

idea启动kafka源码

其中之一就可以了,于是我们可以在kafka源码下的gradle文件夹下dependencies.gradle的version[]配置下添加。然后在build.gradle文件,找到project(':core')配置,添加以下配置。这里有坑,zookeeper要和kafka的版本匹配,不然启动不报错,但是实际会没起起来。在core模块下的scala的kafka的main方法里面添加日志,方便观察。然后找到源码下,core模块,scala文件夹下的kafka,点击启动。在libs+[]配置下添加。

smile 770

走近Kafka之源码阅读环境的构建

走近Kafka之源码阅读环境的构建 以2.4版本代码分支为例 以kafka官方文档为参考 构建准备: [Ubuntu 18 安装] Linux衍生系统 [Java 1.8+ 版本安装] Java环境 [Gradle 5.6.4 版本安装] Kafka源代码编译构建工具 [Git安装] 代码管理 [zookeeper 安装] kafka集群构建/调试使用 [Scala 2.12.10 ...

AIzone的博客 174
上一篇: ubuntu上构建jupyter notebook环境
下一篇: kafka的应用场景
&捕风的汉子&
博客等级 码龄17年 27粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值