基于 Node.js 的 RPC 客户端 dubbo2.js
- 授权协议: Apache-2.0
- 开发语言: Java JavaScript TypeScript
- 操作系统: 跨平台
- 软件首页: http://dubbo.io/dubbo2.js/
- 软件文档: https://github.com/dubbo/dubbo2.js/blob/master/README.md
- 官方下载: https://github.com/dubbo/dubbo2.js/releases
软件介绍
dubbo2.js —— nodejs 使用原生的 dubbo (dubbo head + hessian body) 协议打通了 dubbo 的 rpc 方法调用。
功能特性
支持将 zookeeper 作为注册中心
使用 TCP Dubbo 原生协议(Dubbo Header + Hessian Body)
Socket 池 (ServerAgent -> SocketPool -> SocketWorker)
直接支持 Dubbo (const Dubbo = DirectlyDubbo({..}))
中间件,易于扩展
追踪
支持 Dubbox
示例代码
import {Dubbo, java, TDubboCallResult} from 'dubbo2.js';
//定义dubbo方法类型接口
//方便代码自动提示
interface IDemoService {
sayHello(name: string): TDubboCallResult<string>;
echo(): TDubboCallResult<string>;
test(): TDubboCallResult<void>;
getUserInfo(): TDubboCallResult<{
status: string;
info: {id: number; name: string};
}>;
}
//创建dubbo对象
const dubbo = new Dubbo({
application: {name: 'node-dubbo'},
//zookeeper address
register: 'localhost:2181',
dubboVersion: '2.0.0',
interfaces: ['com.alibaba.dubbo.demo.DemoService'],
});
//代理本地对象->dubbo对象
const demoService = dubbo.proxyService<IDemoService>({
dubboInterface: 'com.alibaba.dubbo.demo.DemoService',
version: '1.0.0',
methods: {
sayHello(name) {
//仅仅做参数hessian化转换
return [java.String(name)];
},
echo() {},
test() {},
getUserInfo() {
//仅仅做参数hessian化转换
return [
java.combine('com.alibaba.dubbo.demo.UserRequest', {
id: 1,
name: 'nodejs',
email: 'node@qianmi.com',
}),
];
},
},
});
//main method
(async () => {
const result1 = await demoService.sayHello('node');
//print {err: null, res:'hello node from dubbo service'}
const res = await demoService.echo();
//print {err: null, res: 'pang'}
const res = await demoService.getUserInfo();
//status: 'ok', info: { id: '1', name: 'test' }
})();
Responsive Web Design
Ethan Marcotte / Happy Cog / 2011-6 / USD 18.00
From mobile browsers to netbooks and tablets, users are visiting your sites from an increasing array of devices and browsers. Are your designs ready? Learn how to think beyond the desktop and craft be......一起来看看 《Responsive Web Design》 这本书的介绍吧!
