spring cloud - hystrix的核心原理就这么简单

56 阅读1分钟

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

hystrix的服务保护机制是通过Rxjava的Observable实现的,平时可能用不上,其实简化一下也就是出错以后的处理方案,至于hystrix的内部处理原理:cache -> circuit -> semaphore/thread -> run,metrics度量,也就是这么多,如果对其核心的方法使用正统的Java方式简化,如下即可:

interface Command {
    String run ();
    String fallBack ();
}

class CustomCommand implements Command {
    @Override
    public String run() {
        return "ok";
    }

    @Override
    public String fallBack() {
        return "fall";
    }
}
public void test8 () {
        ExecutorService service = Executors.newSingleThreadExecutor();
        CustomCommand customCommand = new CustomCommand();
        Future<String> future = service.submit(new Callable<String>() {
            @Override
            public String call() throws Exception {
                //Thread.sleep(5000);
                return customCommand.run();
            }
        });
        String re = "";
        try {
            re = future.get(500, TimeUnit.MILLISECONDS);
        } catch (Exception e) {
            re = customCommand.fallBack();
        }
        System.out.println(re);
    }

在这里插入图片描述