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 + -
显示快捷键?