HeZephyr

HeZephyr's Blog

日拱一卒无有尽,功不唐捐终入海

HeZephyr's GitHub chart

配置和排查 Lombok 在 IDEA 中使用的详细步骤

在日常开发中,Java 代码常常需要大量的样板代码,比如 gettersettertoString 等方法。Lombok 是一个 Java 库,可以通过注解的方式,自动生成这些常见的代码,从而让代码更加简洁、清晰。比如,我们可以通过 @Getter@Setter 注解自动生成 gettersetter 方法,通过 @ToString 自动生成 toString 方法。Lombok 的常用注解包括:

  • @Getter:生成 getter 方法。
  • @Setter:生成 setter 方法。
  • @ToString:生成 toString 方法。
  • @Data:生成 gettersettertoStringequalshashCode 方法。
  • @Builder:提供构建者模式(Builder pattern)。

下面是配置和排查 Lombok 在 IDEA 中使用的详细步骤。

【MIT 6.5840(6.824)】 Lab 5:Sharded Key/Value Service 设计实现

1 实验要求

1.1 介绍

本实验要求构建一个键 / 值存储系统,该系统能够将键 “分片” 或分区到一组副本组上。分片是键 / 值对的子集,例如所有以“a”开头的键可能是一个分片等,通过分片可提高系统性能,因为每个副本组仅处理几个分片的放置和获取,并且这些组并行操作。

【论文阅读笔记】Bigtable: A Distributed Storage System for Structured Data

1 简介

Bigtable 是 Google 设计的用于管理结构化数据的分布式存储系统,可扩展到数千台服务器存储 PB 级数据。它不是关系数据库,而是一种稀疏、分布式、持久性多维排序映射(K/V)

Bigtable被 60 多个 Google 产品使用,涵盖不同数据规模和延迟要求的应用,这得益于 BigTable 提供的简单数据模型可以使客户端动态控制数据的布局和格式

【论文阅读笔记】The Chubby Lock Service for Loosely-Coupled Distributed Systems

1 简介

Chubby是一个面向松耦合分布式系统的锁服务,被广泛应用于Google内部的多个关键系统中,如GFS(Google文件系统)和Bigtable。在GFS中,Chubby用于指定主服务器;而在Bigtable中,它不仅支持主服务器选举、帮助主服务器发现其所管理的子服务器以及协助客户端定位主服务器,还充当了少量元数据存储的角色。 Chubby允许客户端同步活动并就环境基本信息达成一致。主要目标包括可靠性、对大量客户端的可用性以及易于理解的语义,吞吐量和存储容量是次要考虑因素。 值得注意的是,Chubby并非基于全新的算法理论构建而成,而是将已有的Paxos一致性算法作为实现基础,通过工程上的优化来满足实际应用场景下的需求。 Chubby向用户暴露了一套类似于UNIX文件系统的API接口,应用不仅能对Chubby服务器上的整个文件进行读写操作,还可以添加对文件节点的锁控制。此外,Chubby还引入了事件订阅机制,允许客户端注册监听某些类型的数据变更通知,一旦相关文件或目录发生更新,则会立即接收到由服务端推送的通知消息。

Prometheus使用Pushgateway推送数据

1 Pushgateway简介

Prometheus 的 Pushgateway 是一个简单的 HTTP 服务器,它允许数据被推送到该服务器,而不是通过拉取的方式获取。它的存在是为了让临时和批处理作业能够将其指标暴露给 Prometheus。由于这类作业可能存在的时长不足以被主动抓取,因此它们可以将指标推送到 Pushgateway。随后,Pushgateway 会将这些指标暴露给 Prometheus。

Prometheus架构详解

1 Prometheus简介

Prometheus 是一个开源的系统监控报警工具套件,它最初由SoundCloud开发,并于2016年成为CNCF(云原生计算基金会)托管的第二个项目(第一个是kubernetes)。Prometheus 以其简单高效的方式收集指标而闻名,能更好地与容器平台、云平台配合,这使得它在现代云原生环境中非常受欢迎。Prometheus 被广泛应用于各种场景中,包括但不限于:

【MIT 6.5840(6.824)】 Lab 4:Fault-Tolerant KVService 设计实现

1 实验要求

本实验旨在利用lab 3中的Raft库,构建一个具备容错能力的键值存储服务。服务将作为一个复制状态机,由多个服务器组成,各服务器通过Raft协议同步数据库状态。即使在部分故障或网络隔离的情况下,只要大多数服务器正常,服务仍需继续响应客户端请求。在lab 4完成后,你将实现图中Raft交互的所有部分(Clerk、Service和Raft)。

0%