把本机注册到对应的interface的consumer上去 :param providers: :return:
(self, providers)
| 214 | self.weights[interface] = {} |
| 215 | |
| 216 | def _register_consumer(self, providers): |
| 217 | """ |
| 218 | 把本机注册到对应的interface的consumer上去 |
| 219 | :param providers: |
| 220 | :return: |
| 221 | """ |
| 222 | provider = providers[0] |
| 223 | provider_fields = provider['fields'] |
| 224 | |
| 225 | consumer = 'consumer://' + get_ip() + provider['path'] + '?' |
| 226 | fields = { |
| 227 | 'application': self.application_name, |
| 228 | 'category': 'consumers', |
| 229 | 'check': 'false', |
| 230 | 'connected': 'true', |
| 231 | 'dubbo': provider_fields['dubbo'], |
| 232 | 'interface': provider_fields['interface'], |
| 233 | 'methods': provider_fields['methods'], |
| 234 | 'pid': get_pid(), |
| 235 | 'revision': provider_fields['revision'], |
| 236 | 'side': 'consumer', |
| 237 | 'timestamp': int(time.time() * 1000), |
| 238 | 'version': provider_fields['version'], |
| 239 | } |
| 240 | |
| 241 | params = [] |
| 242 | for key, value in sorted(fields.items()): |
| 243 | params.append('{0}={1}'.format(key, value)) |
| 244 | consumer += '&'.join(params) |
| 245 | |
| 246 | logger.debug('Create consumer {}'.format(fields)) |
| 247 | consumer_path = DUBBO_ZK_CONSUMERS.format(fields['interface']) |
| 248 | self.zk.ensure_path(consumer_path) |
| 249 | self.zk.create_async(consumer_path + '/' + quote(consumer, safe=''), ephemeral=True) |
| 250 | |
| 251 | def _routing_with_wight(self, interface): |
| 252 | """ |
no test coverage detected