twitter finagle java_twitter-finagle的两个坑

最近在用finagle,碰到的几个坑:

1. 如果想直接用java调用scala启动httpserveradmin,service需要start

AdminHttpService admin = new AdminHttpService(

9090, 123, new RuntimeEnvironment(this));

TimeSeriesCollectorFactory seriesCollectorFactory = new TimeSeriesCollectorFactory();

seriesCollectorFactory.apply(Stats.get(""), admin).start();

admin.start();

filter

new SimpleFilter().andThen.(SimpleFilter).andThen....

这种形式连续调用下去是可以的。

如果想把Filter放入list,然后遍历出来调用。这样:

CopyOnWriteArrayList> chain = env.getFilters();

Filter tmp = null;

for (SimpleFilter filter : chain) {

if (tmp != null) {

tmp = tmp.andThen(filter);

} else {

tmp = filter;

}

}

Server server = ServerBuilder.safeBuild(

tmp.andThen(httpserver),

ServerBuilder.get()........

andThen的代码如下:

def andThen[Req2, Rep2](next: Filter[ReqOut, RepIn, Req2, Rep2]) =

new Filter[ReqIn, RepOut, Req2, Rep2] {

def apply(request: ReqIn, service: Service[Req2, Rep2]) = {

Filter.this.apply(request, new Service[ReqOut, RepIn] {

def apply(request: ReqOut): Future[RepIn] = next(request, service)

override def release() = service.release()

override def isAvailable = service.isAvailable

})

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值