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' } })();
1. Dubbo 是啥? Dubbo 是一个由阿里开源的 RPC 框架。 简单说下RPC框架的背景。 Dubbo 是一种 RPC 框架,应用在分布式服务。 2. 使用 Dubbo 实现 Java 互调 首先我们可以先尝试下同语言下的 Dubbo 调用,从容易开始。 可以参考下 dubbo 官方文档 dubbo.apache.org/zh-cn/docs/… 这边简单尝试下,主要有两步:
/* * Copyright 1999-2011 Alibaba Group. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a
1:分析 不管是通过xml方式,还是注解方式,还是API方式都会生成对应的XXXConfig类,然后解析这些XXXConfig类生成URL的参数信息,例如<dubbo:application> -> ApplicationConfig,<dubbo:registry> -> RegistryConfig。 如果我们查看在zk中注册的服务提供者信息(服务消费者类似),可能看到如下的信息: [zk:
java.lang.IllegalStateException: Error processing condition on com.alibaba.boot.dubbo.DubboAutoConfiguration.dubboProtocolConfig at org.springframework.boot.autoconfigure.condition.SpringBootCondi
Failed to invoke the method queryValueByName in the service com.zto56.cuckoo.cloud.service.order.IOrderCommonService. Tried 1 times of the providers [10.86.10.43:20830] (1/1) from the registry 10.15.1
推荐博文: http://dubbo.apache.org/zh-cn/docs/user/configuration/api.html
http://dubbo.io/dubbo2.js/docs/preface.html https://github.com/dubbo/dubbo2.js 转载于:https://www.cnblogs.com/liujinyu/p/10295493.html
# xmlrpc_server.py from xmlrpc.server import SimpleXMLRPCServer from xmlrpc.client import Binary import datetime class ExampleService: def ping(self): """Simple function to respond when
问题内容: 我可以使用Node.js的SSH客户端与服务器进行通信吗? 问题答案: 用纯JavaScript编写的SSH2客户端模块,用于node.js https://github.com/mscdex/ssh2 还要签出这个包装器 https://github.com/mikeal/sequest
提纲ceph-fuse [ -m monaddr:port ] mountpoint [ fuse options ] 描述 ceph-fuse 是 Ceph 分布式文件系统的 FUSE (用户空间文件系统)客户端,它会把 Ceph 文件系统(用 -m 选项或 ceph.conf 指定)挂载到指定挂载点。 文件系统可这样卸载: fusermount -u mountpoint 或向 ceph-fu
我使用Spring Boot开发了这个websocket服务器。服务器与基于js的客户机配合得很好。 控制器: 这是服务器端。现在,对于客户机,我已经创建了一个@ClientEndpoint,当我连接到URI“ws://localhost:8080/spring-mvc-java/chat”时,我能够建立一个连接,并且可以看到@ClientEndpoint的@OnOpen回调被触发。 但是,use
问题内容: 我正在寻找用于node.js的webrtc实现, 以将数据从 nodeJS客户端 传输到另一个webRTC对等方。 因此,在我的情况下,nodejs应用程序 不是 服务器,而是客户端。 是否存在这样的节点模块? 问题答案: 我遇到了同样的问题,偶然发现了这两个瑰宝: https://github.com/helloIAmPau/node-rtc 很遗憾,它缺少任何文档。 但是 http
问题内容: 是否有一个用于node.js的Twitter客户端(不是流式API,即常规API)? 我已经了解了twitter-node,但是我正在寻找一个允许使用Twitter REST API的更通用的客户端。 有人有主意吗? 谢谢, 约翰娜森 问题答案: 签出我的节点模块,它可能就是您想要的。具有完整的Twitter API支持(REST和流API):https : //github.com/