fcten's blog

What I cannot create, I do not understand.

分布式锁是在分布式系统中用于协调多个节点之间对共享资源访问的一种机制。它确保在任何给定的时间点,只有一个客户端能够持有锁并执行关键操作,从而避免了并发问题导致的数据不一致或其他冲突。以下是关于分布式锁的详细讨论:

1. 分布式锁的基本概念

  • 唯一性:在同一时刻,整个系统中只允许一个客户端获取到锁。
  • 互斥性:如果一个客户端已经持有了锁,则其他试图获取同一把锁的请求必须等待,直到当前持有者释放锁。
  • 容错性:考虑到网络分区、机器故障等情况,好的分布式锁实现应该具备一定的容错能力。
阅读全文 »

优化存放亿级数据的数据库需要从多个方面入手,以下是具体的建议:

1. 技术选型

  • 选择合适的技术:根据业务需求选择适合的数据库类型(如关系型或NoSQL)和支持水平扩展的分布式数据库(如Amazon Aurora, TiDB),确保能够处理大规模数据并支持高并发访问。
阅读全文 »

优化一个高QPS(每秒查询数)服务的SLA(服务水平协议),旨在确保该服务在高负载情况下依然能够提供稳定、快速且可靠的响应。为了达到这个目标,可以从多个方面进行优化,包括但不限于架构设计、资源管理、性能调优、容错机制以及监控和预警系统等。

1. 架构设计

  • 分布式架构:采用微服务或无服务器架构,将服务拆分为更小、独立的服务单元,可以提高系统的可扩展性和灵活性。
  • 负载均衡:使用负载均衡器来分配流量,确保没有单个实例过载,并实现故障转移。
  • 缓存策略:引入缓存层减少数据库压力,如Redis或Memcached,以加速数据读取。
  • 异步处理:对于非实时任务,使用消息队列(如Kafka, RabbitMQ)进行异步处理,避免阻塞主线程。
阅读全文 »

以前基于 Hexo 与 Github Pages 搭建的博客已然长草多年了,最近心血来潮想重新拾掇一下,却发现以前使用 hexo deploy 的方式部署到 Github Pages 的博客只有静态文件,而原始的 Markdown 文件实在是找不到在哪了。这感觉就跟发现已经在线上跑了十年只有二进制包的程序有 bug 一样难受。

看来博客和程序一样,应该把源代码直接托管到 Github 上,才更方便持续维护。

于是花了一点时间把笔记本上一万年未更新的 Node.js 和 npm 升级了一下,安装了最新版本的 Hexo。最关键的一点是,把博客的部署方式改为使用 Github Actions 自动部署。具体配置方法可以参考 官方文档

有了基本的框架之后,大部分的时候写博客都可以直接在 Github 上完成,即便是在公司也可以愉快地 摸鱼 学习和沉淀了。

踏平坎坷成大道,斗罢艰险又出发!

0%