现有如下一种业务场景,用户点击系统控制台页面,查看我们想要统计集群内各个机器某项业务指标的情况然后做汇总,返回到页面上。
直接说方案:
先引入HazelCast包
我们可以抽取一个CollectorService,这个service有一个方法叫做String collect();业务逻辑在每个机器执行后返回一个String类型的结果。
然后我们定义一个任务:MonitorTask继承自Callable,Serializable,然后在call方法中调用业务方法:CollectorService的collect得到结果。这个只是单台机器的情况。现在我们需要得到集群内所有机器的执行情况,可以如下操作:
声明一个全局的ExecutorService,由于HazelCast可以获取到集群内每个node,所以它也可以将请求分发到每台机器上。我们通过Future的get获取到所有的结果,展示在页面做汇总,问题完美解决!!!
如果觉得文章不错,欢迎关注我的微信公众号: