viewdemo.java
来自「JGRoups源码」· Java 代码 · 共 123 行
JAVA
123 行
// $Id: ViewDemo.java,v 1.11 2006/03/27 08:34:24 belaban Exp $package org.jgroups.demos;import org.jgroups.*;import org.jgroups.blocks.PullPushAdapter;import org.jgroups.util.Util;import java.util.HashMap;/** * Demos the reception of views using a PullPushAdapter. Just start a number of members, and kill them * randomly. The view should always be correct. */public class ViewDemo implements MembershipListener { private Channel channel; public void viewAccepted(View new_view) { System.out.println("** New view: " + new_view); // ", channel.getView()=" + channel.getView()); } /** * Called when a member is suspected */ public void suspect(Address suspected_mbr) { System.out.println("Suspected(" + suspected_mbr + ')'); } /** * Block sending and receiving of messages until ViewAccepted is called */ public void block() { } public void start(String props, boolean use_additional_data) throws Exception { channel=new JChannel(props); channel.setOpt(Channel.AUTO_RECONNECT, Boolean.TRUE); if(use_additional_data) { HashMap m=new HashMap(); m.put("additional_data", "bela".getBytes()); channel.down(new Event(Event.CONFIG, m)); } channel.connect("ViewDemo"); new PullPushAdapter(channel, this); while(true) { Util.sleep(10000); } } public static void main(String args[]) { ViewDemo t=new ViewDemo(); boolean use_additional_data=false; String props="UDP(mcast_addr=228.5.5.5;mcast_port=45566;ip_ttl=32;" + "mcast_send_buf_size=150000;mcast_recv_buf_size=80000):" + "PING(timeout=2000;num_initial_members=3):" + "MERGE2(min_interval=5000;max_interval=10000):" + "FD_SOCK:" + "VERIFY_SUSPECT(timeout=1500):" + "pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800):" + "UNICAST(timeout=600,1200,2400):" + "pbcast.STABLE(desired_avg_gossip=20000):" + "FRAG(frag_size=4096;down_thread=false;up_thread=false):" + "pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;" + "shun=false;print_local_addr=true)"; /* String props="TCP(start_port=7800):" + "TCPPING(initial_hosts=66.87.163.92[7800];port_range=2;" + "timeout=5000;num_initial_members=3;up_thread=true;down_thread=true):" + "VERIFY_SUSPECT(timeout=1500):" + "pbcast.STABLE(desired_avg_gossip=200000;down_thread=false;up_thread=false):"+ "pbcast.NAKACK(down_thread=true;up_thread=true;gc_lag=100;retransmit_timeout=3000):" + "pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;" + "print_local_addr=true;down_thread=true;up_thread=true)"; */ for(int i=0; i < args.length; i++) { if("-help".equals(args[i])) { help(); return; } if("-props".equals(args[i])) { props=args[++i]; continue; } if("-use_additional_data".equals(args[i])) { use_additional_data=new Boolean(args[++i]).booleanValue(); continue; } help(); return; } try { t.start(props, use_additional_data); } catch(Exception e) { System.err.println(e); } } static void help() { System.out.println("ViewDemo [-props <properties>] [-help] [-use_additional_data <flag>]"); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?