开发者社区> 问答> 正文

赛题FAQ

赛题FAQ专用帖,有任何疑问可以在下面跟帖提问或者加入旺旺讨论群: 1251809708

展开
收起
叔至 2015-07-20 20:31:28 13779 0
8 条回答
写回答
取消 提交回答
  • Re赛题FAQ
    问个很蠢的问题,broker是完全自己敲不能用第三方写好的吗?
    2015-08-11 16:22:11
    赞同 展开评论 打赏
  • Re赛题FAQ
    rpc-ai中 RpcRequest是空的,也没啥接口,那hook就不能统计是调用什么方法了
    比赛测试是可以
    2015-07-27 12:46:20
    赞同 展开评论 打赏
  • Re赛题FAQ
    1 怎么传入broker ip 或者provider ip , -DSIP是什么意思
    答:  任何java程序启动main方法都可以传入系统参数,比如你要执行的类名为A,  那么执行java -DSIP=xxx  A ,   A这个类可以通过String brokerIp=System.getProperty("SIP"), 来获取这个参数
    2015-07-22 15:23:37
    赞同 展开评论 打赏
  • Re赛题FAQ
    赛题在哪里查看,为什么我没有收到题目
    2015-07-21 20:30:56
    赞同 展开评论 打赏
  • Re赛题FAQ
    请问wiki中说的第三方公共库,比如类似于com.alibaba.middleware.race.rpc.api包里面的内容在哪里可以看到?

    -------------------------

    回5楼沈询的帖子

    code.taobao.org/svn/race/trunk/rpc-framework/rpc-use-demo这个地址里面好像只有于com.alibaba.middleware.race.rpc.demo这个包,对于com.alibaba.middleware.race.rpc.api这个包里面的内容是全部要自己写的吗?
    2015-07-21 11:41:56
    赞同 展开评论 打赏
  • Re赛题FAQ
    对于题目的这两点,应该怎么理解啊?
    6.提供RPC上下文,客户端可以透传数据给服务端。
    7.提供Hook,让开发人员进行RPC层面的AOP。
    2015-07-21 11:09:40
    赞同 展开评论 打赏
  • Re赛题FAQ
    请问下提供RPC上下文,客户端可以透传数据给服务端,这个是客户端推数据的意思么?



    A:
    就是除了正常的请求之外 可以透传一些数据给服务端,方便业务在不改动原有接口、返回值 的情况下 进行扩展。
    2015-07-21 10:18:33
    赞同 展开评论 打赏
  • Re赛题FAQ

    -------------------------

    回4楼dayinlives的帖子

    http://code.taobao.org/svn/race/trunk/rpc-framework/rpc-use-demo

    -------------------------

    回3楼默欹的帖子

    对于题目的这两点,应该怎么理解啊?

    简单理解:hook就是方法调用前后做个钩子,可以在钩子函数上做一些新的事情,比如做统计,作分析。 context就是把一些数据额外传递到远端。

    6.提供RPC上下文,客户端可以透传数据给服务端。
    覆盖的测试:
    http://code.taobao.org/p/race/src/trunk/rpc-framework/rpc-use-demo/src/main/java/com/alibaba/middleware/race/rpc/demo/builder/ConsumerBuilder.java
    里面的
      /**
         * use {@link com.alibaba.middleware.race.rpc.context.RpcContext} to pass a key-value structure to Provider
         * {@function getMap()} will pass this context to Consumer
         */
        @Test
        public void testRpcContext() {
            RpcContext.addProp("context", "please pass me!");
            Map<String, Object> resultMap = apiService.getMap();
            Assert.assertTrue(resultMap.containsKey("context"));
            Assert.assertTrue(resultMap.containsValue("please pass me!"));
        }

    对应场景:
    有些业务 不想改现有接口 但想从客户端 再传个东西给服务端。




    7.提供Hook,让开发人员进行RPC层面的AOP。

    见这个例子:
    首先
    http://code.taobao.org/p/race/src/trunk/rpc-framework/rpc-use-demo/src/main/java/com/alibaba/middleware/race/rpc/demo/service/RaceConsumerHook.java

    消费者端注册了一个钩子函数。

    然后在:
    http://code.taobao.org/p/race/src/trunk/rpc-framework/rpc-use-demo/src/main/java/com/alibaba/middleware/race/rpc/demo/builder/ConsumerBuilder.java

        @Test
        public void testConsumerHook() {
            Map<String, Object> resultMap = apiService.getMap();
            Assert.assertTrue(resultMap.containsKey("hook key"));
            Assert.assertTrue(resultMap.containsValue("this is pass by hook"));
        }

    可以看到,钩子函数通过上下文传递到了下游。

    -------------------------

    回8楼游小游的帖子
    http://code.taobao.org/p/race/wiki/index/?spm=0.0.0.0.tvnoVj
    2015-07-21 09:59:03
    赞同 展开评论 打赏
滑动查看更多
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《手把手学习日志服务SLS,云启实验室实战指南》电子书 立即下载
《阿里云云拨测发布》PDF 立即下载
【倚天实例迁移课程】演讲材料合集 立即下载