我试图在Akka(akka-cluster)中快速,最直接地展示Split Brain。
为了做到这一点,我想要3个节点进程,但是其中2个应该只使用中间的进程相互通信,所以当我杀死它时会出现分裂。它应该如下所示: 的
1--2--3
并且杀死2使得1和3无法通信并且Split Brain Resolver处理它。
或者是否有更简单的方法来展示Split Brain的简单场景以及Akka Split Brain Resolver如何处理它们?
答案 0 :(得分:0)
我没有使用过Split Brain Resolver,显然是因为它是一个高级功能:)。但是,根据描述,解析器也会激活超时工作。那么,为什么在收到某个消息时实际上不会阻止actor 2。因此,将其设置为睡眠(使用@Component({
template: `
<div>
<h2>NgModel Example</h2>
<div *ngFor="let input of inputList">
{{ input.label }} <input type="text" [(ngModel)]="input.bindTo">
</div>
</div>
<p>This is not working: {{customerInfo.name}}, {{customerInfo.email}}</p>
`,
directives: [...]
})
export class AppComponent {
inputList = [
{
label: "Enter your name",
bindTo: this.customerInfo.name // also tried 'customerInfo.name'
},
{
label: "Enter your email",
bindTo: this.customerInfo.email
}
]
customerInfo = {
name: 'test',
email: ''
}
}
)一两分钟。这可能被视为失败(再次,直觉)。
另一个想法是在你的actor中抛出某种异常,并使用Thread.sleep
处理程序处理它,将OneForOneStrategy
映射到Throwable
指令。