文档章节

基于hessian的rpc框架及集成spring

ihuotui
 ihuotui
发布于 2017/02/03 13:03
字数 448
阅读 1823
收藏 87

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

© 著作权归作者所有

ihuotui
粉丝 8
博文 18
码字总数 7672
作品 0
广州
程序员
私信 提问
基于 Spring Boot 的研发框架 - SOFABoot

SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。在增强了 Spring Boot 的同时,SOFABoot ...

匿名
2018/04/19
0
10
史上最强Dubbo面试25题含答案详解:核心组件+架构设计+服务治理等

1.Dubbo是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两...

mikechen优知
01/24
0
0
史上最强Dubbo面试26题和答案:核心组件+服务治理+架构设计等

1.Dubbo是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两...

mikechen优知
01/24
0
0
Dubbo面试20问!这些题你都遇到过吗?

作者:Dean Wang https://deanwang1943.github.io/bugs/2018/10/05/面试/饿了么/dubbo 面试题/ 1、dubbo是什么 dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含: 集群容错...

安小乐
06/10
0
0
dubbo 面试18问 JAVA葵花宝典 今天

dubbo 面试18问 dubbo是什么 dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含: 集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容...

DemonsI
02/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数组算法

/*数组的相关的算法操作:1、在数组中找最大值/最小值*/class Test11_FindMax{public static void main(String[] args){int[] array = {4,2,6,8,1};//在数组中找最大...

architect刘源源
48分钟前
2
0
okhttp3 以上版本在安卓9.0无法请求数据的解决方案

应用官方的说明:在 Android 6.0 中,我们取消了对 Apache HTTP 客户端的支持。 从 Android 9 开始,默认情况下该内容库已从 bootclasspath 中移除且不可用于应用。且Android P 限制了明文流量...

chenhongjiang
今天
11
0
简单示例:NodeJs连接mysql数据库

开篇引用网上的说法: 简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于...

李朝强
今天
8
0
大数据学习路线

年薪30W大数据学习路线图: 一、Hadoop入门,了解什么是Hadoop 1、Hadoop产生背景 2、Hadoop在大数据、云计算中的位置和关系 3、国内外Hadoop应用案例介绍 4、国内Hadoop的就业情况分析及课程...

陈小君
今天
3
0
解读 Kylin 3.0.0 | 更敏捷、更高效的 OLAP 引擎

在近期的 Apache Kylin Meetup 成都站上,我们邀请到 Kyligence 架构师 & Apache Kylin Committer 倪春恩对 Kylin 3.0.0 版本的一些重要功能及改进从使用到原理进行了介绍: Apache Kylin 在...

ApacheKylin
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部