# sea-rpc **Repository Path**: ghsea/sea-rpc ## Basic Information - **Project Name**: sea-rpc - **Description**: 基于Netty4+Zookeeper的RPC原型 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2017-04-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sea-rpc ## 模块 - rpc-core: 该模块是rpc目前的所有代码 - rpc-demo 该模块是demo,包括server和client的代码 ## 如何运行demo 修改rpc-demo位于src/main/resources下的配置文件,配置文件说明如下: - netty_server.properties 里面配置了Netty Server的启动端口号 - zk_servers.properties 里面配置了zookeeper的服务器列表 - log4j.properties 编译父工程sea-rpc(连带编译子模块rpc-core和rpc-demo)。 将rpc-demo运行于tomcat下,出现以下log则说明Netty Server正常启动:Netty Server started at 192.168.1.104:9090 in 323 ms。 (其中192.168.1.104是本机Netty server的启动ip,9090是Netty server的启动端口) 运行客户端测试程序:com.github.ghsea.rpc.demo.client.HelloTest ## 关于demo代码的说明 - 服务端 ``` ``` 以上serverBootstrap是必须配置的,它相当于Netty server的启动类 sea-rpc:provider id="hello"将helloImpl暴露为一个远程服务 - 客户端 ``` ``` targetService引用了远程服务,它必须与服务端的provider id相一致。 targetInterface是远程服务的接口类型。 剩下的几个配置定义了客户端的一些行为: - poolName与服务端的pool相对应 - version与服务端的version相对应 - timeoutMs定义了单次请求的超时时间 - retryTimes定义了客户端的重试次数(目前还未实现) - callType定义了客户端的调用类型:同步(SYNC),异步(ASYNC) 以上配置的xsd参照rpc-core模块的 com/github/ghsea/rpc/common/spring/sea-rpc.xsd