实现功能与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