2024-05-28 · 实战
32
实战 · 2024-05-28

技术杂货铺:Git Fork 同步、Mac 签名绕过、Kafka 消费者组机制

GitHub Fork 项目的持续跟新

git remote -v
git remote add upstream https://github.com/simplezhli/flutter_deer.git
git remote -v
git fetch upstream
git checkout master
git merge upstream/master

# 遇到 fatal: refusing to merge unrelated histories 使用
git merge upstream/main --allow-unrelated-histories

Mac 下载资源网站

Mac 安装特殊dmg 添加数字签名


#苹果定期发布安全补丁,撤销一些“特定”开发人员的证书(数字签名)。运行没有证书的应用程序会导致错误消息并且应用程序意外结束…
#要解决该错误,您需要手动签署应用程序或 禁用 SIP
#您可以使用终端实用程序使用以下命令对应用程序进行签名:  

sudo codesign –force –deep –sign – /Applications/NewApp.app
#请注意,该命令包括应用程序的路径…即在“sign -”之后,您需要放置一个空格并将应用程序拖到终端窗口中。
#您可以使用以下命令对可执行文件进行签名:
sudo codesign –force –sign – /Applications/NewApp.app/Contents/MacOS/NewApp

#按 Enter 键并输入管理员密码。
#在终端中输入密码时不会显示密码,但会输入密码。输入密码后,按 Enter 键。

#准备好!启动应用程序。

#您可以在developer.apple.com或wiki.lazarus.freepascal.org上阅读有关在macOS中添加数字签名的更多信息

Kafka

在 Kafka 中,主题(topic)、分区(partition)、消费者组(consumer group)和消费者(consumer)之间的关系是核心概念之一,它们共同决定了消息的分发和处理方式。以下是这些概念的详细解释和它们之间的关系:

基本概念

  1. 主题(Topic)
  1. 分区(Partition)
  1. 消费者组(Consumer Group)
  1. 消费者(Consumer)

消费者组和分区的关系

示例

假设你有一个主题 topicA,这个主题有 4 个分区,消费者组 groupA 有 2 个消费者。

Kafka 可能会这样分配分区:

如果有一个新的消费者 C3 加入 groupA,Kafka 会触发再平衡,可能重新分配如下:

通过这种机制,Kafka 可以实现高吞吐量、负载均衡和高可用性。

重要特性

这些概念和机制使得 Kafka 成为一个强大而灵活的消息队列系统,适用于各种实时数据流处理场景。如果有更多具体的问题或需要详细示例,请告诉我!

JVM

"Major GC"(也称为 Full GC)和 "Minor GC" 是 Java 虚拟机(JVM)中垃圾回收(Garbage Collection,GC)过程中的两种不同类型的垃圾回收事件。

  1. Minor GC
  1. Major GC

对于 Minor GC 和 Major GC 的频率,适当性取决于应用程序的性能要求、堆内存的大小以及 GC 日志中显示的停顿时间。每秒 4-5 次 Minor GC 在某些场景下可能是合理的,但在其他情况下可能会导致性能问题。

问题思考处理:

JAVA THREAD

  1. JIT Compilation 线程:这些线程负责执行即时编译 (Just-In-Time Compilation) 的任务,将 Java 字节码转换为本地代码以提高执行效率。这些线程通常会以 "JIT Compilation Thread" 开头命名,后面可能跟着一个编号。

  2. GC 线程:这些线程负责执行垃圾回收任务。在提供的列表中,有一个 "GC Worker" 线程,这可能是执行垃圾回收的工作线程。

  3. Finalizer 线程:这个线程负责执行对象的 finalize 方法,以便在对象被垃圾回收之前进行必要的清理工作。

  4. Attach API wait loop 线程:这个线程是 Java Attach API 的等待线程,用于等待与 JVM 的连接请求。

  5. I/O 线程:这些线程通常是用于处理输入/输出操作的,例如 "XNIO-1 I/O-1"、"XNIO-1 I/O-2" 等。

  6. 后台任务线程:这些线程可能是用于执行后台任务的,例如 "Common-Cleaner"、"VM Runtime State Listener" 等。

  7. 应用程序相关线程:还有一些线程可能是由应用程序代码创建和管理的,例如与数据库连接池相关的 "mysql-cj-abandoned-connection-cleanup"、"HikariPool-1 housekeeper" 等。

目录 最新
← 左侧翻上一屏 · 右侧翻下一屏 · 中间唤出菜单