我有一个带有嵌入式服务列表的模型:
public class Project
{
public ObjectId Id { get; set; }
public List<Service> Services { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和
public class Service
{
public int Id { get; set; }
public MachineInfo Info { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想将与projectId和serviceId匹配的Info属性修改为列表的项目.对于旧驱动程序,它是:
var result = collection.Update(
Query.And(
Query.EQ("_id", projectId),
Query.ElemMatch("Services", Query.EQ("Id", serviceId))
),
var update = Update.Set("Services.$.Info", newInfo);
Collection.Update(query, update);
Run Code Online (Sandbox Code Playgroud)
但是使用新驱动程序,我无法使用位置运算符'$':
var filter = Builders<Project>.Filter.And(Builders<Project>.Filter.Eq(x => x.Id, projectId),
Builders<Project>.Filter.ElemMatch(x => x.Services, x => x.Id == serviceId));
var update = Builders<Project>.Update.Set(x => …Run Code Online (Sandbox Code Playgroud) 我使用 helm 部署了 pulsar,但没有激活 tls。现在我想使用 nginx 入口来公开它,而不是第一次使用 tls。它不起作用,我在客户端得到这个:
Got exception TooLongFrameException : Adjusted frame length exceeds 5253120: 1213486164 - discarded
Run Code Online (Sandbox Code Playgroud)
是否缺少特定注释?
第二次,我想使用 ssl 证书以安全的方式公开它。Ingress 可以与 pulsar+ssl 协议一起使用吗?我还需要具体注释吗?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: pulsar
namespace: default
spec:
rules:
- host: pulsar.myurl.com
http:
paths:
- backend:
serviceName: pulsar-proxy
servicePort: 6650
tls:
- hosts:
- pulsar.myurl.com
secretName: pulsar.myurl.com.crt
Run Code Online (Sandbox Code Playgroud)