Skip to content

Commit

Permalink
fix: fit sofa-rpc group/version rule (#21)
Browse files Browse the repository at this point in the history
  • Loading branch information
gxcsoccer authored Nov 2, 2018
1 parent 529c6d7 commit 6412d6c
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 2 deletions.
9 changes: 7 additions & 2 deletions lib/registry/zk/data_client.js
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,13 @@ class ZookeeperRegistry extends Base {
const consumerVersion = consumer.version;
const providerGroup = providerInfo.get('group') || providerInfo.get('default.group');
const providerVersion = providerInfo.get('version') || providerInfo.get('default.version');
return (!consumerGroup || consumerGroup === providerGroup) &&
(!consumerVersion || consumerVersion === providerVersion);
if (consumerGroup && providerGroup && consumerGroup !== providerGroup) {
return false;
}
if (consumerVersion && providerVersion && consumerVersion !== providerVersion) {
return false;
}
return true;
}

close() {
Expand Down
50 changes: 50 additions & 0 deletions test/registry/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -249,5 +249,55 @@ describe('test/registry/index.test.js', () => {
await registry.unRegister(reg3);
await registry.unRegister(reg4);
});

it('should filter with interfaceName', async () => {
const reg1 = {
interfaceName: 'com.alipay.sofa.rpc.test.SimpleService',
version: '1.0',
group: 'SOFA',
url: 'bolt://127.0.0.1:12200?interface=com.alipay.sofa.rpc.test.SimpleService&group=SOFA&version=1.0',
};
const reg2 = {
interfaceName: 'com.alipay.sofa.rpc.test.SimpleService',
version: '1.0',
group: 'SOFA',
url: 'bolt://127.0.0.1:12200?interface=com.alipay.sofa.rpc.test.SimpleService&group=SOFA',
};
const reg3 = {
interfaceName: 'com.alipay.sofa.rpc.test.SimpleService',
version: '1.0',
group: 'SOFA',
url: 'bolt://127.0.0.1:12200?interface=com.alipay.sofa.rpc.test.SimpleService&version=1.0',
};
registry.register(reg1);
registry.register(reg2);
registry.register(reg3);
await sleep(2000);

let addressList;
const listener = val => {
addressList = val;
registry.emit('address_update', val);
};
registry.subscribe({
interfaceName: 'com.alipay.sofa.rpc.test.SimpleService',
version: '1.0',
group: 'SOFA',
}, listener);

await registry.await('address_update');

registry.unSubscribe({
interfaceName: 'com.alipay.sofa.rpc.test.SimpleService',
version: '1.0',
group: 'SOFA',
});

assert(addressList && addressList.length === 3);

await registry.unRegister(reg1);
await registry.unRegister(reg2);
await registry.unRegister(reg3);
});
});
});

0 comments on commit 6412d6c

Please sign in to comment.