官方Kubernetes教程的第一部分指出,
处理生产流量的Kubernetes集群应至少具有三个节点.
但没有给出为什么三个是首选的理由.为避免裂脑情况,仅仅允许更大的可用性,或满足Kubernetes内部特定的东西,三个是否超过两个是可取的?我原以为只有多个Kubernetes集群(每个集群都有不同的主服务器)才会出现裂脑情况,而单个集群应该能够处理至少两个节点,每个节点可能都在自己的可用区中.
Lipovača表示,从"了解你是一个很好的Haskell"中的章节开始:
"当我们这样做
(+) <$> (+3) <*> (*100),我们正在做的是将使用功能+上的结果(+3)和(*100)并返回.为了证明在一个真实的例子,当我们做(+) <$> (+3) <*> (*100) $ 5的5第一次得到应用(+3)和(*100),导致8和500.然后,+被调用8并且500,导致508."
但是,如果我自己尝试评估函数,请考虑这个函数的定义:( - >)r):
instance Applicative ((->) r) where
pure x = (\_ -> x)
f <*> g = \x -> f x (g x)
Run Code Online (Sandbox Code Playgroud)
我把以上表达式的评价读作:
(\x -> (3 + x) (100 * x)) $ 5
但是我没有看到我们如何将两个部分应用的二进制函数组合成一个lambda(事实上,GHCi抛出一个无限类型的错误,试图将它绑定到一个变量).此外,对于工作解释,如果我们查看<$>我们得到的类型定义: …
我知道这PhantomData是要消耗数据类型定义中的生命周期或类型参数,否则将不使用该参数。我最近在看的定义Rc在锈标准库,发现它似乎雇用PhantomData,但它看起来像T在同级领域正在被使用ptr作为NonNull<RcBox<T>>。文档说这NonNull是“ * mut T,但非零且协变”。并通过以下语句进一步扩展该定义:
与相比
*mut T,NonNull<T>T 与T协变。如果这对于您的用例而言是不正确的,则应PhantomData在类型中包括一些以提供不变性,例如PhantomData<Cell<T>>或PhantomData<&'a mut T>。
因此,它是否需要方差还是更多,因为NonNull它实际上是原始指针,PhantomData并且需要消耗消亡的生命,因为这个答案似乎暗示了这一点?
据我了解,对于给定的评估节点,启发式算法的可接受性保持在“距离的实际成本”的范围内。我不得不为状态空间上的 A* 解决方案搜索设计一些启发式方法,并且使用有时可能返回负值的启发式方法获得了很多积极的效率,因此使某些节点与目标更“紧密地形成”国家在边疆的地位更高。
但是,我担心这是不可接受的,但无法在网上找到足够的信息来验证这一点。我确实找到了德克萨斯大学的这篇论文,它似乎在后来的证明之一中提到“......因为启发式函数是非负的”。任何人都可以证实这一点吗?我认为这是因为返回负值作为您的启发式函数会使您的 g-cost 变为负值(因此会干扰 A* 的“默认”dijkstra-esque 行为)。
'l' strlcpy代表什么?我肯定在询问它会非常明显但我似乎无法在任何地方挖掘出坚实的答案.
a-star ×1
applicative ×1
bsd ×1
c ×1
c-strings ×1
functor ×1
haskell ×1
heuristics ×1
kubernetes ×1
rust ×1
state-space ×1