当前位置:   article > 正文

java 通知 客户端_Apollo源码-配置发布通知客户端

message received - channel

前言

在更新Spring Cloud Alibaba Nacos时,想到之前阅读过Apollo的源码,便在这插入记录了过来,后续更新Nacos Config源码

Apollo简介

fork 源码地址 apollo源码

参考apollo架构中心设计

主要分为 Config Service、Admin Service、Portal、Client 四部分

上文介绍到ReleaseMessage 对象的发布,portal发布配置第一件事新增 Release 对象,第二件事发布ReleaseMessage 紧接着第三件事便是本文要讲的 ConfigPublishEvent 事件

新建ConfigPublishEvent事件

@EventListener

public void onConfigPublish(ConfigPublishEvent event) {

executorService.submit(new ConfigPublishNotifyTask(event.getConfigPublishInfo()));

}

private class ConfigPublishNotifyTask implements Runnable {

private ConfigPublishEvent.ConfigPublishInfo publishInfo;

ConfigPublishNotifyTask(ConfigPublishEvent.ConfigPublishInfo publishInfo) {

this.publishInfo = publishInfo;

}

@Override

public void run() {

ReleaseHistoryBO releaseHistory = getReleaseHistory();

if (releaseHistory == null) {

Tracer.logError("Load release history failed", null);

return;

}

sendPublishEmail(releaseHistory);

sendPublishMsg(releaseHistory);

}

跟踪代码也没发现和configservice的交互,事件监听者无非是创建一个线程池,执行线程任务,任务为发送release对象邮件,和调用远端hermes的一个接口。

配置发布,通知客户端

阅读官方文档 : 服务端设计文档中详细介绍了configservice是如何拉取ReleaseMessage的

实现方式如下:

1.Admin Service在配置发布后会往ReleaseMessage表插入一条消息记录,消息内容就是配置发布的AppId+Cluster+Namespace,参见DatabaseMessageSender

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号