我正在尝试了解微服务,但对服务编排和事件溯源(服务编排)之间哪种方法更好感到困惑。似乎很少有框架允许您使用事件溯源来构建您的应用程序。相反,似乎您必须自己构建整个框架,这非常困难。
此外,网络上关于实际从事微服务的公司的大多数讨论似乎都在使用 gRPC(或其他一些 rpc)和服务之间直接调用的编排,而不是使用 sagas/events 进行事件溯源。
实施微服务的最佳方式是什么?将 gRPC 与服务编排一起使用,还是实际尝试使用服务编排和异步事件来实现事件源系统?
我有一个架构如下
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 作为我的查询的一部分?
我想知道是否可以从同一目录运行多个节点进程,使用相同的文件或使用不同的文件.我正在运行的进程基本上会执行批处理作业,并且不会运行服务器,但我也想知道服务器情况.
假设我有以下结构
我有一个由两部分组成的问题.
我是否能够在src目录中打开2个终端并PORT=3000 node server.js从第一个终端执行,然后,在第二个终端运行时,在同一目录中PORT=3001 node server.js
其次,我想成立一个cron作业,运行批处理作业,所以我想打电话node src/file1.js和node src/file2.js从我的cron作业.由于这些文件将驻留在同一目录中,我是否需要拥有源代码的单独副本才能运行2个单独的作业,或者我可以从同一目录中执行此操作并且只有一个源副本?
通常,对于每个单独的节点进程,我们从同一文件或不同文件的目录运行,我是否需要从源代码的不同副本运行它,或者我可以使用我的代码的一个副本并运行来自不同终端或cron作业的多个节点进程?
我正在尝试使用 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)