DefaultXpipeMetaManager extends AbstractMetaManager implements XpipeMetaManager { @Override public MetaDesc findMetaDesc(HostPort hostPort) { if(inverseMap != null){ return inverseMap.get(hostPort); } synchronized (this){ if(inverseMap == null){ inverseMap = InverseHostPortMapBuilder.build(xpipeMeta); } } return inverseMap.get(hostPort); } DefaultXpipeMetaManager(XpipeMeta xpipeMeta); private  DefaultXpipeMetaManager(String fileName); static XpipeMetaManager buildFromFile(String fileName); static XpipeMetaManager buildFromMeta(XpipeMeta xpipeMeta); XpipeMeta load(String fileName); @Override String getActiveDc(String clusterId, String shardId); @Override Set<String> getBackupDcs(String clusterId, String shardId); @Override Set<String> getRelatedDcs(String clusterId, String shardId); @Override Set<String> getDcClusters(String dc); @Override ClusterMeta getClusterMeta(String dc, String clusterId); @Override ClusterType getClusterType(String clusterId); ClusterMeta getDirectClusterMeta(String dc, String clusterId); @Override ShardMeta getShardMeta(String dc, String clusterId, String shardId); @SuppressWarnings("unchecked") @Override List<KeeperMeta> getKeepers(String dc, String clusterId, String shardId); @SuppressWarnings("unchecked") @Override List<RedisMeta> getRedises(String dc, String clusterId, String shardId); @Override KeeperMeta getKeeperActive(String dc, String clusterId, String shardId); @Override List<KeeperMeta> getKeeperBackup(String dc, String clusterId, String shardId); @Override MetaDesc findMetaDesc(HostPort hostPort); @Override Pair<String, RedisMeta> getRedisMaster(String clusterId, String shardId); @Override boolean noneKeeperActive(String dc, String clusterId, String shardId); @Override void setSurviveKeepers(String dcId, String clusterId, String shardId, List<KeeperMeta> surviveKeepers); @Override boolean updateKeeperActive(String dc, String clusterId, String shardId, KeeperMeta activeKeeper); String getFileName(); @Override List<MetaServerMeta> getMetaServers(String dc); @Override ZkServerMeta getZkServerMeta(String dc); @Override Set<String> getDcs(); @Override boolean updateRedisMaster(String dc, String clusterId, String shardId, RedisMeta redisMaster); @Override boolean dcExists(String dc); @Override KeeperContainerMeta getKeeperContainer(String dc, KeeperMeta keeperMeta); @Override void update(DcMeta dcMeta); @Override void update(String dcId, ClusterMeta clusterMeta); @Override ClusterMeta removeCluster(String dcId, String clusterId); @Override DcMeta getDcMeta(String dcId); @Override String getDcZone(String dcId); @Override List<KeeperMeta> getAllSurviceKeepers(String dcId, String clusterId, String shardId); @Override boolean hasCluster(String dcId, String clusterId); @Override boolean hasShard(String dcId, String clusterId, String shardId); @Override SentinelMeta getSentinel(String dc, String clusterId, String shardId); @Override String getSentinelMonitorName(String dc, String clusterId, String shardId); @Override void primaryDcChanged(String dc, String clusterId, String shardId, String newPrimaryDc); @Override List<RouteMeta> routes(String currentDc, String tag); @Override RouteMeta randomRoute(String currentDc, String tag, Integer orgId, String dstDc); @Override List<ClusterMeta> getSpecificActiveDcClusters(String currentDc, String clusterActiveDc); @Override String toString();  }
@Test public void findShard(){ XpipeMetaManager.MetaDesc metaDesc = metaManager.findMetaDesc(new HostPort("127.0.0.1", 8000)); Assert.assertEquals("jq", metaDesc.getDcId()); Assert.assertEquals("cluster1", metaDesc.getClusterId()); Assert.assertEquals("shard1", metaDesc.getShardId()); metaDesc = metaManager.findMetaDesc(new HostPort("127.0.0.1", 6000)); Assert.assertEquals("jq", metaDesc.getDcId()); Assert.assertEquals("cluster1", metaDesc.getClusterId()); Assert.assertEquals("shard1", metaDesc.getShardId()); }