EDA
Event Driven Architecture
事件驱动架构,可以有效解决解耦、异步、削峰等问题。
与微服务架构有什么区别?
微服务架构是是一种请求驱动模型,一种pull的方式,都是阻塞模型。当需要一些数据的时候,通过阻塞调用接口(但也有可能是future或者async回调的方式,这种不算是全阻塞)获得数据。
而EDA是一种事件驱动的模型,是一种push的方式,当需要一些数据的时候,只是发送一个事件到事件总线,subscriber感知到事件后,计算处理事件,然后将结果主动的push给生产者。
public boolean isBalanceTree(TreeNode root) {
return foo(root) >= 0;
}
private int foo(TreeNode root) {
if (root == null) {
return 0;
}
int left = foo(root.left);
int right = foo(root.right);
if (left < 0 || right < 0 || Math.abs(left - right) > 1) {
return -1;
}
return Math.max(left, right) + 1;
}