Node.js RPC框架sonorpc介紹

sonorpc

nodejs rpcjavascript

簡介

sonorpc是一個輕量級、高性能的node rpc框架,由Registry(註冊中心)、Provider(服務提供者)、Consumer(服務消費者)組成,提供遠程方法調用、負載均衡、服務自動註冊和發現功能。java

如何使用

npm install sonorpcnode

import { createProvider } from "sonorpc"
複製代碼

Provider服務提供者

建立服務

DemoService.jsnpm

const { Service } = requie("sonorpc");

class DemoService extends Service {
    sayHello(arg1, arg2) {
        return {
            success: true,
            data: ['any data']
        }
    }
}
複製代碼

啓動Provider服務

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('服務已啓動');
});
複製代碼

Registry註冊中心

scripts/registry.js框架

const { startRegistry } = require('sonorpc');

startRegistry({
    port: 3006
});
複製代碼

Consumer服務消費者

建立消費者

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);
        }));
    }
}
複製代碼
相關文章
相關標籤/搜索