iteye编辑器在IE8下太不好用了,写了保存到草稿里结果再编辑格式就都没了,晕
接上面的 http://rabbit9898.iteye.com/blog/1508968
,继续
5. 写服务器端代码
servernode1.java
package norbert.exam.server;
import norbert.exam.util.ServerUtil;
import com.linkedin.norbert.javacompat.cluster.ClusterClient;
public class ServerNode1 {
public static void main(String[] args)
{
//创建clusterClient
ClusterClient cc = ServerUtil.configCluster(ServerUtil.clusterName, ServerUtil.zkConnectStr);
//添加node1,端口绑定5001
cc.removeNode(1);
cc.addNode(1, "localhost:5001");
//启动node1
ServerUtil.startServer(ServerUtil.clusterName, 1, ServerUtil.zkConnectStr);
}
}
其中在ServerUtil.startServer中有:
public static void startServer(String serviceName, int nodeId, String zkConnectStr)
{
NetworkServerConfig config = new NetworkServerConfig();
config.setServiceName(serviceName);
...
NetworkServer ns = new NettyNetworkServer(config);
//server中绑定需要处理的消息类型和功能
ns.registerHandler(new NodePingRequestHandler(), new PingSerializer());
ns.registerHandler(new NodeSumRequestHandler(), new ReqProtoSerializer());
ns.bind(nodeId);
}
NodeSumRequestHandler.java 代码,实现加和:
public class NodeSumRequestHandler implements RequestHandler<Request,Reponse>{
@Override
public Reponse handleRequest(Request request) throws Exception {
Reponse r= new Reponse();
if(request!=null){
r.setSum(request.num + request.num);
}
System.out.println("receive request=" + request.num +" sum="+ r.getSum());
return r;
}
}
同样创建servernode2.java
6. 写客户端测试调用代码
ClientSum.java
public class ClientSum {
public static void main(String[] args)
{
NetworkClientConfig config = new NetworkClientConfig();
config.setServiceName(ServerUtil.clusterName);
config.setZooKeeperConnectString(ServerUtil.zkConnectStr);
//....
//采用roundrobin策略 随机调用node上的功能
NetworkClient nc = new NettyNetworkClient(config, new RoundRobinLoadBalancerFactory());
int num =3;
final Request request = new Request(num);
Future<Reponse> responseFuture = nc.sendRequest(request, new ReqProtoSerializer());
try
{
final Reponse sumResp = responseFuture.get();
System.out.println("num=" + num +" ; got sum resp: " + sumResp.getSum());
}
catch( InterruptedException e )
{... }
}
7. 客户端测试Server调用
启动servernode1和servernode2,可以看到:
servernode1的控制台输出
connected to cluster: []
nodes changed,current node size= 0
nodes changed,current node size= 0
nodes changed,current node size= 0
nodes changed,current node size= 0
nodes changed,current node size= 1 node: JavaNode(1,localhost:5001,true,[]);
nodes changed,current node size= 1 node: JavaNode(1,localhost:5001,true,[]);
nodes changed,current node size= 1 node: JavaNode(1,localhost:5001,true,[]);
nodes changed,current node size= 2 node: JavaNode(2,localhost:5002,true,[]); node: JavaNode(1,localhost:5001,true,[]);
启动ClientSum.java 控制台输出:
num=3 ; got sum resp: 6
在servernode1 或者servernode2下可以看到多了一行输出:
receive request=3 sum=6
多启动几次ClientSum.java ,可以看到会分发到不同的node上。
转载请标明出处。上程序附件。
==================完=====================
分享到:
相关推荐
Norbert Dentressangle公司深冷自动化物流系统.rar
Norbert Dentressangle公司深冷自动化物流系统.pdf
norbert, Zookeeper是一个集群管理器和网络层 什么是 NorbertNorbert是一个提供易于集群管理和集群感知客户机/服务器网络api的库。 在 Scala 中实现了 to,to并使用了协议缓冲区来使传输更容易构建集群知识应用程序...
Kodilla_Project_Norbert_Lizun:Kodilla Project Norbert Lizun
norbert是一个方便做CS模式的集群的JAVA API,norbert封装了zookeeper和netty,使用了协议栈缓存,基于SCALA开发 示例代码: public class NorbertClient { public static void main(String[] args) { Cluster...
关键字:采用 仓库 方案 运输/物流服务商推出了全新的服务理念-在散装库中自动定位地址。 新系统的设计核心是“定位键”。为了避免干扰或变化仓库的原有信息系统,新的RFID系统可支持叉车司机通过REFLEX软件在...
诺伯特·菲克纳(NorbertFicner_Obiektowe)
Norbert Kuhn*、Ahmed Abu-Rayyan 和 Markus Ströbele Tübingen,Institut für Anorganische Chemie der Universität 于 2002 年 7 月 29 日收到。献给 Dieter Fenske 教授的生日抽象的。 2-Chloro-1,3-...
Norbert Kuhn *、Ahmed Abu-Rayyan、Martin Göhner 和 Manfred Steimann Tübingen,大学无机化学研究所 2002 年 3 月 15 日收到。 Wolfgang Haubold zum 教授2,3-二氢-1,3-二异丙基-4,5-二甲基咪唑-2-亚基的二氯...
Norbert Wiener是最早研究反馈理论的美国人之一.最熟悉的反馈控制的例子是自动调温器.它将 收集到的房间温度与希望的温度比较,并做出反应将加热器开大或关小,从而控制环境温 度.这项对反馈 回路的研究重要性在于: ...
Norbert Wiener是最早研究反馈理论的美国人之一.最熟悉的反馈控制的例子是自动调温器.它将 收集到的房间温度与希望的温度比较,并做出反应将加热器开大或关小,从而控制环境温 度.这项对反馈 回路的研究重要性在于: ...
铊涂层二价阴离子:三角双锥[F2Al(OR)3]2-与离子对中的三个Tl+阳离子配位[Tl3F2Al(OR)3]+[Al(OR)4]-[R = CH(CF3)2]铊涂层二价阴离子:三角双锥体 [F2Al(OR)3]2 与离子对中的三个 Tl 阳离子配位 [Tl3F2Al(OR)3] [Al...
Norbert Kuhn *、Klaus Eichele 和 Michael Walker Tübingen,Thorsten Berends 和 Rolf Minkwitz 大学无机化学研究所 * 多特蒙德, 北大化学系 2002年5月3日编辑部收到。献给Wolfgang Beck教授70岁生日 目录。 新型...
Norbert Kuhn *, Stefan Fuchs and Manfred Steimann Tübingen, Institute for Inorganic Chemistry at the University. 2001.8.6.生日专用目录。 二碘烷 (C5H7R2N2) AlI2 [6; R 5 Me (a), Ph (c)] 通过相应的丙烷 ...
1、与土建、机械、电气等工程技术相比...A 冯·诺依曼(John von Neumann)B 维纳(Norbert Wiener)C 图灵(Alan Mathison Turing)D 阿西莫夫 ......(本文仅供学习之用,不做商业用不做商业用途,如有侵权,请联系博主删除)
1956年,诺伯特·维纳(Norbert Wiener)提出了这样一个概念:如果通过合并有关第一个变量的信息来提高预测第二个变量的能力,则可以将一个变量或时间序列称为因果关系。 Wiener,N.,1956年。预测理论。 在:...
该软件最初是由Norbert Kucerka开发的。 该代码已在OpenSUSE和Ubuntu(二进制和编译)上进行了测试; Windows和Mac不受官方支持,请参阅tar中的“注释”。 请阅读维基百科,获取最新信息-最近已修复了主要的错误。