<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>jivvies</title>
  
  <subtitle>jivvies</subtitle>
  <link href="https://jivvies.com/atom.xml" rel="self"/>
  
  <link href="https://jivvies.com/"/>
  <updated>2026-03-20T14:43:53.534Z</updated>
  <id>https://jivvies.com/</id>
  
  <author>
    <name>jivvies</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>使用Knative和Kotlin构建事件驱动的LLM自动化代码审查服务</title>
    <link href="https://jivvies.com/0568073674/"/>
    <id>https://jivvies.com/0568073674/</id>
    <published>2023-11-15T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.534Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;团队的代码审查（Code Review）流程总是卡在同一个瓶颈上：资深工程师的时间。初级成员提交的合并请求（Pull</summary>
        
      
    
    
    
    <category term="云原生" scheme="https://jivvies.com/categories/%E4%BA%91%E5%8E%9F%E7%94%9F/"/>
    
    
    <category term="Spring Boot" scheme="https://jivvies.com/tags/Spring-Boot/"/>
    
    <category term="LLM" scheme="https://jivvies.com/tags/LLM/"/>
    
    <category term="Kotlin" scheme="https://jivvies.com/tags/Kotlin/"/>
    
    <category term="Knative" scheme="https://jivvies.com/tags/Knative/"/>
    
    <category term="Code Review" scheme="https://jivvies.com/tags/Code-Review/"/>
    
  </entry>
  
  <entry>
    <title>构建基于 Pinecone 的混合语言向量服务：Sanic 异步写入与 Spring Boot 并发查询的架构实践</title>
    <link href="https://jivvies.com/0253161957/"/>
    <id>https://jivvies.com/0253161957/</id>
    <published>2023-10-27T11:15:36.000Z</published>
    <updated>2026-03-20T14:43:53.534Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们面临一个具体的工程挑战：构建一个能够支撑高吞吐量文档摄入和低延迟向量检索的系统。一方面，数据源是非结构化文本，需要通过复杂的自然语言处理模型（例如</summary>
        
      
    
    
    
    <category term="架构与设计" scheme="https://jivvies.com/categories/%E6%9E%B6%E6%9E%84%E4%B8%8E%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="Pinecone" scheme="https://jivvies.com/tags/Pinecone/"/>
    
    <category term="Spring Boot" scheme="https://jivvies.com/tags/Spring-Boot/"/>
    
    <category term="Sanic" scheme="https://jivvies.com/tags/Sanic/"/>
    
    <category term="异构系统" scheme="https://jivvies.com/tags/%E5%BC%82%E6%9E%84%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="向量数据库" scheme="https://jivvies.com/tags/%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    
  </entry>
  
  <entry>
    <title>基于ChromaDB与Elasticsearch构建多租户隔离的混合检索服务</title>
    <link href="https://jivvies.com/0261854204/"/>
    <id>https://jivvies.com/0261854204/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.534Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;多租户SaaS平台对数据检索的核心要求是双重的：必须提供精准的关键词匹配能力，同时也要能理解用户意图，进行语义层面的相似度搜索。这一切都构建在严格、不可逾越的租户数据隔离之上。当技术选型落到实处，一个直接的问题摆在面前：是选择一个全能选手，还是组合多个专家系统？&lt;/p&gt;
&lt;</summary>
        
      
    
    
    
    <category term="架构设计" scheme="https://jivvies.com/categories/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="ChromaDB" scheme="https://jivvies.com/tags/ChromaDB/"/>
    
    <category term="Elasticsearch" scheme="https://jivvies.com/tags/Elasticsearch/"/>
    
    <category term="PWA" scheme="https://jivvies.com/tags/PWA/"/>
    
    <category term="多租户" scheme="https://jivvies.com/tags/%E5%A4%9A%E7%A7%9F%E6%88%B7/"/>
    
    <category term="混合检索" scheme="https://jivvies.com/tags/%E6%B7%B7%E5%90%88%E6%A3%80%E7%B4%A2/"/>
    
  </entry>
  
  <entry>
    <title>为 Playwright E2E 测试构建一个处理数据库读写分离延迟的 Jest 环境</title>
    <link href="https://jivvies.com/0352178633/"/>
    <id>https://jivvies.com/0352178633/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.534Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;端到端 (E2E) 测试的稳定性是衡量其价值的核心指标。在一个采用数据库读写分离架构的系统中，一个常见的痛点是测试的随机性失败，其根源往往指向主从数据库之间的复制延迟。一个典型的场景是：测试用例通过 Playwright</summary>
        
      
    
    
    
    <category term="软件工程" scheme="https://jivvies.com/categories/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/"/>
    
    
    <category term="Playwright" scheme="https://jivvies.com/tags/Playwright/"/>
    
    <category term="Jest" scheme="https://jivvies.com/tags/Jest/"/>
    
    <category term="读写分离" scheme="https://jivvies.com/tags/%E8%AF%BB%E5%86%99%E5%88%86%E7%A6%BB/"/>
    
    <category term="E2E测试" scheme="https://jivvies.com/tags/E2E%E6%B5%8B%E8%AF%95/"/>
    
    <category term="数据库" scheme="https://jivvies.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    
  </entry>
  
  <entry>
    <title>使用 Packer 与 Vault PKI 构建集成动态 mTLS 的 Java 应用镜像</title>
    <link href="https://jivvies.com/0648425936/"/>
    <id>https://jivvies.com/0648425936/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.534Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;将包含静态 TLS</summary>
        
      
    
    
    
    <category term="DevOps" scheme="https://jivvies.com/categories/DevOps/"/>
    
    
    <category term="Packer" scheme="https://jivvies.com/tags/Packer/"/>
    
    <category term="mTLS" scheme="https://jivvies.com/tags/mTLS/"/>
    
    <category term="Java" scheme="https://jivvies.com/tags/Java/"/>
    
    <category term="Vault" scheme="https://jivvies.com/tags/Vault/"/>
    
    <category term="DevSecOps" scheme="https://jivvies.com/tags/DevSecOps/"/>
    
  </entry>
  
  <entry>
    <title>构建一个以SQLite为状态后端的轻量级Python Spark数据管道框架</title>
    <link href="https://jivvies.com/0741859592/"/>
    <id>https://jivvies.com/0741859592/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.534Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在许多数据处理场景中，我们面临一个典型的架构窘境：需要Apache Spark的分布式计算能力来处理TB级的数据集，但整个项目的协调和调度需求又相对简单，引入Apache</summary>
        
      
    
    
    
    <category term="数据工程" scheme="https://jivvies.com/categories/%E6%95%B0%E6%8D%AE%E5%B7%A5%E7%A8%8B/"/>
    
    
    <category term="Database" scheme="https://jivvies.com/tags/Database/"/>
    
    <category term="SQLite" scheme="https://jivvies.com/tags/SQLite/"/>
    
    <category term="Apache Spark" scheme="https://jivvies.com/tags/Apache-Spark/"/>
    
    <category term="Python" scheme="https://jivvies.com/tags/Python/"/>
    
    <category term="框架" scheme="https://jivvies.com/tags/%E6%A1%86%E6%9E%B6/"/>
    
  </entry>
  
  <entry>
    <title>使用 Go 和 Crossplane 构建面向 Next.js 应用的声明式开发者平台 API</title>
    <link href="https://jivvies.com/0755892999/"/>
    <id>https://jivvies.com/0755892999/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.534Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在团队扩张和业务迭代加速的背景下，前端开发者对基础设施的需求变得越来越频繁和多样化。一个典型的 Next.js 应用，除了其自身的运行环境，往往还需要一个数据库、一个对象存储桶、一个 Redis</summary>
        
      
    
    
    
    <category term="平台工程" scheme="https://jivvies.com/categories/%E5%B9%B3%E5%8F%B0%E5%B7%A5%E7%A8%8B/"/>
    
    
    <category term="Next.js" scheme="https://jivvies.com/tags/Next-js/"/>
    
    <category term="Go" scheme="https://jivvies.com/tags/Go/"/>
    
    <category term="API 设计" scheme="https://jivvies.com/tags/API-%E8%AE%BE%E8%AE%A1/"/>
    
    <category term="Crossplane" scheme="https://jivvies.com/tags/Crossplane/"/>
    
    <category term="样式方案" scheme="https://jivvies.com/tags/%E6%A0%B7%E5%BC%8F%E6%96%B9%E6%A1%88/"/>
    
  </entry>
  
  <entry>
    <title>在AWS EKS上构建异构推理服务：PHP前端、Java中台与Python模型的集成架构决策</title>
    <link href="https://jivvies.com/0780093456/"/>
    <id>https://jivvies.com/0780093456/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;h3 id=&quot;定义问题：在遗留系统中集成现代AI能力&quot;&gt;&lt;a href=&quot;#定义问题：在遗留系统中集成现代AI能力&quot; class=&quot;headerlink&quot;</summary>
        
      
    
    
    
    <category term="架构设计" scheme="https://jivvies.com/categories/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="GitHub" scheme="https://jivvies.com/tags/GitHub/"/>
    
    <category term="框架 (Java)" scheme="https://jivvies.com/tags/%E6%A1%86%E6%9E%B6-Java/"/>
    
    <category term="PHP" scheme="https://jivvies.com/tags/PHP/"/>
    
    <category term="模型部署" scheme="https://jivvies.com/tags/%E6%A8%A1%E5%9E%8B%E9%83%A8%E7%BD%B2/"/>
    
    <category term="AWS EKS" scheme="https://jivvies.com/tags/AWS-EKS/"/>
    
  </entry>
  
  <entry>
    <title>使用 Envoy Proxy 实现 Quarkus 与 Go gRPC 服务间的金丝雀发布</title>
    <link href="https://jivvies.com/0761464127/"/>
    <id>https://jivvies.com/0761464127/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在维护一个由多种语言构成的微服务体系时，服务的平滑升级是一个无法回避的挑战。特别是对于核心 gRPC</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://jivvies.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Quarkus" scheme="https://jivvies.com/tags/Quarkus/"/>
    
    <category term="Envoy Proxy" scheme="https://jivvies.com/tags/Envoy-Proxy/"/>
    
    <category term="gRPC-Go" scheme="https://jivvies.com/tags/gRPC-Go/"/>
    
  </entry>
  
  <entry>
    <title>为混合云 HBase 数据流实现基于 IAM Workload Identity Federation 的动态凭证授权</title>
    <link href="https://jivvies.com/0806702400/"/>
    <id>https://jivvies.com/0806702400/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;h3 id=&quot;定义复杂的技术问题&quot;&gt;&lt;a href=&quot;#定义复杂的技术问题&quot; class=&quot;headerlink&quot; title=&quot;定义复杂的技术问题&quot;&gt;&lt;/a&gt;定义复杂的技术问题&lt;/h3&gt;&lt;p&gt;在典型的企业混合云环境中，一个常见的挑战是将存放在本地数据中心、由</summary>
        
      
    
    
    
    <category term="架构与设计" scheme="https://jivvies.com/categories/%E6%9E%B6%E6%9E%84%E4%B8%8E%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="HBase" scheme="https://jivvies.com/tags/HBase/"/>
    
    <category term="IAM" scheme="https://jivvies.com/tags/IAM/"/>
    
    <category term="Google Cloud Pub/Sub" scheme="https://jivvies.com/tags/Google-Cloud-Pub-Sub/"/>
    
    <category term="安全" scheme="https://jivvies.com/tags/%E5%AE%89%E5%85%A8/"/>
    
    <category term="混合云" scheme="https://jivvies.com/tags/%E6%B7%B7%E5%90%88%E4%BA%91/"/>
    
  </entry>
  
  <entry>
    <title>构建一个用于AI风控报告的安全静态内容生成流水线</title>
    <link href="https://jivvies.com/0864351828/"/>
    <id>https://jivvies.com/0864351828/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;最初的痛点源于一个看似简单的需求：为我们的企业客户生成月度金融风控报告。这些报告并非简单的表格，而是由多个数据可视化图表、AI模型生成的风险评分和解释性文本构成，每个客户的报告都是高度定制化的。旧系统是一个传统的动态Web应用，每次客户访问时，后端服务会实时查询数据库、调用</summary>
        
      
    
    
    
    <category term="架构设计" scheme="https://jivvies.com/categories/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="SSG" scheme="https://jivvies.com/tags/SSG/"/>
    
    <category term="AI" scheme="https://jivvies.com/tags/AI/"/>
    
    <category term="HashiCorp Vault" scheme="https://jivvies.com/tags/HashiCorp-Vault/"/>
    
    <category term="数据科学与大数据" scheme="https://jivvies.com/tags/%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6%E4%B8%8E%E5%A4%A7%E6%95%B0%E6%8D%AE/"/>
    
    <category term="代码规范" scheme="https://jivvies.com/tags/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/"/>
    
  </entry>
  
  <entry>
    <title>构建高吞吐MLOps日志管道 Node.js与Phoenix的架构权衡与实现</title>
    <link href="https://jivvies.com/0940105809/"/>
    <id>https://jivvies.com/0940105809/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;为MLOps平台构建一个高吞吐、低延迟的实时推断日志处理服务是保障模型线上稳定性的基石。我们的需求很明确：一个中心化服务，用于接收来自数百个在线机器学习模型的推断日志。该服务必须能够对这些日志流进行近乎实时的解析、校验、内容扩充，并执行基于滑动窗口的状态化异常检测，以捕捉数</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://jivvies.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Node.js" scheme="https://jivvies.com/tags/Node-js/"/>
    
    <category term="MLOps" scheme="https://jivvies.com/tags/MLOps/"/>
    
    <category term="Loki" scheme="https://jivvies.com/tags/Loki/"/>
    
    <category term="AWS SNS" scheme="https://jivvies.com/tags/AWS-SNS/"/>
    
    <category term="Phoenix" scheme="https://jivvies.com/tags/Phoenix/"/>
    
  </entry>
  
  <entry>
    <title>基于eBPF、mTLS和Redis构建安全可观测的Spark高性能Shuffle服务</title>
    <link href="https://jivvies.com/0947606597/"/>
    <id>https://jivvies.com/0947606597/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们一个核心的多租户数据处理平台遇到了瓶颈。Apache Spark 作业的 Shuffle 阶段 I/O 开销巨大，尤其是在高峰期，多个大作业并发执行时，节点磁盘 I/O 竞争和网络拥塞导致作业执行时间变得不可预测，SLA 频繁告警。默认的</summary>
        
      
    
    
    
    <category term="分布式计算" scheme="https://jivvies.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%A1%E7%AE%97/"/>
    
    
    <category term="mTLS" scheme="https://jivvies.com/tags/mTLS/"/>
    
    <category term="Apache Spark" scheme="https://jivvies.com/tags/Apache-Spark/"/>
    
    <category term="eBPF" scheme="https://jivvies.com/tags/eBPF/"/>
    
    <category term="Redis" scheme="https://jivvies.com/tags/Redis/"/>
    
    <category term="可观测性" scheme="https://jivvies.com/tags/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/"/>
    
  </entry>
  
  <entry>
    <title>构建混合式可观测性数据管道 整合gRPC WebSockets与WASM实现遥测数据的实时与批量处理</title>
    <link href="https://jivvies.com/0957284318/"/>
    <id>https://jivvies.com/0957284318/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个线上系统一旦节点超过两位数，对其内部状态的理解就迅速从直观变为抽象。当微服务数量达到三位数时，任何脱离了强大可观测性工具的运维和故障排查，都无异于盲人摸象。市面上的成熟方案如ELK、Prometheus+Grafana等非常强大，但在某些特定场景下，它们的灵活性和成本模</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://jivvies.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="gRPC-Go" scheme="https://jivvies.com/tags/gRPC-Go/"/>
    
    <category term="MapReduce" scheme="https://jivvies.com/tags/MapReduce/"/>
    
    <category term="WebSockets" scheme="https://jivvies.com/tags/WebSockets/"/>
    
    <category term="Tailwind CSS" scheme="https://jivvies.com/tags/Tailwind-CSS/"/>
    
    <category term="WebAssembly (WASM)" scheme="https://jivvies.com/tags/WebAssembly-WASM/"/>
    
  </entry>
  
  <entry>
    <title>构建基于 Fastify SQS 与 Puppeteer 的高韧性异步报告生成服务</title>
    <link href="https://jivvies.com/0972417538/"/>
    <id>https://jivvies.com/0972417538/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;最初的矛盾爆发在一次产品演示中。我们的SaaS平台提供一个复杂的报表功能，前端使用 Ant Design 的 &lt;code&gt;Form&lt;/code&gt; 和 &lt;code&gt;Table&lt;/code&gt;</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://jivvies.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Fastify" scheme="https://jivvies.com/tags/Fastify/"/>
    
    <category term="AWS SQS" scheme="https://jivvies.com/tags/AWS-SQS/"/>
    
    <category term="Puppeteer" scheme="https://jivvies.com/tags/Puppeteer/"/>
    
    <category term="Ant Design" scheme="https://jivvies.com/tags/Ant-Design/"/>
    
    <category term="敏捷开发" scheme="https://jivvies.com/tags/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/"/>
    
  </entry>
  
  <entry>
    <title>基于CQRS与NATS的异步代码审查流程中实现密钥泄露的实时检测与索引</title>
    <link href="https://jivvies.com/1057648866/"/>
    <id>https://jivvies.com/1057648866/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在任何一个高速迭代的工程团队中，&lt;code&gt;Code Review&lt;/code&gt;</summary>
        
      
    
    
    
    <category term="架构设计" scheme="https://jivvies.com/categories/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="Code Review" scheme="https://jivvies.com/tags/Code-Review/"/>
    
    <category term="密钥管理" scheme="https://jivvies.com/tags/%E5%AF%86%E9%92%A5%E7%AE%A1%E7%90%86/"/>
    
    <category term="CQRS" scheme="https://jivvies.com/tags/CQRS/"/>
    
    <category term="Solr" scheme="https://jivvies.com/tags/Solr/"/>
    
    <category term="NATS" scheme="https://jivvies.com/tags/NATS/"/>
    
  </entry>
  
  <entry>
    <title>微前端架构下实时NLP服务的架构权衡：spaCy、Memcached与GitOps的整合方案</title>
    <link href="https://jivvies.com/1058144063/"/>
    <id>https://jivvies.com/1058144063/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;系统向微前端架构迁移的过程中，一个常见的需求是将过去单体应用中的某些复杂功能拆分为独立的、可复用的服务。我们面临的正是这样一个挑战：为多个业务线的微前端提供一个统一的、实时的自然语言处理（NLP）能力，具体来说，是命名实体识别（NER）。该服务需要能从任意文本中提取出预定义</summary>
        
      
    
    
    
    <category term="架构设计" scheme="https://jivvies.com/categories/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="Micro-frontends" scheme="https://jivvies.com/tags/Micro-frontends/"/>
    
    <category term="spaCy" scheme="https://jivvies.com/tags/spaCy/"/>
    
    <category term="Memcached" scheme="https://jivvies.com/tags/Memcached/"/>
    
    <category term="CI/CD 与 GitOps" scheme="https://jivvies.com/tags/CI-CD-%E4%B8%8E-GitOps/"/>
    
    <category term="Kubernetes" scheme="https://jivvies.com/tags/Kubernetes/"/>
    
  </entry>
  
  <entry>
    <title>构建从 MLflow 到 Android 的自动化模型交付管道并集成 ESLint 规范化工具链</title>
    <link href="https://jivvies.com/0986042100/"/>
    <id>https://jivvies.com/0986042100/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;最初的模型交付流程混乱不堪。机器学习团队训练完一个新模型，导出一个 &lt;code&gt;.tflite&lt;/code&gt; 文件，然后通过即时通讯工具扔给Android团队。版本控制依赖于文件名，例如</summary>
        
      
    
    
    
    <category term="MLOps" scheme="https://jivvies.com/categories/MLOps/"/>
    
    
    <category term="Node.js" scheme="https://jivvies.com/tags/Node-js/"/>
    
    <category term="MLflow" scheme="https://jivvies.com/tags/MLflow/"/>
    
    <category term="Android 开发" scheme="https://jivvies.com/tags/Android-%E5%BC%80%E5%8F%91/"/>
    
    <category term="ESLint" scheme="https://jivvies.com/tags/ESLint/"/>
    
    <category term="DevOps" scheme="https://jivvies.com/tags/DevOps/"/>
    
  </entry>
  
  <entry>
    <title>构建基于Kotlin的混合数据模型实时风控引擎 融合TimescaleDB时序与ArangoDB图谱</title>
    <link href="https://jivvies.com/1134264208/"/>
    <id>https://jivvies.com/1134264208/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个生产级的实时风控系统必须在毫秒间回答两个本质上完全不同的问题：一是“最近发生了什么？”，二是“这些参与者之间有什么关系？”。前者是时序问题，关心事件的顺序、频率和时间窗口内的聚合特征；后者是图谱问题，关心实体间的连接、路径和社区结构。试图用单一数据库模型来同时高效解决这</summary>
        
      
    
    
    
    <category term="架构与设计" scheme="https://jivvies.com/categories/%E6%9E%B6%E6%9E%84%E4%B8%8E%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="Kotlin" scheme="https://jivvies.com/tags/Kotlin/"/>
    
    <category term="TimescaleDB" scheme="https://jivvies.com/tags/TimescaleDB/"/>
    
    <category term="ArangoDB" scheme="https://jivvies.com/tags/ArangoDB/"/>
    
    <category term="分布式架构" scheme="https://jivvies.com/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    <category term="金融科技" scheme="https://jivvies.com/tags/%E9%87%91%E8%9E%8D%E7%A7%91%E6%8A%80/"/>
    
  </entry>
  
  <entry>
    <title>构建基于 Sanic 和 Prettier 的 Azure Data Lake 规范化数据摄入网关</title>
    <link href="https://jivvies.com/1167678245/"/>
    <id>https://jivvies.com/1167678245/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们的数据湖最近出现了一个棘手的“熵增”问题。团队的多个微服务和数据源持续不断地向 Azure Data Lake Storage (ADLS Gen2) 推送 JSON</summary>
        
      
    
    
    
    <category term="数据工程" scheme="https://jivvies.com/categories/%E6%95%B0%E6%8D%AE%E5%B7%A5%E7%A8%8B/"/>
    
    
    <category term="Sanic" scheme="https://jivvies.com/tags/Sanic/"/>
    
    <category term="Python" scheme="https://jivvies.com/tags/Python/"/>
    
    <category term="Prettier" scheme="https://jivvies.com/tags/Prettier/"/>
    
    <category term="Data Lake" scheme="https://jivvies.com/tags/Data-Lake/"/>
    
    <category term="Azure" scheme="https://jivvies.com/tags/Azure/"/>
    
  </entry>
  
  <entry>
    <title>使用Zig构建WebAssembly中间件在Tyk网关中重塑与Spring后端通信的tRPC请求</title>
    <link href="https://jivvies.com/1195948167/"/>
    <id>https://jivvies.com/1195948167/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个生产环境中的技术决策，很少是关于选择“最好”的技术，而更多是关于在现有约束下，用一组“正确”的技术组合，去解决一个棘手的、具体的问题。我们面临的挑战是：一个庞大、稳定但陈旧的Spring</summary>
        
      
    
    
    
    <category term="API网关" scheme="https://jivvies.com/categories/API%E7%BD%91%E5%85%B3/"/>
    
    
    <category term="tRPC" scheme="https://jivvies.com/tags/tRPC/"/>
    
    <category term="Zig" scheme="https://jivvies.com/tags/Zig/"/>
    
    <category term="Tyk" scheme="https://jivvies.com/tags/Tyk/"/>
    
    <category term="Spring Framework" scheme="https://jivvies.com/tags/Spring-Framework/"/>
    
    <category term="WebAssembly" scheme="https://jivvies.com/tags/WebAssembly/"/>
    
  </entry>
  
  <entry>
    <title>基于etcd实现OpenTelemetry采样策略的动态无重启更新</title>
    <link href="https://jivvies.com/1242962049/"/>
    <id>https://jivvies.com/1242962049/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在生产环境中，静态采样率很快就会成为可观测性系统的一个瓶颈。当系统平稳运行时，我们可能只需要1%甚至更低的采样率来节省成本和资源。然而，一旦发生故障或进行性能压测，我们迫切需要将特定服务、甚至特定接口的采样率瞬间提升到100%，以便捕获所有关键的追踪数据。传统方式需要修改配</summary>
        
      
    
    
    
    <category term="可观测性" scheme="https://jivvies.com/categories/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/"/>
    
    
    <category term="Go" scheme="https://jivvies.com/tags/Go/"/>
    
    <category term="OpenTelemetry" scheme="https://jivvies.com/tags/OpenTelemetry/"/>
    
    <category term="Grafana" scheme="https://jivvies.com/tags/Grafana/"/>
    
    <category term="etcd" scheme="https://jivvies.com/tags/etcd/"/>
    
    <category term="分布式系统" scheme="https://jivvies.com/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/"/>
    
  </entry>
  
  <entry>
    <title>Ktor与Pulumi构建由RabbitMQ驱动并与前端XState状态机同步的分布式Saga</title>
    <link href="https://jivvies.com/1246325697/"/>
    <id>https://jivvies.com/1246325697/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在处理需要多个独立步骤才能完成的业务流程时，一个简单的HTTP请求-响应模型会迅速暴露出其脆弱性。例如，一个“创建完整应用环境”的操作，可能涉及创建VPC、初始化数据库、部署服务、配置DNS等一系列耗时且可能失败的步骤。如果将这一切都塞进单个同步请求中，超时、网络抖动或任何</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://jivvies.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Ktor" scheme="https://jivvies.com/tags/Ktor/"/>
    
    <category term="Pulumi" scheme="https://jivvies.com/tags/Pulumi/"/>
    
    <category term="RabbitMQ" scheme="https://jivvies.com/tags/RabbitMQ/"/>
    
    <category term="XState" scheme="https://jivvies.com/tags/XState/"/>
    
    <category term="Redux" scheme="https://jivvies.com/tags/Redux/"/>
    
  </entry>
  
  <entry>
    <title>构建异构分布式任务编排系统以调度高性能C++计算核心</title>
    <link href="https://jivvies.com/1333167700/"/>
    <id>https://jivvies.com/1333167700/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们面临一个典型的工程困境：一个团队维护着一个极其高效的C++计算库。它是一个命令行工具，接收配置文件，执行数小时的密集计算，然后输出结果。这个工具是业务核心，但它也是个黑盒，脆弱且难以集成。每次任务失败，都需要工程师手动介入，检查日志，清理半成品文件，然后重试。将其服务化</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://jivvies.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Prettier" scheme="https://jivvies.com/tags/Prettier/"/>
    
    <category term="C++" scheme="https://jivvies.com/tags/C/"/>
    
    <category term="React Testing Library" scheme="https://jivvies.com/tags/React-Testing-Library/"/>
    
    <category term="BASE" scheme="https://jivvies.com/tags/BASE/"/>
    
    <category term="框架 (Go)" scheme="https://jivvies.com/tags/%E6%A1%86%E6%9E%B6-Go/"/>
    
  </entry>
  
  <entry>
    <title>构建一个基于消息队列与SSE的整洁架构实时任务进度反馈系统</title>
    <link href="https://jivvies.com/1324827484/"/>
    <id>https://jivvies.com/1324827484/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在真实项目中，我们经常遇到需要向用户实时反馈长耗时任务进度的场景，例如数据报表生成、视频转码或批量数据处理。一个常见的错误是采用轮询（Polling）方案，即UI组件定期向后端发送HTTP请求查询任务状态。这种方式不仅给服务器和数据库带来不必要的周期性压力，还存在延迟，用户</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://jivvies.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="UI 组件库" scheme="https://jivvies.com/tags/UI-%E7%BB%84%E4%BB%B6%E5%BA%93/"/>
    
    <category term="Clean Architecture" scheme="https://jivvies.com/tags/Clean-Architecture/"/>
    
    <category term="消息队列" scheme="https://jivvies.com/tags/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/"/>
    
    <category term="Server-Sent Events" scheme="https://jivvies.com/tags/Server-Sent-Events/"/>
    
  </entry>
  
  <entry>
    <title>构建基于Vault的ActiveMQ动态凭证管理服务及其RESTful API实现</title>
    <link href="https://jivvies.com/1377514764/"/>
    <id>https://jivvies.com/1377514764/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在生产环境中，将ActiveMQ的静态用户名和密码硬编码在配置文件或者代码中，是一种常见的、但极度危险的做法。凭证一旦泄露，整个消息中枢将门户大开。更棘手的是凭证的轮换，每次更新都需要协调所有生产者和消费者的重启，这在大型分布式系统中几乎是不可能完成的任务。我们面临的挑战是</summary>
        
      
    
    
    
    <category term="安全与合规" scheme="https://jivvies.com/categories/%E5%AE%89%E5%85%A8%E4%B8%8E%E5%90%88%E8%A7%84/"/>
    
    
    <category term="Vault" scheme="https://jivvies.com/tags/Vault/"/>
    
    <category term="DevSecOps" scheme="https://jivvies.com/tags/DevSecOps/"/>
    
    <category term="密钥管理" scheme="https://jivvies.com/tags/%E5%AF%86%E9%92%A5%E7%AE%A1%E7%90%86/"/>
    
    <category term="ActiveMQ" scheme="https://jivvies.com/tags/ActiveMQ/"/>
    
    <category term="RESTful API" scheme="https://jivvies.com/tags/RESTful-API/"/>
    
  </entry>
  
  <entry>
    <title>构建基于强化学习与OpenFaaS的Webpack动态配置优化管道</title>
    <link href="https://jivvies.com/1356538687/"/>
    <id>https://jivvies.com/1356538687/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们前端项目的CI管道已经僵化了。Webpack的配置文件，一个由层层“最佳实践”和性能魔法数字堆砌而成的庞然大物，已经数月无人敢动。每一次提交，无论改动大小，都会触发一套完全相同、耗时漫长的构建流程。更糟糕的是，我们为这套静态流程付出了高昂的计算成本，换来的却是停滞不前的</summary>
        
      
    
    
    
    <category term="DevOps" scheme="https://jivvies.com/categories/DevOps/"/>
    
    
    <category term="MLOps" scheme="https://jivvies.com/tags/MLOps/"/>
    
    <category term="OpenFaaS" scheme="https://jivvies.com/tags/OpenFaaS/"/>
    
    <category term="Webpack" scheme="https://jivvies.com/tags/Webpack/"/>
    
    <category term="强化学习" scheme="https://jivvies.com/tags/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/"/>
    
    <category term="CI/CD" scheme="https://jivvies.com/tags/CI-CD/"/>
    
  </entry>
  
  <entry>
    <title>构建基于Python与Serverless的CDC管道实现数据湖分析负载分离</title>
    <link href="https://jivvies.com/1435041877/"/>
    <id>https://jivvies.com/1435041877/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们生产环境的 Aurora MySQL 读副本 CPU 占用率已经连续数周在 90% 以上的高位徘徊。最初的读写分离设计，本意是隔离在线事务处理（OLTP）和报表查询，但随着业务增长，数据分析团队的临时复杂查询和 BI</summary>
        
      
    
    
    
    <category term="数据工程" scheme="https://jivvies.com/categories/%E6%95%B0%E6%8D%AE%E5%B7%A5%E7%A8%8B/"/>
    
    
    <category term="读写分离" scheme="https://jivvies.com/tags/%E8%AF%BB%E5%86%99%E5%88%86%E7%A6%BB/"/>
    
    <category term="Python" scheme="https://jivvies.com/tags/Python/"/>
    
    <category term="Data Lake" scheme="https://jivvies.com/tags/Data-Lake/"/>
    
    <category term="Serverless" scheme="https://jivvies.com/tags/Serverless/"/>
    
    <category term="CDC" scheme="https://jivvies.com/tags/CDC/"/>
    
  </entry>
  
  <entry>
    <title>在 CockroachDB 上整合 MapReduce 批处理与实时 Rollup 构建混合特征存储</title>
    <link href="https://jivvies.com/1407162423/"/>
    <id>https://jivvies.com/1407162423/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们面临的第一个真正棘手的问题，是机器学习模型对特征的矛盾需求。风控模型需要用户过去一年的交易行为聚合特征，这是一个典型的批处理场景；但同时，它又需要捕捉到用户最近30秒内的交易频率，这是一个纯粹的流式计算需求。传统的 Lambda</summary>
        
      
    
    
    
    <category term="数据工程与存储" scheme="https://jivvies.com/categories/%E6%95%B0%E6%8D%AE%E5%B7%A5%E7%A8%8B%E4%B8%8E%E5%AD%98%E5%82%A8/"/>
    
    
    <category term="MapReduce" scheme="https://jivvies.com/tags/MapReduce/"/>
    
    <category term="Tyk" scheme="https://jivvies.com/tags/Tyk/"/>
    
    <category term="CockroachDB" scheme="https://jivvies.com/tags/CockroachDB/"/>
    
    <category term="Rollup" scheme="https://jivvies.com/tags/Rollup/"/>
    
  </entry>
  
  <entry>
    <title>Solid.js 与 Django 应用中基于上下文传递的 ELK 结构化日志系统构建实践</title>
    <link href="https://jivvies.com/1349313785/"/>
    <id>https://jivvies.com/1349313785/</id>
    <published>2023-10-27T10:15:30.000Z</published>
    <updated>2026-03-20T14:43:53.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;生产环境的日志总是散乱的。前端应用在用户的浏览器里安静地报错，而后端服务在自己的世界里记录着业务流程。当用户报告一个模糊不清的“功能失灵”时，我们面对的是两套毫无关联的时间戳和日志流。前端开发者在 &lt;code&gt;console.log&lt;/code&gt;</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://jivvies.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Python" scheme="https://jivvies.com/tags/Python/"/>
    
    <category term="Django" scheme="https://jivvies.com/tags/Django/"/>
    
    <category term="Solid.js" scheme="https://jivvies.com/tags/Solid-js/"/>
    
    <category term="ELK Stack" scheme="https://jivvies.com/tags/ELK-Stack/"/>
    
    <category term="设计模式" scheme="https://jivvies.com/tags/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/"/>
    
  </entry>
  
</feed>
