Микросервисы на Node.js с MicroMQ - PullRequest
0 голосов
/ 13 марта 2020

Я использую MicroMQ для связи между различными сервисами, и для основного сервиса все нормально, я получил запросы и затем делегировал их через RabbitMQ. Я вижу это сообщение в очереди, но мой микросервис не получает никаких сообщений. Это для основного сервиса:

контроллер:

export const create = async (req, res) => {
    await res.delegate('trade');
}

gatewayConfig:

const Gateway = require('micromq/gateway');
const config = require('../configServer');

export const gateway = new Gateway({
    microservices: ['platform', 'trade'],
    name: 'platform',
    rabbit: {
        url: "amqp://rihtavqi:AhKDUujmeC5hBUPb0zQb7qh7AgqnR5QG@lion.rmq.cloudamqp.com/rihtavqi"
    }
});

export const services = {
    trade: 'trade'
};

сервер. js

app.use(gateway.gateway.middleware());

это что Я использую в своем основном сервисе. Это единственное место, где я вызываю шлюз ...

И это для микросервиса: сервер. js

const express = require("express");
const gateway = require('./gateway/gatewayRoute');

const app = express();
const server = require("http").createServer(app);

gateway.start().then(() => {
    server.listen(constant.config.port, constant.config.host, async () => {
        loggingHelper.consoleLog("APP", `Server running on port ${constant.config.port} and on host ${constant.config.host}.....`);
        process.on("unhandledRejection", (reason, promise) => {
            loggingHelper.consoleLog("APP_ERROR", `Uncaught error in ${String(reason)}`, promise);
        });

});

route

const MicroService  = require('micromq/src/MicroService');
const loggingHelper = require('../app/helper/loggingHelper');

const orderService = require('../app/service/orderService');

const gateway = new MicroService({
        name: 'trade',
        rabbit: {
            url: "amqp://rihtavqi:AhKDUujmeC5hBUPb0zQb7qh7AgqnR5QG@lion.rmq.cloudamqp.com/rihtavqi"

        }
    }
);

gateway.post('/create', async (req, res) => {
    loggingHelper.consoleInfoLog("TRADE", "/create received.");
    res.json(await service.create(req));
});

module.exports = gateway;

Последний один не работает. Кстати, моя идея подсказала мне, что функция .post () - это

Неразрешенная функция или метод post ()

Я думаю, что проблема здесь. Я пробовал разные способы (создание шлюза (micromq / gateway) в микросервисе, пытался деструктурировать MicroService, но все это ничего не дает мне) все это создавалось на примерах, но это не работает ... И я не могу понять, почему? Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 13 марта 2020

Не уверен насчет MicroMQ, но вы можете использовать среду SMF для прототипирования микросервисов, которые автоматически подключаются к RabbitMQ:

https://medium.com/@krawa76 / bootstrap - node-js -microservice-stack- 4a348db38e51

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...