1.前沿
最近需要开发一个RPC服务框架,由于我们公司使用finagle来开发http服务接口,同时finagle支持thfirt协议,打算调研一下。
需要解决的问题:
1. 支持分布式部署,即需要部署多个实例
2. 服务QPS达到一定值(这个主要跟业务的架构有关啦,属于本身业务代码的范畴)
3.各实例服务的监控,例如响应时间等
本片blog主要介绍使用层面的应用,对改服务的架构以及核心的组建可以参考如下链接:
https://www.infoq.cn/article/2014%2F05%2Ftwitter-finagle-intro
https://twitter.github.io/finagle/
http://skaka.me/blog/categories/finagle/
2.开发一个居于thrift协议分布式的demo
本文记录java版本的服务端和client,如果要用scala版本,步骤2需要生成scala代码
步骤1:定义一个thrift的IDL文件,如下:
namespace java com.sndo.thrift
service LdxThriftServe {
string method1(1:string p1,2:i32 p2),
string method2(1:double p1),
}
步骤2:将定义的thrift文件生成java 类文件
finagle提供了一个开源的工具scrooge生成相应的代码,这里使用scrooge 提供的maven插件来生成代码。
这里给出我的pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns: