哪个框架能代替dubbo_dubbo框架_dubbo能做什么(8)

电脑杂谈  发布时间:2017-05-02 00:05:09  来源:网络整理

上面配置中,使用dubbo协议,集群容错模式为failover,服务级别负载均衡策略为random,方法级别负载均衡策略为roundrobin(它覆盖了服务级别的配置内容),其他一些配置内容可以参考Dubbo文档。我们这里是从Redis读取数据,所以使用了Redis连接池。

启动服务示例代码如下所示:

package org.shirdrn.dubbo.provider;

import org.shirdrn.dubbo.provider.common.DubboServer;

public class ChatRoomClusterServer {

     public static void main(String[] args) throws Exception {
          DubboServer.startServer("classpath:provider-cluster.xml");
     }

}

上面调用了DubboServer类的静态方法startServer,如下所示:

     public static void startServer(String config) {
          ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(config);
          try {
               context.start();
               System.in.read();
          } catch (IOException e) {
               e.printStackTrace();
          } finally {
               context.close();
          }
     }

方法中主要是初始化Spring IoC容器,全部对象都交由容器来管理。哪个框架能代替dubbo

服务消费方

服务消费方就容易了,只需要知道注册中心地址,并引用服务提供方提供的接口,消费方调用服务实现如下所示:

package org.shirdrn.dubbo.consumer;

import java.util.Arrays;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.shirdrn.dubbo.api.ChatRoomOnlineUserCounterService;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ChatRoomDubboConsumer {

     private static final Log LOG = LogFactory.getLog(ChatRoomDubboConsumer.class);
    
     public static void main(String[] args) throws Exception {
          AbstractXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:consumer.xml");
          try {
               context.start();
               ChatRoomOnlineUserCounterService chatRoomOnlineUserCounterService = (ChatRoomOnlineUserCounterService) context.getBean("chatRoomOnlineUserCounterService");         
               getMaxOnlineUserCount(chatRoomOnlineUserCounterService);              
               getRealtimeOnlineUserCount(chatRoomOnlineUserCounterService);              
               System.in.read();
          } finally {
               context.close();
          }
         
     }

     private static void getMaxOnlineUserCount(ChatRoomOnlineUserCounterService liveRoomOnlineUserCountService) {
          List<String> maxUserCounts = liveRoomOnlineUserCountService.getMaxOnlineUserCount(
                    Arrays.asList(new String[] {"1482178010" , "1408492761", "1430546839", "1412517075", "1435861734"}), "20150327", "yyyyMMdd");
          LOG.info("After getMaxOnlineUserCount invoked: maxUserCounts= " + maxUserCounts);
     }

     private static void getRealtimeOnlineUserCount(ChatRoomOnlineUserCounterService liveRoomOnlineUserCountService)
               throws InterruptedException {
          String rooms = "1482178010,1408492761,1430546839,1412517075,1435861734";
          String onlineUserCounts = liveRoomOnlineUserCountService.queryRoomUserCount(rooms);
          LOG.info("After queryRoomUserCount invoked: onlineUserCounts= " + onlineUserCounts);
     }
}


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-44653-8.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 杨青铭
      杨青铭

      应该大力提升女性的经济地位

    • 郭磊
      郭磊

      你们就靠着混日子了

    热点图片
    拼命载入中...