All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.weicoder.rpc.sofa.Sofas Maven / Gradle / Ivy

package com.weicoder.rpc.sofa;

import java.net.InetSocketAddress;

import com.weicoder.rpc.params.RpcParams;
import com.weicoder.common.util.StringUtil;

/**
 * rpc客户端
 * 
 * @author wudi
 */
public final class Sofas {
	/**
	 * 根据rpc接口生成相关代理类 执行rpc调用操作
	 * 
	 * @param  
	 * @param  rpc  rpc类
	 * @param  addr 远程地址
	 * @return      rpc客户端代理类
	 */
	public static  E client(Class rpc, InetSocketAddress addr) {
		return sofa(rpc, addr);
	}

	/**
	 * 根据sofa rpc接口返回客户端
	 * 
	 * @param  cls  rpc接口
	 * @param  addr 远程地址
	 * @return      client
	 */
	public static  E sofa(Class cls, InetSocketAddress addr) {
		return sofa(cls, addr.getAddress().getHostAddress(), addr.getPort());
	}

	/**
	 * 根据sofa rpc接口返回客户端
	 * 
	 * @param   client
	 * @param  cls rpc接口
	 * @return     client
	 */
	public static  E sofa(Class cls, String host, int port) {
		// 生成消费配置
		return new com.alipay.sofa.rpc.config.ConsumerConfig().setInterfaceId(cls.getName()) // 指定接口
				.setProtocol(RpcParams.PROTOCOL) // 指定协议
				.setDirectUrl(StringUtil.add(RpcParams.PROTOCOL, "://", host, ":", port + 1))// 指定地址
				.refer();
	}

	private Sofas() {
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy