public class DefaultSubscriber extends DefaultDataClient implements Subscriber
SubscriberRegistrar| 限定符和类型 | 字段和说明 |
|---|---|
boolean |
isExistSubMetaDataObserver |
protected static com.taobao.middleware.logger.Logger |
log |
protected CopyOnWriteArrayList<SubscriberDataObserver> |
observers |
registerError, registerResult, registration, serverMgr| 构造器和说明 |
|---|
DefaultSubscriber(SubscriberRegistration registration) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addExcListener(ExcListener listener) |
void |
addPackage(com.taobao.config.common.protocol.ProtocolPackage packagee) |
int |
dataSize() |
String |
getClientId() |
List<Object> |
getData() |
String |
getDataId() |
SubscriberDataObserver |
getDataObserver()
已过时。
|
Map<String,List<ObserverData>> |
getObserverDataGroups() |
SubscriberRegistration |
getRegistration()
获取最初申请时填写的《订阅者登记表》
|
Subscription |
getSubscription()
建立一份订阅,用于等待并获取订阅的数据。
|
Map<String,Double> |
getWeightValue() |
void |
notifyObServer() |
List<Object> |
peekData()
尝试获取订阅的数据。
|
Map<String,List<ObserverData>> |
peekDataWithMeta() |
com.taobao.config.common.Revision |
revision() |
void |
setDataObserver(SubscriberDataObserver observer)
指定当前订阅者的数据观察员,它将在数据发布时得到通知。
|
boolean |
setWeightValue(Map<String,Double> weightValue) |
String |
toString() |
void |
unregister() |
void |
update(com.taobao.config.common.Revision revision,
List<Object> datas,
Map<String,List<ObserverData>> observerDatas)
更新数据,不再比较版本号
|
cleanUpIfNecessary, getClientId, getDataId, getServerListManager, handleRegisterResult, hashCode, isDisable, isEnable, isNotRegistered, isRegistered, onServerDisconnected, setDisablepublic volatile boolean isExistSubMetaDataObserver
protected static final com.taobao.middleware.logger.Logger log
protected final CopyOnWriteArrayList<SubscriberDataObserver> observers
public DefaultSubscriber(SubscriberRegistration registration)
public List<Object> peekData()
Subscriber不保证能得到数据(可能由于缺少发布者、网络通信不畅或者服务器离线),推荐使用异步的Future或回调方式。
注意:永远不要直接修改,或保存并在将来可能修改返回的List中的对象,这将影响到所有该数据的订阅者。 建议发布者只发布不可修改(Immutable)的数据类型,如String。
peekData 在接口中 Subscriberpublic Map<String,List<ObserverData>> peekDataWithMeta()
public SubscriberRegistration getRegistration()
SubscribergetRegistration 在接口中 SubscribergetRegistration 在类中 DefaultDataClientpublic void unregister()
public void setDataObserver(SubscriberDataObserver observer)
Subscriber每一个订阅者只能指定一个数据观察员。如果希望有多个数据观察员,推荐使用更为灵活的Future方式。
setDataObserver 在接口中 SubscriberSubscriberDataObserver@Deprecated public SubscriberDataObserver getDataObserver()
SubscribergetDataObserver 在接口中 SubscriberSubscriberDataObserverpublic Subscription getSubscription()
Subscriber同一个订阅者可以建立多份订阅,每一份订阅均可独立的等待并获取数据。
getSubscription 在接口中 SubscriberSubscriptionpublic void addPackage(com.taobao.config.common.protocol.ProtocolPackage packagee)
public void update(com.taobao.config.common.Revision revision,
List<Object> datas,
Map<String,List<ObserverData>> observerDatas)
public void notifyObServer()
public com.taobao.config.common.Revision revision()
public int dataSize()
public Map<String,List<ObserverData>> getObserverDataGroups()
public void addExcListener(ExcListener listener)
public String getDataId()
public String getClientId()
Copyright © 2019. All rights reserved.