0
点赞
收藏
分享

微信扫一扫

node直接调用dubbo服务

jjt二向箔 2022-04-21 阅读 63
java后端

这段时间,搞了一个项目,实际场景就是前端搭建了一个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”,
}
]
}

举报

相关推荐

0 条评论