in dubbo/client.py [0:0]
def _register_consumer(self, providers):
"""
把本机注册到对应的interface的consumer上去
:param providers:
:return:
"""
provider = providers[0]
provider_fields = provider['fields']
consumer = 'consumer://' + get_ip() + provider['path'] + '?'
fields = {
'application': self.application_name,
'category': 'consumers',
'check': 'false',
'connected': 'true',
'dubbo': provider_fields['dubbo'],
'interface': provider_fields['interface'],
'methods': provider_fields['methods'],
'pid': get_pid(),
'revision': provider_fields['revision'],
'side': 'consumer',
'timestamp': int(time.time() * 1000),
'version': provider_fields['version'],
}
params = []
for key, value in sorted(fields.items()):
params.append('{0}={1}'.format(key, value))
consumer += '&'.join(params)
logger.debug('Create consumer {}'.format(fields))
consumer_path = DUBBO_ZK_CONSUMERS.format(fields['interface'])
self.zk.ensure_path(consumer_path)
self.zk.create_async(consumer_path + '/' + quote(consumer, safe=''), ephemeral=True)