node直接调用dubbo服务

本文介绍如何通过Node服务调用后端Dubbo服务的方法,为了解决HTTP协议的高消耗及乱码问题,选择使用JSON-RPC协议,并详细记录了在Dubbo上拓展JSON-RPC的具体步骤。

这段时间,搞了一个项目,实际场景就是前端搭建了一个node服务,需要直接去调用后端的dubbo服务。

所以需要在现有的项目中做一些改造。

dubbo默认是使用hessian协议的,node是可以直接调用dubbo的默认协议的,或者调用dubbo的其他原生协议。

为什么不考虑直接使用hessian呢,因为hessian是基于http的,消耗巨大,并且会有乱码的问题。

所以后端dubbo提供的服务考虑使用jsonrpc协议,但是dubbo原生是不支持jsonrpc协议的,需要在dubbo上进行一些拓展。

这个拓展类可以使用第三方包dubbo-rpc-jsonrpc。

1. 引入依赖

            <dependency>
                <groupId>com.qianmi</groupId>
                <artifactId>dubbo-rpc-jsonrpc</artifactId>
                <version>1.0.1</version>
            </dependency>

2. 配置dubbo-provider的配置文件,这里的端口号要跟部署的服务器的端口保持一致

    <dubbo:protocol id="jsonrpc" name="jsonrpc" port="6666" server="servlet"/>

3. web.xml中配置servlet

<servlet>
		<servlet-name>dubbo</servlet-name>
		<servlet-class>com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dubbo</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>

直接postman调用即可

192.168.0.1:6666/org.csu.coderlee.tradeDubboService

{
“method”:“createOrder”,
“jsonrpc”:“2.0”,

“params”: [
{
“labelIds”: [
10023,
10039,
10037
],
“orderId”: “32789127389123123123”,
}
]
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值