基于hessian的rpc框架及集成spring

原创
2017/02/03 13:03
阅读数 2.1K

实现功能与spring注解集成。
在web服务中,及可以当作普通的spring bean又可以作为服务的提供者。
在消费者中,与spring注解结合,方便使用。

实现思路

1.提供者provider,在spring启动时,获取注解provider的bean放到一个http server发布hessian服务。

2.消费者,在spring启动时,提前把注解consumer的属性注入。

因为方便在别人的项目上修改的,原项目地址https://git.oschina.net/wj596/nhrpc

增加spring注解及注解相应逻辑,修改rpc发布逻辑,保留http server。

项目地址https://git.oschina.net/ihuotui/nhrpc/tree/ihuotui

实际使用架构图

在小型的项目中,想使用微服务但是又不想把项目复杂化,用下面的思路实践是十分方便的。

实践中,可以增加nginx负载。

项目使用说明

nhrpc 是一个简单高效的RPC框架,基于netty3.7和hessian4.0构建。

原项目主人http://wangjie2016.iteye.com/blog/2321917

1 发布服务,把本机作为服务节点发布服务
1.1
xml配置增加如下

<nhrpc:providers id="nhrpcProviders" port="8081" contextRoot="test">
</nhrpc:providers> 


1.2
服务提供的bean例子
```
@Provider
@Service("helloWord")
public class HelloWordImpl implements HelloWord{

@Override
    public String hello(String name) {
        return "HelloWord:"+name;
    }
}
```

2 服务消费者,
2.1
xml
注册服务提供者地址

<!-- server of consumers -->
<nhrpc:consumers id="nhrpcConsumers" >
<nhrpc:consumer id="test" provider="test" host="http://localhost:8081/test/"/> 
</nhrpc:consumers>


注入proxy到bean

<!-- inject proxy in consumer -->
<bean id="consumerBeanPost" class="org.jsets.rpc.processor.ConsumerBeanPostProcessor"></bean> 


2.2
消费者bean例子

@Consumer(provider="test")
private HelloWord helloWord;

3 完整测试例子
spring-provider.xml
spring-consumer.xml
TestFullAnnotation

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
86 收藏
2
分享
返回顶部
顶部