上篇文章是1年前写的惭愧惭愧,今天一个同事问我要demo然后看了下文章 好吧主要的代码 没写出来,今天补充下

上篇地址:http://www.cnblogs.com/rufus-hua/p/4159278.html

上篇写到 在 thrift文件夹里 新建 hello.thrift文件

如下面代码:

namespace java com.test.finagle.demo

service Hello{

string helloString(:string para)

i32 helloInt(:i32 para)

bool helloBoolean(:bool para)

void helloVoid()

string helloNull()

}

然后 点击编译 ,(如果不报错的)会看到在 target文件夹里生成 target\generated-sources\thrift\scrooge\com\test\finagle\demo 下面生成的hello.java文件 很好.

然后新建java文件 继承生成文件里的ServerIface接口

如代码:

public class HelloImpl implements Hello.ServiceIface {

public Future helloString(String para) {

return Future.value(para);

}

public Future helloInt(int para) {

return Future.value(para);

}

public Future helloBoolean(boolean para) {

return Future.value(para);

}

public Future helloVoid() {

return Future.value(null);

}

public Future helloNull() {

return Future.value(null);

}

}

ok 最后一步main 方法:

public class App {

static ListeningServer server;

public static void main(String[] args) {

Integer port = 9801;//这是 finagle 真正的监听地址

String zkHosts="127.0.0.1:9000";//这是zk服务器的地址 我这里只有一台 如果多台;分割

String zkPath="/soa/test/finagle";

try {

System.out.println("zkHosts:" + zkHosts + "\tzkPath:" + zkPath+"\tport:"+port);

Hello.ServiceIface iface=new HelloImpl();

server = Thrift.serveIface(new InetSocketAddress(port), iface);

String zkFullPath = String.format("zk!%s!%s!0", zkHosts, zkPath);

server.announce(zkFullPath);

System.out.println("finagle server start");

Runtime.getRuntime().addShutdownHook(new Thread() {

@Override

public void run() {

App.close();

}

});

Await.ready(server);

} catch (Exception e) {

e.printStackTrace();

System.exit(-1);

}

}

public static void close() {

System.out.println("finagle server shutdown");

server.close();

}

}

下面上 client 端代码:(注:客户端是不用关心服务端真正的ip只需要确保zk能用就行  有个概念叫服务发现)

String zkHosts="127.0.0.1:9000";

String zkPath="/soa/test/finagle";

String zkFullPath = String.format("zk!%s!%s", zkHosts, zkPath);

ServiceFactory factory = Thrift.newClient(zkFullPath);

Hello.ServiceIface helloClient = new Hello.ServiceToClient(factory.toService(), new TBinaryProtocol.Factory());

String ret = helloClient.helloString("test").get();

Assert.assertEquals("test", ret);

最后附上 demo下载地址 http://pan.baidu.com/s/1kTKsYDT

ps: 最后 记得修改 maven的setting文件 的镜像

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

ss

false

socks5

127.0.0.1

1080

nexus

nexus

http://maven.oschina.net/content/groups/public

*

java搭建finagle(1)

1.新建maven项目 2.pom文件添加依赖 添加3个主要依赖com.twitter

Java搭建WebSocket的两种方式

下面分别介绍搭建方法:一.直接使用Java EE的api进行搭建.一共3个步骤:1.添加依赖    javax

Java——搭建自己的RESTful API服务器(SpringBoot、Groovy)

这又是一篇JavaWeb相关的博客,内容涉及: SpringBoot:微框架,提供快速构建服务的功能 SpringMVC:Struts的替代者 MyBatis:数据库操作库 Groovy:能与Java ...

从零开始学 Java - 搭建 Spring MVC 框架

没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...

手把手教你用新浪云容器 Java 搭建自己的网站

经过一段时间的开发,更新,迭代,新浪云容器 Java 环境逐渐成熟起来,相比过去的 Java 运行环境,可用性和易用性都得到了大量的提升.同时也收到了不少用户反馈的使用问题,特此在这篇文章里综合介绍一 ...

056 Java搭建kafka环境

1.使用Java项目搭建 2.新目录 3.添加项目支持 4.添加mavem与scala 5.修改pom <?xml version="1.0" encoding=" ...

java搭建 SpringMVC&plus;Mybatis&lpar;SMM&rpar;&plus;mybatis-generate

搭建SSM系统,首先要了解整个过程: 1.创建spring-mvc项目 2.在maven中添加要引用的jar包(使用框架都是较新的版本:) 3. jdbc.xml +spring-mybatis.xm ...

这一次,我连 web&period;xml 都不要了,纯 Java 搭建 SSM 环境&excl;

在 Spring Boot 项目中,正常来说是不存在 XML 配置,这是因为 Spring Boot 不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java 配置来搭 ...

随机推荐

解决GitLab提交MergeRequest时,提示502 GitLab is not responding&period;的问题

最近使用GitLab提交MergeRequest时,提示502 GitLab is not responding. 使用gitlab-ctl tail查看错误信息如下: 2014/10/28 11:5 ...

&lbrack;轉&rsqb;redis&semi;mongodb&semi;memcache三者的性能比較

先说我自己用的情况: 最先用的memcache ,用于键值对关系的服务器端缓存,用于存储一些常用的不是很大,但需要快速反应的数据 然后,在另一个地方,要用到redis,然后就去研究了下redis. 一 ...

Gradle系列教程之依赖管理&lpar;转&rpar;

转自Lippi-浮生志 :http://ezlippi.com/blog/2015/05/gradle-dependency-management.html 这一章我将介绍Gradle对依赖管理的强大 ...

常用的rpm和yum的一些命令

常用的rpm命令  rpm -qa | grep coreutils

用Dalvik指令集写个java类

Dalvik指令集 .class public LCalculate;#定义类名 .super Ljava/lang/Object;#定义父类 .method public static main([ ...

Ext&period;Array 方法

1. Ext.Array.clean(arr); 过滤数组中的空元素 var arr = [1,"",2,"",3]; Ext.clean(arr); // [ ...

FindLetter 类——查找文件中特定的字符,每一行开头为某一个字符,则跳过

/*统计除了>之外的行里面CHED四个字母总数*/ #include #include #include

JavaScript 高级

在线JS编辑 JS 编写规范 阮一峰 ES 6 阮一峰 廖雪峰 操作文件

twitter finagle java_java搭建finagle(2)相关推荐

  1. 开源公司黄页之 Twitter 开源软件推荐

    从Twitter的GitHub账户中可以看到,Twitter已经开源的开源项目有近200个,领域涉及分布式架构.大数据.异步网络传输(客户端.服务端).Web.工具等.Twitter可以称为构建于开源 ...

  2. 20+ Twitter开源软件精选

    从Twitter的GitHub账户中可以看到,Twitter已经开源的开源项目有近200个,领域涉及分布式架构.大数据.异步网络传输(客户端.服务端).Web.工具等.Twitter可以称为构建于开源 ...

  3. 以Dapper、Zipkin和LightStep [x]PM为例阐述分布式跟踪的过去、现在和未来

    \ 核心要点 \\ 在观测分布式系统和微服务时,分布式跟踪已经成为一个越来越重要的组件.现在有一些流行的开源标准和框架,比如OpenTracing API和OpenZipkin:\\t 分布式跟踪的基 ...

  4. 【Other】最近在研究的, Java/Springboot/RPC/JPA等

    我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索Dubbo与 ...

  5. 体系化认识RPC--转

    原文地址:http://www.infoq.com/cn/articles/get-to-know-rpc?utm_source=infoq&utm_medium=popular_widget ...

  6. RPC框架(一)RPC简介

    一.概述 二.RPC 2.1.RPC定义 2.2.RPC主要组成部分 三.影响RPC框架性能的因素 四.工业界的 RPC 框架一览 4.1.国内 4.2.国外 五.如何选择RPC框架 一.概述 随着公 ...

  7. 【大咖连载】服务设计与实现

    更多精彩内容请关注我们 服务设计会影响到业务需求是否被正确.高效地实现,良好的服务设计能够帮助领域专家与开发人员之间,以及团队内部进行高效.准确的沟通.良好的实现则能缩短服务上线的周期,并提升可扩展性 ...

  8. 月PV破15亿:Tumblr架构揭密

    随着每月页面浏览量突破15亿次,Tumblr已经名正言顺地跻身博客类平台中的名人堂.用户们对它的简洁.美观以及对使用体验的专注追求赞不绝口:它的相关社区也同样氛围温馨.人气爆棚.总之,人们喜欢这位博客 ...

  9. 转:Tumblr:150亿月浏览量背后的架构挑战

    转:Tumblr:150亿月浏览量背后的架构挑战 by  唐福林  posted on  2012 年 02 月 17 日 导读:和许多新兴的网站一样,著名的轻博客服务Tumblr在急速发展中面临了系 ...

最新文章

  1. Rotate List
  2. 数据库查询某一列大写转化小写字母表示_算法/开发 面试必看! 【数据库】面试题合集...
  3. 华硕vm510l拆电池图解_图解说设备:凯斯CX80C你会买吗?
  4. 基础知识回顾——通用序列操作
  5. 鸿蒙系统首批更新名单,鸿蒙系统首批升级名单是哪些-鸿蒙系统首批升级名单详细介绍 - 系统家园...
  6. 基于Monte Carlo方法的2048 A.I.
  7. 股票预埋单第二天还有效么?
  8. 如何简化卷积神经网络_卷积神经网络:简化
  9. Visio 2013 Professional专业版密钥
  10. “耐撕”团队第一次讨论——“抢答器”需求分析
  11. 会议会展产业要善用信息技术提高活动运营管理效率
  12. 记 2022年11月5日 信息安全工程师考试
  13. VSCode搭建STM32开发环境(极简自我搭建懒人直接使用插件)
  14. 泛微OA流程插入JS代码块
  15. java poi pdf 导出
  16. 常识-就怕你不知道一条
  17. 区块链投资需要多少钱?不再是空谈
  18. 计蒜客题解——T1414:抠图
  19. 电商网站秒杀与抢购的系统架构
  20. 计算机网络-网络,互联网(day01)

热门文章

  1. [考研]考研倒计时第8天
  2. 《Java多线程编程核心技术》读后感(十四)
  3. 企业上市上市央企大面积亏损折射出啥弊端?
  4. flutter网络dio框架公共请求参数、请求header使用总结
  5. Flutter通过BasicMessageChannel实现Flutter 与Android iOS 的双向通信
  6. Android自定义控件ImageViwe(四)——多点触控实现图片的自由移动
  7. 再谈Js定义变量,你不得不踩的那些坑
  8. 驱动开发中的常用操作
  9. Dependency Walker使用说明[转]
  10. int类型和byte类型的强制类型转换