并发 – 没有中央控制点的冗余?
如果可以向多个客户端提供服务,如果提供此服务的服务器发生故障,另一个服务器就会占用它 – 没有某种集中的“控制”,它会检测主服务器是否已关闭并将客户端重定向到新服务器?
是否可以不使用集中式接口/网关? 换句话说,它有点像问你可以设计一个节点平衡器而没有集中控制来指导客户端吗? 解决方法
这个答案概述了网络应用程序的高可用性,而不是Erlang特有的.我不太了解OTP框架中的可用内容,因为我是该语言的新手.
这里有一些不同的问题: >必须将客户端连接移动到备份计算机 问题1 – 移动客户端连接 如果您需要网络透明性,您可以使用某种技术在不同计算机之间同步TCP状态,然后将所有流量重新路由到新计算机,这可能对客户端完全不可见.这比第一个建议要困难得多. 我相信这两者之间有很多事情要做. 问题2 – 状态数据 >交易/消息来自客户端进入主机. 在某些情况下,这可能是昂贵的(或者至少不够响应),因为您甚至在向客户端确认任何内容之前依赖备份计算机及其连接,包括延迟.为了使其性能更好,您可以让客户端在连接时检查备份机器收到的事务,然后重新发送丢失的事务,使客户端负责排队工作. 问题3 – 检测崩溃 >客户端应该连接到备份机吗?>如果主服务器更新某些状态并将其发送到备份计算机,而备份与真实客户端连接,那么会有数据竞争吗?>主机和备用机器可以同时启动,还是需要关闭其中一台机器并移动所有会话?>在这个问题上你需要某种权威,一些协议决定哪一个是主人,哪一个是奴隶?谁是那个权威?你如何分散它?>如果您的节点失去了它们之间的连接但两个都继续按预期工作(称为网络分区)怎么办? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |