yedf2
yedf2
没太明白你的问题,能否给个复现你问题的例子代码?放在github上某个仓库里?
你跟踪调试一下呢?这个我没遇见过,对mongo不是很熟
you are welcomed to PR
说明一下,dtm和seata有很大不同,dtm一开始就支持HTTP/gRPC这类对云原生友好的协议,dtm本身完全不需要注册中心。因此dtm可以很好的与K8S结合在一起,把dtm当做一个普通的HTTP/gRPC服务进行部署,设定副本数就具备了高可用。 dtm同时也支持微服务协议,例如go-zero,kratos,dapr,以及其他的,对这些微服务协议的支持都在驱动层完成。这些微服务协议支持哪些注册中心,那么dtm就直接支持,直接使用。业务使用时,只需要加载相关的驱动即可。
那么这就相当于让dtm多支持一种微服务协议,过程是,写好了dtmdriver-微服务 驱动之后,提一个PR(一行代码,加载驱动)到dtm,这样就行了。 参考go-zero和kratos等驱动是如何编写的
你再想想,你业务的代码能否跟微服务框架无关?能否今天用你自研的微服务框架,改天用另一个框架go-zero,然后都不需要重新编译? dtm要支持一个新的微服务协议,一行代码不改,不重新编译,那么新的微服务协议的逻辑,怎么进入dtm呢?
go-zero - etcd 跟 kratos-etcd是不一样的,无法一个dtmdriver-etcd同时支持go-zero和kratos
帮忙把这个修改提个pr过来呗,感谢哈
能给一下堆栈吗?按道理这些异常都会在外层处理,而不会直接崩溃
For most cache system, they are eventual consistency, not strong consistency. In most cases, performance is the most important Performance of strong consistency is lower than eventual consistency