Linux环境用shell调用Dubbo服务

Posted 胖小白的技术笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux环境用shell调用Dubbo服务相关的知识,希望对你有一定的参考价值。

 

因项目中遇到非Dubbo框架的系统需要调度Dubbo框架系统的任务。

尝试了用expect方法,需要Linux安装tcl和expect。

 

首先Dubbo官方文档中有提到Linux调用Dubbo的方式

telnet localhost 20880

 

invoke XxxService.xxxMethod({"prop": "value"})

调用服务的方法。

 

#!/usr/bin/expect

#invokeDubbo.exp

if {$argc<0} {
puts stderr "Usage: $argv0 dubboip dubboport service dataBody"
exit 1
}

set dubboip [ lindex $argv 0 ]
set dubboport [ lindex $argv 1 ]
set service [ lindex $argv 2 ]
set dataBody [ lindex $argv 3 ]

set timeout 30


spawn telnet ${dubboip}  ${dubboport}

expect {
"*Connected*" { send "\r"; exp_continue }
"*dubbo>" { send "invoke $service.execute\(\{$dataBody\}\) \r" }
}

expect eof

 

调用方式如下:

./invokeDubbo.exp  100.XX.XX.67 20880 ClearingApi \"accountDate\":\"20161220\"

 

以上是关于Linux环境用shell调用Dubbo服务的主要内容,如果未能解决你的问题,请参考以下文章

Dubbo搭建HelloWorld-搭建服务提供者与服务消费者并完成远程调用(附代码下载)

在linux中如何根据nice值设置任务时间片

怎么用java代码调用远程Linux上的shell脚本

关于dubbo在linux环境weblogic下启动报错

dubbo-环境隔离

linux arm 运行 shell .sh 脚本文件报错:/bin/bash^M: bad interpreter: No such file or directory(dos2unix )(代码片