摘要: 哨兵机制是 Redis 高可用中重要的一环,其核心是 通过高可用哨兵集群,监控主从复制的健康状态,并实现自动灾备: 哨兵集群以集群的方式进行部署,这种分布式特性具有以下优点: 避免系统中存在单点,防止灾备机制失效 切换 master 必须经过多个 sentinel 节点协商同意,避免出现误判 为了保 阅读全文
posted @ 2021-02-12 17:35 buttercup 阅读(1455) 评论(0) 推荐(1)
摘要: 作为内存数据库,Redis 依然提供了持久化机制,其主要目的有两个: 安全:保证进程崩溃后数据不会丢失 备份:方便数据迁移与快速恢复 Redis 同时提供两种持久化机制: RDB 快照:数据库在某个时间点的完整状态,其存储内容为键值对 AOF 日志:包含所有改变数据库状态的操作,其存储内容为命令 R 阅读全文
posted @ 2021-02-12 11:29 buttercup 阅读(985) 评论(0) 推荐(1)
摘要: 为了保证服务的可用性,现代数据库都提供了复制功能,同时在多个进程中维护一致的数据状态。 Redis 支持一主多从的复制架构,该功能被简化成了一条 SLAVEOF 命令,下面通过条命令来解析 Redis 的主从复制机制。 通过 tcpdump 观察 在本机上通过 redis-server 启动两个服务 阅读全文
posted @ 2021-02-12 01:33 buttercup 阅读(1334) 评论(0) 推荐(0)
摘要: 使用方式 创建一个 KafkaConsumer 对象订阅主题并开始接收消息: Properties properties = new Properties(); properties.setProperty("bootstrap.servers", "localhost:9092"); proper 阅读全文
posted @ 2021-02-11 16:19 buttercup 阅读(3465) 评论(0) 推荐(1)
摘要: 使用方式 KafkaProducer 发送消息主要有以下 3 种方式: Properties properties = new Properties(); properties.setProperty("bootstrap.servers", "localhost:9092"); propertie 阅读全文
posted @ 2021-01-01 00:24 buttercup 阅读(857) 评论(0) 推荐(0)
摘要: 基础知识 性能指标 在调优Java应用程序时,重点通常放在两个主要目标上:响应性 或 吞吐量。 响应性Responsiveness 是指应用程序对请求的数据做出响应的速度: 桌面用户界面对事件的响应速度 网站返回页面的速度 数据库查询的返回速度 吞吐量Throughput 专注于最大程度地提高应用程 阅读全文
posted @ 2020-12-17 00:53 buttercup 阅读(806) 评论(0) 推荐(1)
摘要: 背景 某系统使用 Kafka 存储实时的行情数据,为了保证数据的实时性,需要在多地机房维护多个 Kafka 集群,并将行情数据同步到这些集群上。 一个常用的方案就是官方提供的 KafkaMirrorMaker 方案: 该方案的优点是能尽可能保证两个 Kafka 集群的数据一致(为了避免网络故障导致丢 阅读全文
posted @ 2020-12-13 21:41 buttercup 阅读(901) 评论(0) 推荐(0)
摘要: 数据结构实现 相信大家对 redis 的数据结构都比较熟悉: string:字符串(可以表示字符串、整数、位图) list:列表(可以表示线性表、栈、双端队列、阻塞队列) hash:哈希表 set:集合 zset:有序集合 为了将性能优化到极致,redis 作者为每种数据结构提供了不同的实现方式,以 阅读全文
posted @ 2020-10-31 12:31 buttercup 阅读(1570) 评论(0) 推荐(2)
摘要: 背景 公司近期开通了一条访问美国机房的 1G 专线,并基于 TCP 建立了一套数据传输服务。上线后发现一个严重的问题:应用程序发送队列中的数据大量积压,最终导致程序 OOM Kill,但观察监控发现专线带宽利用率只有 50% - 60%。 经过沟通,发现运维同事当时使用 iperf3 测试专线带宽使 阅读全文
posted @ 2020-10-14 20:55 buttercup 阅读(4011) 评论(2) 推荐(1)
摘要: 基础知识 作为网络基础知识,相信大家对 TCP/IP 5层协议模型 不会感到陌生: 应用层(应用层,表示层,会话层):具体的应用逻辑 传输层:提供进程间的通信服务 网络层:提供端系统之间的数据透明传送 链路层:数据在具体物理设备上的表示(设备驱动、网卡) 物理层:具体物理设备之间的链接(电缆) 其中 阅读全文
posted @ 2020-10-04 16:55 buttercup 阅读(787) 评论(0) 推荐(0)