GaGa's Blog

One GaGa, One World !

现货交易(Spot Trading)是金融市场中最基础的交易方式。简单来说,它就是“一手交钱,一手交货”。

无论你在菜市场买菜,还是在银行兑换外币,或者在交易平台上购买股票或数字货币,只要是即时成交、实物(或资产)所有权即刻转移的,都属于现货交易。


1. 核心特点

Read more »

不能直接在 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 »

Apache Kvrocks 是一款开源的、兼容 Redis 协议的分布式 NoSQL 键值(Key-Value)数据库。核心的特点是底层基于 RocksDB 存储引擎,将数据存储在磁盘(通常是 SSD)上,而不是像原生 Redis 那样主要存储在内存中。这使得它在处理海量数据时,成本远低于 Redis。


1. 核心设计理念:降本增效

  • Redis 协议兼容:支持大部分 Redis 数据结构(String, List, Hash, Set, ZSet, Bitmap, JSON 等),现有的 Redis 客户端可以直接连接,几乎无需修改代码。
  • 磁盘存储:数据持久化在磁盘上。内存仅作为缓存(Cache)使用,用于存放热数据。
  • 大容量支持:单机可以存储 TB 级的数据,而受限于内存价格,原生 Redis 在这种规模下的硬件成本极高。
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%