GaGa's Blog

One GaGa, One World !

问题

日志已经说得非常清楚:405 PUT Not Allowed。这句话等同于 Nexus 对你说:“兄弟,你往一个不能上传的仓库 PUT 了东西。”deploy 插件正在尝试把 SNAPSHOT 上传到 maven-public,但 public 是一个聚合仓库(group),它只负责聚合,不允许上传,于是 405。


Nexus 仓库结构

Read more »

问题

你的异常是典型的 JDK 版本不兼容:RepackageMojo 的 class file version 是 61.0(JDK17 编译),而你当前运行 Maven 的 JDK 只有 52.0(JDK8)。

换句话讲:
插件是 JDK17 编译的,你却用 JDK8 去执行构建 → JVM 直接拒绝运行。


Read more »

问题

在容器部署的 Java 应用中,控制台日志时间比真实时间少 8 小时,即 UTC 时间,虽然容器挂载了 /etc/localtime:

volumes:
  - /etc/localtime:/etc/localtime:ro

但日志仍然由 logback 输出为 UTC 时区。

Read more »

多个 Filebeat 实例同时使用默认 path.data=/usr/share/filebeat/data,产生同一个 filebeat.lock 文件,导致进程互斥锁冲突,第二个进程无法启动。


1.锁文件冲突说明

Filebeat 会在 path.data 下创建锁文件:

Read more »

问题

1.1.报错信息来自 Docker,当容器启动或 docker attach 时,发现容器配置的 7625 端口已被宿主机其他进程或其他容器占用:

1
Bind for 0.0.0.0:7625 failed: port is already allocated

排查与解决

Read more »

1.关闭私服推送时的 GPG Sign

你当前 pom.xml 使用 maven-gpg-plugin 在 verify 阶段为构件签名,这属于 OSS 发布的标准操作。如果推送到公司私服/内部 Nexus,签名不是必须,甚至会导致推送失败。

1.要关闭签名,需要去掉或禁用(一定要做):

1
2
3
4
5
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
...
</plugin>
Read more »

libffi 库的作用

  • 1.libffi(Library for Foreign Function Interface)是一个为 C 程序提供 调用任意语言函数 的接口库。它的核心用途是在运行时动态创建调用栈,从而调用其它语言的函数或调用动态生成的代码片段。

  • 2.它在云原生、Python、JVM、数据库驱动、高性能框架中被广泛用作 跨语言调用的底层基础。

      • Python 的 ctypes 和 cffi 模块依赖 libffi
      • LuaJIT、Ruby FFI、PHP FFI、OpenJDK、LLVM 等依赖 libffi
      • 与动态库交互时无需编译期绑定,适合插件式架构与 JIT(即时编译技术)

在 CentOS 8 上安装 libffi

1.安装系统运行时依赖

Read more »

1. 概念定位 — API vs Plus

1.1 OpenAI API

  • API 是为开发者、厂商、团队准备的:它是一套编程接口 (Application Programming Interface),允许你在自己的程序/系统/服务里调用 OpenAI 的模型(例如 GPT-3.5、GPT-4、Whisper、DALL·E……)来做对话、生成文本/图像/音频/语音识别等任务。
  • 使用方式是“按需调用 + 按量计费”(pay-as-you-go):也就是说你调用多少模型、用多少 token,就按量收费。

1.2 ChatGPT Plus

Read more »

问题

curl 里写的是 "${server_group_ID}" 这种格式,但shell 不会在单引号 '...' 内做变量替换。单引号是“原子级别保护罩”,里面的内容全部视为纯文本。

思路

Bash 的变量替换只会在以下情况下生效:

Read more »

  • UTM 是一款开源的虚拟化软件,主要用于 macOS 上运行虚拟机(VM)。它基于 QEMU(一个流行的开源虚拟化工具)构建,为 macOS 用户提供了一个简单易用的界面来创建和管理虚拟机。UTM 支持多种操作系统,包括 Linux、Windows 和其他类 Unix 系统。

  • https://github.com/utmapp/UTM

主要特点:

  1. 多平台支持:UTM 允许你在 macOS 上运行 Linux、Windows、BSD 等操作系统,支持不同的架构,包括 x86_64、ARM64 和 ARM32。
  2. 图形化界面:与直接使用 QEMU 的命令行相比,UTM 提供了一个用户友好的图形界面,简化了虚拟机的创建和管理过程。
  3. 硬件加速:对于支持的 Mac 设备(尤其是带有 Apple Silicon 的设备),UTM 能够利用硬件加速,显著提高性能。
  4. 支持虚拟化和模拟:UTM 既支持虚拟化(通过 Apple 的 Hypervisor 框架)也支持模拟(使用 QEMU)。这意味着你可以在 M1、M2 等 Apple Silicon 设备上运行 x86 系统,也可以模拟 ARM 系统。
  5. 无缝集成 macOS:UTM 允许在虚拟机中使用 macOS 系统,提供类似于虚拟化的体验,但不需要双启动。

安装与使用:

Read more »
0%