小编Joh*_*ohn的帖子

真实世界微服务 gRPC 与事件溯源

我正在尝试了解微服务,但对服务编排和事件溯源(服务编排)之间哪种方法更好感到困惑。似乎很少有框架允许您使用事件溯源来构建您的应用程序。相反,似乎您必须自己构建整个框架,这非常困难。

此外,网络上关于实际从事微服务的公司的大多数讨论似乎都在使用 gRPC(或其他一些 rpc)和服务之间直接调用的编排,而不是使用 sagas/events 进行事件溯源。

实施微服务的最佳方式是什么?将 gRPC 与服务编排一起使用,还是实际尝试使用服务编排和异步事件来实现事件源系统?

event-sourcing microservices grpc

8
推荐指数
1
解决办法
2867
查看次数

如何在猫鼬中同时更新对象并推入数组

我有一个架构如下

var FriendsSchema = new Schema({
  email: {
    type: String
  }
  firstName: String,
  lastName:  String,
  previousEmails:[{
    email:{
      type:String
    }
  }],
  createdDate:{
    type:Date,
    default:Date.now
  },
  updatedDate:{
    type:Date,
    default:Date.now
  }
});
Run Code Online (Sandbox Code Playgroud)

我想做的是,在更新时,如果“电子邮件”发生更改,我想将“电子邮件”字段更新为传入的新值,并将当前“电子邮件”值推送到“上一个电子邮件”中' 大批。

我可以通过以下两个步骤完成此操作:1)按 id 更新对象,并设置除数组“previousEmails”之外的所有字段2)如果对象的“电子邮件”字段已更改,则将旧值推入“ previousEmails 数组。

我的问题是,是否可以一步完成此操作?所以我有 $push 和 $set 作为我的查询的一部分?

mongoose mongodb node.js

5
推荐指数
1
解决办法
2330
查看次数

我可以从我的源代码的一个副本运行多个节点进程

我想知道是否可以从同一目录运行多个节点进程,使用相同的文件或使用不同的文件.我正在运行的进程基本上会执行批处理作业,并且不会运行服务器,但我也想知道服务器情况.

假设我有以下结构

  • SRC
    • server.js
    • 测试
      • file1.js
      • file2.js

我有一个由两部分组成的问题.

我是否能够在src目录中打开2个终端并PORT=3000 node server.js从第一个终端执行,然后,在第二个终端运行时,在同一目录中PORT=3001 node server.js

其次,我想成立一个cron作业,运行批处理作业,所以我想打电话node src/file1.jsnode src/file2.js从我的cron作业.由于这些文件将驻留在同一目录中,我是否需要拥有源代码的单独副本才能运行2个单独的作业,或者我可以从同一目录中执行此操作并且只有一个源副本?

通常,对于每个单独的节点进程,我们从同一文件或不同文件的目录运行,我是否需要从源代码的不同副本运行它,或者我可以使用我的代码的一个副本并运行来自不同终端或cron作业的多个节点进程?

node.js

2
推荐指数
1
解决办法
1782
查看次数

将 Avro 架构保存到 Confluence Schema-Registry

我正在尝试使用 Postman 向注册表写入一个非常简单的模式,并且一直很难让它注册。只是注册一个简单的模式真的这么复杂吗?这只是整个过程的第一步,还是我在这里遗漏了一些东西?我正在使用的架构如下:

    {
"schema":{
  "type" : "record",
  "name" : "User",
  "namespace" : "com.temp.avro.model",
  "fields" : [ {
    "name" : "_id",
    "type" : "string"
  }, {
    "name" : "updatedDate",
    "type":"long",
    "logicalType":"timestamp-millis"
  }, {
    "name" : "createdDate",
    "type":"long",
    "logicalType":"timestamp-millis"
  }, {
    "name" : "applicationId",
    "type": ["null", "string"],
    "default": null
  },{
    "name" : "country",
    "type" : "string"
  }, {
    "name" : "bank",
    "type" : "string"
  }]
}
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Internal Server Error com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT …
Run Code Online (Sandbox Code Playgroud)

avro confluent-schema-registry confluent-platform

2
推荐指数
1
解决办法
1404
查看次数