package happy; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooDefs.Ids; import org.apache.zookeeper.ZooKeeper; public class HappyRoom { //zookeeper集群地址 private static String connectServerList = "192.168.220.130:2181,192.168.220.131:2181,192.168.220.132:2181"; //連接超時時間 private static int sessionTimeout = 20000; //zookeeper客戶端 public static ZooKeeper zk = null; //天上人間主播平台 private static final String anchor = "/anchor"; /** * 美女主播簽到 */ public void singIn(String BeautyAnchorName) throws Exception{ ZooKeeper happyOnline = new ZooKeeper(connectServerList, sessionTimeout, null); //簽到 happyOnline.create(anchor +"/BeautyAnchor", BeautyAnchorName.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL); System.out.println("美女主播------>"+BeautyAnchorName +"<-----姍姍來遲,嫵媚動人、艷驚四座...開啟直播不歸路......"); } /** * 直播 */ public void liveBroadcast(String BeautyAnchorName) throws InterruptedException{ System.out.println("美女主播------->"+BeautyAnchorName+"<--------"+"開始直播LOL兔女狼上單5殺...."); Thread.sleep(Long.MAX_VALUE); } /** * 開啟直播 */ public static void main(String[] args) throws Exception{ HappyRoom happyRoom = new HappyRoom(); happyRoom.singIn(args[0]); happyRoom.liveBroadcast(args[0]); } }
package happy; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooKeeper; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Random; /** * 天上人間直播VIP客戶 */ public class Player { /** * * * 采帥哥的小蘑菇 * ゛男人不狠、江山不穩↘ * 百廝不得騎姐 * * 愛上 我、你會上癮 * 朕要翻你的牌 * 你姐我Gay你咋的了 ? * * 尼爸帥得像犀利哥 * * 帥先森 * * 別動姐滴爺△ * * 社會哥 @ * * 韓國技美小璐姐 * * 哼,姐就這樣,誰都管不著 * * 男人千千萬姐要不爽天天換 */ volatile List<String> BeautyAnchor = null; ArrayList<String> VIP = new ArrayList<String>(); //zookeeper集群地址 private static String connectServerList = "192.168.220.130:2181,192.168.220.131:2181,192.168.220.132:2181"; //連接超時時間 private static int sessionTimeout = 20000; //zookeeper客戶端 public static ZooKeeper zk = null; //天上人間主播平台 private static final String anchor = "/anchor"; public Player(){ VIP.add("゛男人不狠、江山不穩↘"); VIP.add("百廝不得騎姐"); VIP.add("愛上我、你會上癮"); VIP.add("朕要翻你的牌"); VIP.add("你姐我Gay你咋的了?"); VIP.add("尼爸帥得像犀利哥"); VIP.add("帥先森"); VIP.add("別動姐滴爺△"); VIP.add("社會哥@"); VIP.add("韓國技美小璐姐"); VIP.add("哼,姐就這樣,誰都管不著"); VIP.add("男人千千萬姐要不爽天天換"); } /** * 查看在線美女主播 */ public void viewBeautyAnchor() throws Exception{ zk = new ZooKeeper(connectServerList, sessionTimeout, new Watcher() { public void process(WatchedEvent watchedEvent) { try { refresh(); } catch (Exception e) { e.printStackTrace(); } } }); refresh(); } /** * VIP客戶打賞主播 */ public void VIPReward(){ Random random = new Random(); int n = random.nextInt(VIP.size()); String VIPName = VIP.get(n); int m = random.nextInt(BeautyAnchor.size()); String BeautyAnchorName = BeautyAnchor.get(m); System.out.println("VIP客戶--> "+VIPName+" ======> 打賞主播--> "+BeautyAnchorName+" ---> 一架飛機,一輛跑車,一部游艇"); } /** * 刷新在線美女主播列表 */ public void refresh() throws Exception{ ArrayList<String> onlineBeautyAnchor = new ArrayList<String>(); List<String> AnchorList = zk.getChildren(anchor, true); for (String Anchor: AnchorList ) { byte[] BeautyAnchor = zk.getData(anchor + "/" + Anchor, false, null); String BeautyAnchorName = new String(BeautyAnchor,"GBK"); onlineBeautyAnchor.add(BeautyAnchorName); System.out.println("<---------------當前在線美女主播有----->"+BeautyAnchorName); } BeautyAnchor = onlineBeautyAnchor; System.out.println("=嗨翻世界!i===嗨翻世界!i======嗨翻世界!i==========嗨翻世界!i====嗨翻世界!i=="); } public static void main(String[] args) throws Exception { Player player = new Player(); player.viewBeautyAnchor(); player.VIPReward(); Thread.sleep(Long.MAX_VALUE); } }
啟動多台服務器:
D:\>java -jar BeautyAnchor.jar 甜馨兒
2019-07-30 00:05:48,760 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT
2019-07-30 00:05:48,760 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:host.name=DESKTOP-RALNSM7
2019-07-30 00:05:48,760 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.version=1.8.0_111
2019-07-30 00:05:48,761 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.vendor=Oracle Corporation
2019-07-30 00:05:48,761 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.home=D:\JAVA\jre
2019-07-30 00:05:48,761 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.class.path=BeautyAnchor.jar
2019-07-30 00:05:48,761 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.library.path=D:\JAVA\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:\JAVA\bin;D:\JAVA\jre\binC:\ProgramData\Oracle\Java\javapath;D:\Hadoop_2.7.2dev\hadoop-2.7.2\bin;D:\Hadoop_2.7.2dev\hadoop-2.7.2\sbin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\devSoftware\python27;D:\devSoftware\python36\;D:\devSoftware\bin;D:\MAVEN\apache-maven-3.5.0\bin;D:\devSoftware\Scripts\;D:\devSoftware\;D:\devSoftware\python36\Scripts\;D:\osSoftware\;.
2019-07-30 00:05:48,761 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.io.tmpdir=C:\Users\lsh\AppData\Local\Temp\
2019-07-30 00:05:48,761 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.compiler=<NA>
2019-07-30 00:05:48,762 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.name=Windows 10
2019-07-30 00:05:48,762 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.arch=amd64
2019-07-30 00:05:48,762 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.version=10.0
2019-07-30 00:05:48,762 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.name=lsh
2019-07-30 00:05:48,762 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.home=C:\Users\lsh
2019-07-30 00:05:48,762 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.dir=D:\
2019-07-30 00:05:48,763 INFO [org.apache.zookeeper.ZooKeeper] - Initiating client connection, connectString=192.168.220.130:2181,192.168.220.131:2181,192.168.220.132:2181 sessionTimeout=20000 watcher=null
2019-07-30 00:05:48,865 INFO [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server 192.168.220.130/192.168.220.130:2181. Will not attempt to authenticate using SASL (unknown error)
2019-07-30 00:05:48,868 INFO [org.apache.zookeeper.ClientCnxn] - Socket connection established to 192.168.220.130/192.168.220.130:2181, initiating session
2019-07-30 00:05:48,880 INFO [org.apache.zookeeper.ClientCnxn] - Session establishment complete on server 192.168.220.130/192.168.220.130:2181, sessionid = 0x16b29c2ee08000b, negotiated timeout = 20000
2019-07-30 00:05:48,882 ERROR [org.apache.zookeeper.ClientCnxn] - Error while calling watcher
java.lang.NullPointerException
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:530)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:505)
美女主播------>甜馨兒<-----姍姍來遲,嫵媚動人、艷驚四座...開啟直播不歸路......
美女主播------->甜馨兒<--------開始直播LOL兔女狼上單5殺....
D:\>java -jar BeautyAnchor.jar 向未來奮斗的勵志人
2019-07-30 00:08:52,252 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT
2019-07-30 00:08:52,253 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:host.name=DESKTOP-RALNSM7
2019-07-30 00:08:52,253 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.version=1.8.0_111
2019-07-30 00:08:52,253 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.vendor=Oracle Corporation
2019-07-30 00:08:52,253 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.home=D:\JAVA\jre
2019-07-30 00:08:52,253 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.class.path=BeautyAnchor.jar
2019-07-30 00:08:52,253 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.library.path=D:\JAVA\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:\JAVA\bin;D:\JAVA\jre\binC:\ProgramData\Oracle\Java\javapath;D:\Hadoop_2.7.2dev\hadoop-2.7.2\bin;D:\Hadoop_2.7.2dev\hadoop-2.7.2\sbin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\devSoftware\python27;D:\devSoftware\python36\;D:\devSoftware\bin;D:\MAVEN\apache-maven-3.5.0\bin;D:\devSoftware\Scripts\;D:\devSoftware\;D:\devSoftware\python36\Scripts\;D:\osSoftware\;.
2019-07-30 00:08:52,254 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.io.tmpdir=C:\Users\lsh\AppData\Local\Temp\
2019-07-30 00:08:52,254 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.compiler=<NA>
2019-07-30 00:08:52,254 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.name=Windows 10
2019-07-30 00:08:52,254 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.arch=amd64
2019-07-30 00:08:52,254 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.version=10.0
2019-07-30 00:08:52,254 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.name=lsh
2019-07-30 00:08:52,255 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.home=C:\Users\lsh
2019-07-30 00:08:52,255 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.dir=D:\
2019-07-30 00:08:52,255 INFO [org.apache.zookeeper.ZooKeeper] - Initiating client connection, connectString=192.168.220.130:2181,192.168.220.131:2181,192.168.220.132:2181 sessionTimeout=20000 watcher=null
2019-07-30 00:08:52,354 INFO [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server 192.168.220.130/192.168.220.130:2181. Will not attempt to authenticate using SASL (unknown error)
2019-07-30 00:08:52,356 INFO [org.apache.zookeeper.ClientCnxn] - Socket connection established to 192.168.220.130/192.168.220.130:2181, initiating session
2019-07-30 00:08:52,364 INFO [org.apache.zookeeper.ClientCnxn] - Session establishment complete on server 192.168.220.130/192.168.220.130:2181, sessionid = 0x16b29c2ee08000c, negotiated timeout = 20000
美女主播------>向未來奮斗的勵志人<-----姍姍來遲,嫵媚動人、艷驚四座...開啟直播不歸路......
美女主播------->向未來奮斗的勵志人<--------開始直播LOL兔女狼上單5殺....
2019-07-30 00:08:52,366 ERROR [org.apache.zookeeper.ClientCnxn] - Error while calling watcher
java.lang.NullPointerException
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:530)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:505)
D:\>java -jar BeautyAnchor.jar 戀愛請排隊
2019-07-30 00:10:21,794 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT
2019-07-30 00:10:21,794 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:host.name=DESKTOP-RALNSM7
2019-07-30 00:10:21,794 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.version=1.8.0_111
2019-07-30 00:10:21,794 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.vendor=Oracle Corporation
2019-07-30 00:10:21,794 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.home=D:\JAVA\jre
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.class.path=BeautyAnchor.jar
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.library.path=D:\JAVA\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:\JAVA\bin;D:\JAVA\jre\binC:\ProgramData\Oracle\Java\javapath;D:\Hadoop_2.7.2dev\hadoop-2.7.2\bin;D:\Hadoop_2.7.2dev\hadoop-2.7.2\sbin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\devSoftware\python27;D:\devSoftware\python36\;D:\devSoftware\bin;D:\MAVEN\apache-maven-3.5.0\bin;D:\devSoftware\Scripts\;D:\devSoftware\;D:\devSoftware\python36\Scripts\;D:\osSoftware\;.
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.io.tmpdir=C:\Users\lsh\AppData\Local\Temp\
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:java.compiler=<NA>
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.name=Windows 10
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.arch=amd64
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:os.version=10.0
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.name=lsh
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.home=C:\Users\lsh
2019-07-30 00:10:21,795 INFO [org.apache.zookeeper.ZooKeeper] - Client environment:user.dir=D:\
2019-07-30 00:10:21,796 INFO [org.apache.zookeeper.ZooKeeper] - Initiating client connection, connectString=192.168.220.130:2181,192.168.220.131:2181,192.168.220.132:2181 sessionTimeout=20000 watcher=null
2019-07-30 00:10:21,894 INFO [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server 192.168.220.132/192.168.220.132:2181. Will not attempt to authenticate using SASL (unknown error)
2019-07-30 00:10:21,895 INFO [org.apache.zookeeper.ClientCnxn] - Socket connection established to 192.168.220.132/192.168.220.132:2181, initiating session
2019-07-30 00:10:21,903 INFO [org.apache.zookeeper.ClientCnxn] - Session establishment complete on server 192.168.220.132/192.168.220.132:2181, sessionid = 0x36b28a6cb09000b, negotiated timeout = 20000
2019-07-30 00:10:21,905 ERROR [org.apache.zookeeper.ClientCnxn] - Error while calling watcher
java.lang.NullPointerException
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:530)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:505)
美女主播------>戀愛請排隊<-----姍姍來遲,嫵媚動人、艷驚四座...開啟直播不歸路......
美女主播------->戀愛請排隊<--------開始直播LOL兔女狼上單5殺....
客戶端:
<---------------當前在線美女主播有----->閲囧竻鍝ョ殑灝忚槕鑿�
<---------------當前在線美女主播有----->閲囧竻鍝ョ殑灝忚槕鑿�
<---------------當前在線美女主播有----->甜馨兒
=嗨翻世界!i===嗨翻世界!i======嗨翻世界!i==========嗨翻世界!i====嗨翻世界!i==
<---------------當前在線美女主播有----->甜馨兒
=嗨翻世界!i===嗨翻世界!i======嗨翻世界!i==========嗨翻世界!i====嗨翻世界!i==
VIP客戶--> 社會哥@ ======> 打賞主播--> 甜馨兒 ---> 一架飛機,一輛跑車,一部游艇
<---------------當前在線美女主播有----->向未來奮斗的勵志人
<---------------當前在線美女主播有----->閲囧竻鍝ョ殑灝忚槕鑿�
<---------------當前在線美女主播有----->甜馨兒
=嗨翻世界!i===嗨翻世界!i======嗨翻世界!i==========嗨翻世界!i====嗨翻世界!i==
<---------------當前在線美女主播有----->向未來奮斗的勵志人
<---------------當前在線美女主播有----->無辜的黃瓜
<---------------當前在線美女主播有----->閲囧竻鍝ョ殑灝忚槕鑿�
<---------------當前在線美女主播有----->甜馨兒
=嗨翻世界!i===嗨翻世界!i======嗨翻世界!i==========嗨翻世界!i====嗨翻世界!i==
<---------------當前在線美女主播有----->向未來奮斗的勵志人
<---------------當前在線美女主播有----->無辜的黃瓜
<---------------當前在線美女主播有----->戀愛請排隊
<---------------當前在線美女主播有----->閲囧竻鍝ョ殑灝忚槕鑿�
<---------------當前在線美女主播有----->甜馨兒
=嗨翻世界!i===嗨翻世界!i======嗨翻世界!i==========嗨翻世界!i====嗨翻世界!i==
############無辜的黃瓜 退出后客戶端馬上獲取到最新的主播列表 #######################
<---------------當前在線美女主播有----->向未來奮斗的勵志人
<---------------當前在線美女主播有----->戀愛請排隊
<---------------當前在線美女主播有----->閲囧竻鍝ョ殑灝忚槕鑿�
<---------------當前在線美女主播有----->甜馨兒
=嗨翻世界!i===嗨翻世界!i======嗨翻世界!i==========嗨翻世界!i====嗨翻世界!i==