GaGa's Blog

One GaGa, One World !

不能直接在 HTTPS 页面上使用 WS,原因:混合内容(Mixed Content)安全策略。当你的网页通过 https:// 加载时,浏览器认为这是一个安全上下文。此时如果页面内的 JavaScript 尝试建立 ws:// 连接,浏览器会直接阻止,并在控制台报错:

Mixed Content: The page at 'https://example.com' was loaded over HTTPS,
but attempted to establish a WebSocket connection to 'ws://example.com'.
This is insecure and has been blocked.

什么浏览器要阻止

Read more »

在高可用性(High Availability,简称 HA)集群中,Heartbeat(心跳) 是最核心的机制之一,用于实时监控集群节点(Node)的存活状态,并在节点发生故障时触发资源切换(Failover),从而保障服务的高可用性。


1. 什么是 Heartbeat?

Heartbeat 是一种周期性信号(periodic signal),集群中的每个节点会定期向其他节点发送“我还活着”(I’m alive)的消息。

Read more »

SDKMAN(Software Development Kit Manager)的命令行界面核心存储库,它是一个在 Unix 类系统(如 Linux, macOS, WSL 等)上非常流行的软件开发工具包(SDK)版本管理器,特别常用于 Java 生态系统(包含 Java JDK、Groovy、Scala、Kotlin、Gradle、Maven 等)。


1. 核心功能与痛点解决

Read more »

AngularJS 是 Google 开发的前端 MVC 框架,版本为 1.x,用于构建动态单页应用(SPA)。它是现代前端框架的”祖师爷”之一,深刻影响了后来的 Angular、React、Vue 的设计思路。


一、历史定位

2009 年:Google 发布 AngularJS 1.0
2014 年:推出 Angular 2.0(完全重写,改名 Angular)
2016 年:Angular 2/4/5 陆续发布
2016 年起:AngularJS 进入 LTS 维护模式
2022 年 12 月:AngularJS 正式停止维护(EOL)
Read more »

单线程基于libuv实现,分为6个阶段循环执行:

    1. Timers:执行setTimeout/setInterval回调。
    1. Pending callbacks:执行系统操作的延迟回调。
    1. Idle/Prepare:内部使用。
    1. Poll:I/O事件(核心,等待新I/O或定时器到期)。
    1. Check:执行setImmediate回调。
    1. Close callbacks:执行关闭回调(如socket close)。

核心:异步I/O、非阻塞,通过事件队列驱动。nextTick/microtask优先于宏任务。

使用 GraalVM 将 Java 程序构建为原生可执行文件(Native Image)的过程,核心原理是利用提前编译(AOT, Ahead-of-Time Compilation)。它将 Java 字节码直接编译成特定操作系统和架构的机器码,运行时不再需要完整的 JVM。


1. 环境准备

要在本地构建 Native Image,除了 GraalVM 本身,还需要安装目标系统底层的 C++ 编译工具链。

Read more »

在较新版本的 GraalVM(特别是 GraalVM For JDK 17/21/22+ 以及与之配套的 Native Image Agent)中,输出结构做出了重大优化。

为什么只有这一个文件(resource-config.json)?

以前的 Agent 会分开生成 resource-config.jsonreflect-config.json 等独立文件。而新版 GraalVM 引入了 Reachability Metadata(可达性元数据) 的统一规范。

你看到的 reachability-metadata.json 实际上是一个合体文件(或者是包含多类配置的统一元数据描述)。

Read more »

一句话总结

函数 能做什么 返回值
eval() 求值单个表达式 表达式的计算结果
exec() 执行任意语句块 None
compile() 将源码编译为字节码对象 字节码对象(code object)

1. eval() — 表达式求值

Read more »
0%