{"id":16489144,"url":"https://github.com/thundernet8/dubbo-node","last_synced_at":"2025-10-27T20:31:12.812Z","repository":{"id":57216907,"uuid":"110520683","full_name":"thundernet8/dubbo-node","owner":"thundernet8","description":"🌏 NodeJS communicate with dubbo and services generator CLI","archived":false,"fork":false,"pushed_at":"2018-08-05T09:03:35.000Z","size":9243,"stargazers_count":7,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T08:03:02.035Z","etag":null,"topics":["dubbo","node","rpc","zookeeper"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thundernet8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-13T08:27:12.000Z","updated_at":"2019-06-10T08:32:19.000Z","dependencies_parsed_at":"2022-08-28T21:01:49.524Z","dependency_job_id":null,"html_url":"https://github.com/thundernet8/dubbo-node","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thundernet8%2Fdubbo-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thundernet8%2Fdubbo-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thundernet8%2Fdubbo-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thundernet8%2Fdubbo-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thundernet8","download_url":"https://codeload.github.com/thundernet8/dubbo-node/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238553086,"owners_count":19491369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dubbo","node","rpc","zookeeper"],"created_at":"2024-10-11T13:43:17.751Z","updated_at":"2025-10-27T20:31:11.191Z","avatar_url":"https://github.com/thundernet8.png","language":"JavaScript","readme":"## dubbo-node-zookeeper\n\n[![Build Status](https://travis-ci.org/thundernet8/dubbo-node.svg?branch=master)](https://travis-ci.org/thundernet8/dubbo-node)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fthundernet8%2Fdubbo-node.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fthundernet8%2Fdubbo-node?ref=badge_shield)\n\nNodeJS 与 dubbo RPC 通信 , zookeeper 协同，提供了 CLI 从 Java Interface 一键生成 services 并引用。\n\n内部使用了 Socket 连接池重用连接，以提高性能。\n\n## Install\n\n```javascript\nnpm install dubbo-node-zookeeper -g\n```\n\n或\n\n```javascript\nyarn global add dubbo-node-zookeeper\n```\n\n## Usage\n\n### CLI 生成 services\n\n从 java 文件生成\n\n```typescript\ndubbo2ts -i DemoService.java -o services -g dubbo -r LATEST -t 6000\n```\n\n或者从包含 java 文件的文件夹生成\n\n```typescript\ndubbo2ts -i src -o services -g dubbo -r LATEST -t 6000\n```\n\nuse `dubbo2ts -h` for more details.\n\n生成示例 - DemoService.ts(CLI generated)\n\n```typescript\nimport Dubbo from 'dubbo-node-zookeeper';\n\nexport const ServiceHead = {\n    interfac: 'com.alibaba.dubbo.demo.DemoService',\n    version: 'LATEST',\n    timeout: 6000,\n    group: 'dubbo',\n    methods: {\n        sayHello: name =\u003e [{ $class: 'java.lang.String', $: name }],\n        sayHello2: req =\u003e [{ $class: 'com.alibaba.dubbo.demo.DemoReq', $: req }]\n    }\n};\n\nexport function sayHello(name: string) {\n    return Dubbo.exec\u003cstring\u003e('DemoService.sayHello', name);\n}\n\nexport function sayHello2(req: any) {\n    return Dubbo.exec\u003cstring\u003e('DemoService.sayHello2', req);\n}\n\nexport default {\n    sayHello,\n    sayHello2\n};\n```\n\n生成示例 - index.ts( 引入所有的 Services)(CLI generated)\n\n```typescript\nimport { ServiceHead as DemoService } from './DemoService';\n\nexport default {\n    DemoService\n};\n```\n\n### 使用 services\n\n```typescript\nimport Dubbo from 'dubbo-node-zookeeper';\nimport services from './services';\nimport { sayHello } from './services/DemoService';\nimport express from 'express';\n\nnew Dubbo({\n    application: { name: 'demo-provider' },\n    register: '127.0.0.1:2181',\n    dubboVer: '2.5.7',\n    root: 'dubbo',\n    services\n});\n\nsetInterval(function() {\n    sayHello('Jack')\n        .then(data =\u003e console.log(data))\n        .catch(err =\u003e console.log(err));\n}, 5000);\n\n//或者中转http请求至RPC\nconst app = express();\napp.get('/hello', (req, res) =\u003e {\n    sayHello('Jack')\n        .then(data =\u003e res.send(data))\n        .catch(err =\u003e res.send(err));\n});\n```\n\n## Demo\n\n查看[Demo](./demo)工程\n\n## License\n\nDubbo-node-zookeeper is freely distributable under the terms of the\n[MIT license](https://github.com/thundernet8/dubbo-node/blob/master/LICENSE).\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fthundernet8%2Fdubbo-node.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fthundernet8%2Fdubbo-node?ref=badge_large)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthundernet8%2Fdubbo-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthundernet8%2Fdubbo-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthundernet8%2Fdubbo-node/lists"}