91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.23MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-08-28
  • 語(yǔ)言: 其他
  • 標(biāo)簽: thrift??

資源簡(jiǎn)介

對(duì)于Thrift服務(wù)化的改造,主要是客戶端,可以從如下幾個(gè)方面進(jìn)行: 1.服務(wù)端的服務(wù)注冊(cè),客戶端自動(dòng)發(fā)現(xiàn),無(wú)需手工修改配置,這里我們使用zookeeper,但由于zookeeper本身提供的客戶端使用較為復(fù)雜,因此采用curator-recipes工具類進(jìn)行處理服務(wù)的注冊(cè)與發(fā)現(xiàn)。 2.客戶端使用連接池對(duì)服務(wù)調(diào)用進(jìn)行管理,提升性能,這里我們使用Apache Commons項(xiàng)目commons-pool,可以大大減少代碼的復(fù)雜度。 3.關(guān)于Failover/LoadBalance,由于zookeeper的watcher,當(dāng)服務(wù)端不可用是及時(shí)通知客戶端,并移除不可用的服務(wù)節(jié)點(diǎn),而LoadBalance有很多算法,這里我們采用隨機(jī)加權(quán)方式,也是常有的負(fù)載算法,至于其他的算法介紹參考:常見(jiàn)的負(fù)載均衡的基本算法。

資源截圖

代碼片段和文件信息

package?cn.slimsmart.thrift.rpc;

import?java.net.InetSocketAddress;

import?org.apache.commons.pool.basePoolableobjectFactory;
import?org.apache.thrift.TServiceClient;
import?org.apache.thrift.TServiceClientFactory;
import?org.apache.thrift.protocol.TBinaryProtocol;
import?org.apache.thrift.protocol.TProtocol;
import?org.apache.thrift.transport.TframedTransport;
import?org.apache.thrift.transport.TSocket;
import?org.apache.thrift.transport.TTransport;

import?cn.slimsmart.thrift.rpc.zookeeper.ThriftServerAddressProvider;

/**
?*?連接池thrift-client?for?spring
?*/
public?class?ThriftClientPoolFactory?extends?basePoolableobjectFactory?{

private?final?ThriftServerAddressProvider?serverAddressProvider;
private?final?TServiceClientFactory?clientFactory;
private?PoolOperationCallBack?callback;

protected?ThriftClientPoolFactory(ThriftServerAddressProvider?addressProvider?TServiceClientFactory?clientFactory)?throws?Exception?{
this.serverAddressProvider?=?addressProvider;
this.clientFactory?=?clientFactory;
}

protected?ThriftClientPoolFactory(ThriftServerAddressProvider?addressProvider?TServiceClientFactory?clientFactory
PoolOperationCallBack?callback)?throws?Exception?{
this.serverAddressProvider?=?addressProvider;
this.clientFactory?=?clientFactory;
this.callback?=?callback;
}

static?interface?PoolOperationCallBack?{
//?銷毀client之前執(zhí)行
void?destroy(TServiceClient?client);

//?創(chuàng)建成功是執(zhí)行
void?make(TServiceClient?client);
}

public?void?destroyobject(TServiceClient?client)?throws?Exception?{
if?(callback?!=?null)?{
try?{
callback.destroy(client);
}?catch?(Exception?e)?{
//
}
}
TTransport?pin?=?client.getInputProtocol().getTransport();
pin.close();
}

public?boolean?validateobject(TServiceClient?client)?{
TTransport?pin?=?client.getInputProtocol().getTransport();
return?pin.isOpen();
}

@Override
public?TServiceClient?makeobject()?throws?Exception?{
InetSocketAddress?address?=?serverAddressProvider.selector();
TSocket?tsocket?=?new?TSocket(address.getHostName()?address.getPort());
TTransport?transport?=?new?TframedTransport(tsocket);
TProtocol?protocol?=?new?TBinaryProtocol(transport);
TServiceClient?client?=?this.clientFactory.getClient(protocol);
transport.open();
if?(callback?!=?null)?{
try?{
callback.make(client);
}?catch?(Exception?e)?{
//
}
}
return?client;
}

}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????2578??2015-03-07?21:36??src\main\java\cn\slimsmart\thrift\rpc\ThriftClientPoolFactory.java

?????文件????????419??2015-03-07?16:41??src\main\java\cn\slimsmart\thrift\rpc\ThriftException.java

?????文件???????3442??2015-03-07?23:34??src\main\java\cn\slimsmart\thrift\rpc\ThriftServiceClientProxyFactory.java

?????文件???????4633??2015-03-08?00:23??src\main\java\cn\slimsmart\thrift\rpc\ThriftServiceServerFactory.java

?????文件???????2338??2015-03-08?00:25??src\main\java\cn\slimsmart\thrift\rpc\zookeeper\FixedAddressProvider.java

?????文件????????599??2015-03-07?22:45??src\main\java\cn\slimsmart\thrift\rpc\zookeeper\ThriftServerAddressProvider.java

?????文件???????6033??2015-03-08?00:26??src\main\java\cn\slimsmart\thrift\rpc\zookeeper\ThriftServerAddressProviderZookeeper.java

?????文件????????468??2015-03-07?17:05??src\main\java\cn\slimsmart\thrift\rpc\zookeeper\ThriftServerAddressRegister.java

?????文件???????1811??2015-03-07?23:07??src\main\java\cn\slimsmart\thrift\rpc\zookeeper\ThriftServerAddressRegisterZookeeper.java

?????文件???????1662??2015-03-08?00:41??src\main\java\cn\slimsmart\thrift\rpc\zookeeper\ThriftServerIpLocalNetworkResolve.java

?????文件????????474??2015-03-07?16:49??src\main\java\cn\slimsmart\thrift\rpc\zookeeper\ThriftServerIpResolve.java

?????文件???????2536??2015-03-07?23:09??src\main\java\cn\slimsmart\thrift\rpc\zookeeper\ZookeeperFactory.java

?????文件????????100??2015-03-07?22:19??src\main\resources\EchoSerivce.thrift

?????文件???????1867??2015-03-08?00:07??src\test\java\cn\slimsmart\thrift\rpc\demo\Client.java

?????文件??????33241??2015-03-07?22:20??src\test\java\cn\slimsmart\thrift\rpc\demo\EchoSerivce.java

?????文件????????255??2015-03-07?22:29??src\test\java\cn\slimsmart\thrift\rpc\demo\EchoSerivceImpl.java

?????文件????????392??2015-03-07?23:25??src\test\java\cn\slimsmart\thrift\rpc\demo\Server.java

?????文件????????337??2015-03-01?21:18??src\test\resources\log4j.properties

?????文件???????2558??2015-03-08?00:20??src\test\resources\spring-context-thrift-client.xml

?????文件???????2738??2015-03-08?00:23??src\test\resources\spring-context-thrift-server.xml

?????文件???????1419??2015-03-07?16:23??pom.xml

?????文件????????132??2015-03-07?22:19??thrift.bat

?????文件????4889088??2015-03-07?13:14??thrift-0.9.2.exe

?????目錄??????????0??2015-03-07?21:29??src\main\java\cn\slimsmart\thrift\rpc\zookeeper

?????目錄??????????0??2015-03-07?22:51??src\test\java\cn\slimsmart\thrift\rpc\demo

?????目錄??????????0??2015-03-07?22:19??src\main\java\cn\slimsmart\thrift\rpc

?????目錄??????????0??2015-03-07?21:39??src\test\java\cn\slimsmart\thrift\rpc

?????目錄??????????0??2015-03-07?15:44??src\main\java\cn\slimsmart\thrift

?????目錄??????????0??2015-03-07?21:39??src\test\java\cn\slimsmart\thrift

?????目錄??????????0??2015-03-07?15:44??src\main\java\cn\slimsmart

............此處省略13個(gè)文件信息

評(píng)論

共有 條評(píng)論