1.kafka源码阅读之MacBook Pro M1搭建Kafka2.7版本源码运行环境
2.Skywalking8.9.1源码解析<一>-Skywalking简介及系统架构解析
kafka源码阅读之MacBook Pro M1搭建Kafka2.7版本源码运行环境
在探索Kafka源码的过程中,决定搭建本地环境进行实际运行,以辅助理解和注释。由于日常开发中常使用Kafka 2.7版本,选择了在MacBook Pro M1笔记本上搭建此版本的源码环境。搭建过程中,app语音包源码记录了遇到的障碍,方便未来再次搭建时不必从头开始。 搭建Kafka 2.7源码环境需要准备以下基础环境:一、Zulu JDK1.8
在MacBook Pro M1笔记本上,基本都已安装JDK,版本不同而已。使用的是Zulu JDK1.8版本,通过下载.dmg格式的一键安装,环境自动配置,安装路径通常在 /Library/Java/JavaVirtualMachines。二、Scala 2..1
并未在系统里安装Scala,而是直接利用IDEA。按照Preferences -> Plugins -> Scala安装。选择IDEA的netty 源码解析 系列不同Scala JDK版本。三、安装Gradle6.6
通过官网gradle.org/releases/下载Gradle6.6版本。如国内下载速度较慢,可直接从百度网盘下载安装包。安装完成后,解压并放置在目录/Users/helloword/software/gradle-6.6,通过mac终端执行指令配置环境。四、Zookeeper3.4.6安装
直接从百度网盘下载zookeeper-3.4.6.tar.gz包,解压后放置在三台机器的手机图片分享源码/app目录下。在每个目录中创建data子目录,并建立myid文件,按照特定数字填写。在zoo.cfg文件中进行配置并复制至其他机器。五、Kafka2.7源码部署
从官网下载Kafka 2.7源码,或从百度网盘获取。解压至目录/Users/helloword/software/kafka/kafka-2.7.0-src,并通过Gradle构建环境。在mac终端执行指令,翻墙后 chrome 源码生成gradle-wrapper.jar,配置依赖。将源码导入IDEA,加载Gradle构建的项目。六、源码运行
确保源码运行打印日志,需将log4j.properties复制到core的 resources目录,并在build.gradle中添加log4配置。修改config/server.properties配置,包括zookeeper路径和broker的java秒杀系统 源码ip。配置server、consumer、producer三个进程,确保Kafka服务、消费者和生产者能够正常工作。 整个Kafka 2.7版本源码的本地搭建步骤完成。后续计划撰写系列文章总结阅读源码的经验。关注公众号写代码的朱季谦,获取更多分类归纳的博客。Skywalking8.9.1源码解析<一>-Skywalking简介及系统架构解析
Skywalking 8.9.1源码解析系列旨在深入探讨该版本的Skywalking-OAP及其探针Skywalking-java8.9.0。本文基于官方文档、博客和个人理解,对Skywalking进行简介和系统架构解析。
Skywalking是一款强大的分布式追踪系统,提供详尽的UI界面,可通过OpenTrace官方文档了解其Trace概念。核心功能包括性能监控和分布式追踪,以帮助开发者理解和优化应用程序的性能。
Skywalking的代码模块构建在微内核架构上,这种架构允许通过插件形式扩展核心功能,如IDEA和Eclipse的插件模式。SkyWalking Agent和OAP都采用微内核架构,利用ModuleManager管理组件和ModuleProvider,实现模块间的高效通信和功能扩展。
在通信方面,Skywalking探针和服务器主要通过Grpc进行数据交换,考虑到性能和数据丢失风险,有人提议用Kafka替代,但官方仅支持Grpc和SSL。Skywalking UI与后端的交互采用GraphQL,尽管restful更为常见,但GraphQL提供了更灵活的数据获取方式。
存储方面,Skywalking支持模块化存储选择,官方推荐内存数据库Es,但在线上环境中可能需要特定数据库支持。本地开发环境通常使用Mysql,生产环境将根据需求进行选择。数据库表结构会在后续文章中详细讨论。
数据流方面,Skywalking的数据经过OAL处理后入库,OAL层的具体作用官方未明示,但可能是为了进一步处理和优化数据。本文从整体架构深入到细节,助力需求文档和开发文档的完善。