Apollo是一个开源的配置中心,它提供了两种订阅方式:标准Apollo订阅和智能订阅。它们之间的区别在于订阅的方式和处理变更的方式。
标准Apollo订阅的代码示例(Java):
Config config = ConfigService.getAppConfig();
config.addChangeListener(new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent changeEvent) {
// 处理配置变更
for (String key : changeEvent.changedKeys()) {
String newValue = changeEvent.getChange(key).getNewValue();
// 根据key和newValue进行相应的处理
}
}
});
智能订阅的代码示例(Java):
Config config = ConfigService.getAppConfig();
config.addChangeListener(new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent changeEvent) {
// 处理配置变更
for (String key : changeEvent.changedKeys()) {
String newValue = changeEvent.getChange(key).getNewValue();
// 根据key和newValue进行相应的处理
}
}
}, new ApolloNotificationMessages() {
@Override
public void handleMessages(List list) {
// 处理配置变更的通知
for (ApolloConfigNotification notification : list) {
// 根据notification进行相应的处理
}
}
});
总结: 标准Apollo订阅是通过长轮询方式实现的,客户端需要主动发起请求;而智能订阅是通过Websocket实现的,服务器会主动推送配置变更给客户端。根据实际需求选择合适的订阅方式。