返回介绍

韧性和性能 Resilience and Performance

发布于 2025-01-04 01:04:23 字数 910 浏览 0 评论 0 收藏 0

ZooKeeper 应用应该被定位用于减少机器和网络对系统的影响。在实践中这意味着我将隔离机架、电源供应和路由,使得我们不会因为他们的故障而导致失去我们的大多数服务器。

低延迟服务应用的重点是要求所有的服务器都在一个数据中心里。然而一些不要求低延迟应答的场景,为了获得额外的韧性,将服务器部署在不同的数据中心(至少每两台在一个数据中心)。本节中的例子是一个 leader 选举算法和一个分布式锁算法,两者都不具有频繁的状态改变的特征,几十毫秒的开销对于系统并不会造成重要的影响。

注意
ZooKeeper 的概念中有一类不参加 leader 选举投票的 follower。由于在众多的读请求过程中,这种观察者节点并不参加投票,所以可以提高 ZooKeeper 集群的读取性能,而不去伤害到写入性能。观察者节点可以部署在跨数据中心的环境下,而不会像参加投票的 follower 那样在跨数据中心的环境中会对集群产生潜在的影响。那么我们可以将参加投票的 follower 部署在同一个数据中心,而将不参加投票的 follower 部署在另外一个数据中心。

ZooKeeper 是一个高可用的系统,他的重点是能够及时运行它的功能。因此,建议 ZooKeeper 服务器最好专注于运行 ZooKeeper。如果运行了其他的应用程序,可能会降低 ZooKeeper 的性能。

配置保证 ZooKeeper 的事务日志在与他的快照不同的硬盘上。默认情况下,都在 dataDir 指定的目录下,我们可以通过额外设置 dataLogDir 来指定日志的目录。日志被指定写到专门的硬盘设备,ZooKeeper 就可以对大化写日志的速率。

我们在配置文件夹下的 java.env 中可以配置 JVM 参数。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文