nodejs rpcjavascript
sonorpc是一個輕量級、高性能的node rpc框架,由Registry(註冊中心)、Provider(服務提供者)、Consumer(服務消費者)組成,提供遠程方法調用、負載均衡、服務自動註冊和發現功能。java
npm install sonorpc
node
import { createProvider } from "sonorpc"
複製代碼
DemoService.jsnpm
const { Service } = requie("sonorpc");
class DemoService extends Service {
sayHello(arg1, arg2) {
return {
success: true,
data: ['any data']
}
}
}
複製代碼
scripts/start.js負載均衡
const { createProvider } = requie("sonorpc");
const provider = createProvider({
// 日誌類示例
logger: console,
// 監聽端口
port: 3005,
// 服務類
serviceClasses: [DemoService],
// 註冊中心配置
registry: {
// 註冊中心地址
host: '127.0.0.1',
// 註冊中心端口
port: 3006
}
});
provider.start(() => {
console.log('服務已啓動');
});
複製代碼
scripts/registry.js框架
const { startRegistry } = require('sonorpc');
startRegistry({
port: 3006
});
複製代碼
consumer.jside
const { registerConsumer } = require('sonorpc');
const consumer = registerConsumer({
port: 3006
});
module.exports = consumer;
複製代碼
DemoService.js性能
const consumer = require('../consumer');
class DemoService {
testMe(...args) {
return new Promise((resolve, reject) => consumer.invoke('demo.testMe', args, (err, data) => {
err ? reject(err) : resolve(data);
}));
}
}
複製代碼