我如何在微服务之间进行通信?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在微服务之间进行通信?相关的知识,希望对你有一定的参考价值。

我在一个调用另一个的微服务中有以下代码:

axios.get('http://localhost:4210/usermicroservice/heartbeat')
 .then(function(resp) {
     console.log('USER HEARTBEAT CALLED ')
 })
 .catch(function(error) {
    console.log('USER HEARTBEAT ERROR ', error)
})

在被叫微服务中,我有以下代码:

server.use((req, res, next) => {
    res.setHeader("Access-Control-Allow-Origin", "*");
    next();
})

server.get('/usermicroservice/heartbeat', (req, res) => {
    console.log('
*** USER MICROSERVICE CALLED ***')
    res.json({});
})

const PORT = 4210;
server.listen(PORT, () => {
    console.log(`hsupp01 UserMicroservice server running on port: ${PORT}`)
})

我收到以下错误:

{ Error: connect ECONNREFUSED 127.0.0.1:4210
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1097:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 4210,

我可以使用相同的url从Postman访问被调用的微服务:

http://localhost:4210/usermicroservice/heartbeat
答案

错误消息不捕获问题,但下面的代码必须在异步块中执行。

axios.get('http://localhost:4210/usermicroservice/heartbeat')
 .then(function(resp) {
     console.log('USER HEARTBEAT CALLED ')
 })
 .catch(function(error) {
    console.log('USER HEARTBEAT ERROR ', error)
})

以上是关于我如何在微服务之间进行通信?的主要内容,如果未能解决你的问题,请参考以下文章

在微服务之间共享代码 - 在这种情况下是不是合理?

如何在嵌套片段内的两个子片段之间进行通信

Quarkus:如何在微服务之间进行身份验证?

如何使用接口在片段和活动之间进行通信?

在tablayout片段之间进行通信[重复]

片段和服务器之间的通信问题