etcd docker
数据可靠性通常与存储系统的一致性、持久性以及容错性等方面有关。虽然 Redis 和 etcd 都是用于存储数据的分布式系统,但它们的设计和用途有一些不同。
一致性:
Etcd:Etcd 是一个分布式键值存储系统,实现了强一致性。它采用 Raft 协议来确保在分布式环境下数据的一致性。Raft
是一种强一致性的分布式一致性算法,确保系统在面临故障时依然能够保持一致性。
Redis:Redis 的一致性级别相对较低,它通常被设计用于提供高性能的缓存和数据存储。Redis
支持主从复制,但在某些情况下,可能会因为网络分区等问题而导致数据不一致。
持久性:
Etcd:Etcd支持数据的持久性存储,并且数据会被安全地保存在多个节点上。这意味着在节点故障或网络问题的情况下,系统可以保证数据的持久性。
Redis:Redis 支持数据的持久化,但持久化方式有两种:RDB(快照)和 AOF(追加文件)。RDB 是定期生成数据库快照,而
AOF 则记录每个写操作。在某些情况下,如果 Redis 在 AOF 持久化模式下配置为异步写入磁盘,可能会出现部分数据的丢失。
容错性:
Etcd:Etcd 被设计为高度容错的系统。通过 Raft 协议,etcd 可以在集群中容忍节点故障,确保系统的可用性和稳定性。
Redis:Redis 支持主从复制,但在某些情况下,主节点故障可能会导致数据不一致。Redis Sentinel 可以用于监控
Redis 主从集群并进行故障转移,但在切换过程中可能会有一些短暂的数据不一致。
总的来说,etcd 更强调在分布式环境下提供一致性、可靠性和容错性。在一些需要强一致性和可靠性的场景下,etcd 可能更适合作为数据存储系统。不过,具体选择还应该考虑应用的具体要求和场景。
goctl 生成最小化 gRPC 服务默认启动会向 ETCD 注册中心注册当前服务的信息
https://hub.docker.com/r/bitnami/etcd
docker run -d --name etcdx \
-p 2379:2379 \
-p 2380:2380 \
-e ALLOW_NONE_AUTHENTICATION=yes \
-e ETCD_ADVERTISE_CLIENT_URLS=http://etcdx:2379 \
bitnami/etcd:latest
参考文章:https://blog.csdn.net/BBJG_001/article/details/134362394