@Override
	public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {
		// 根据tpURL获取标识码
		final String serviceKey = getServiceKey(invoker.getTpURL());
		// 通过标识码在缓存中找相应的Exporter
		Exporter<T> exporter = (Exporter<T>) exporterMap.get(serviceKey);
		if (exporter != null) {
			return exporter;
		}
		TpURL tpURL = invoker.getTpURL();
		int port = tpURL.getPort();
		if (port == 0) {
			port = DEFAULT_PORT;
		}
		if (!serverStarted) {
			if (!serverContainer.containsKey(port)) {
				serverContainer.put(port, new TripleServer(this, port));
				serverContainer.get(port).start();
			}
		}
		Exporter<T> tripleExporter = new TripleExporter<T>(invoker);
		exporterMap.putIfAbsent(serviceKey, tripleExporter);
		return tripleExporter;
	}