小编Ond*_*cik的帖子

Docker服务在一段时间后停止通信

我有6个容器在docker swarm中运行.Kafka + Zookeeper,MongoDB,A,B,C和Interface.接口是public的主要访问点 - 只有这个容器发布端口 - 5683.接口容器在启动时连接到A,B和C. 我正在使用docker-compose文件+ docker堆栈部署,每个服务都有一个名称,用作接口的主机.一切都成功开始,工作正常.一段时间后(20分钟,1小时......),我无法提出接口请求.接口接收我的请求但应用程序丢失了与服务A,B,C或所有服务的连接.如果我重新启动接口,它可以重新连接到服务A,B,C.

我首先认为这是应用程序的问题,所以我在每个服务(接口,A,B,C)上公开了2个新端口,并与它们连接了探查器和调试器.应用程序正常运行,没有泄漏,没有阻塞的线程,正常工作并等待连接.调试器向我显示,当我向接口发出请求并且接口尝试请求服务A时,抛出了由对等异常重置的连接.

在调试期间,我发现了有趣的东西.我在服务启动时将调试器附加到接口,并且一段时间后调试器也断开连接.+我无法重新连接它,直到我向容器 - >应用程序发出请求.PRoblem - 握手失败.

我发现的另一个有趣的东西是我无法请求任何接口.所以我用wireshark来看看发生了什么事:SYN-ACK很好.然后应用程序发布一些数据和接口响应FIN,ACK.我假设当接口尝试请求服务A并且FIN连接时也会发生这种情况.接口,A,B和C的代码库与netty服务器相同.

最后,我不认为这是一个应用程序问题.为什么?我试图将容器部署为服务.我分别运行每个容器,发布每个端口并将服务端点设置为localhost.(不覆盖网络).它正在发挥作用.容器运行没有问题.+我一开始没有说,java应用程序(接口,A,B,C)在作为独立应用程序运行时运行没有问题 - 而不是在docker中运行.

你能帮我解决一下这个问题吗?为什么在覆盖网络的情况下docker正在关闭套接字?

我正在使用最新的码头工具.我也用过了.

netty docker docker-swarm

11
推荐指数
1
解决办法
3048
查看次数

为ASP.NET Core中的选项自定义JSON属性名称

从JSON文件加载配置时,我想使用其他属性名称进行配置。

public class MinioConfiguration
{
    [DataMember(Name = "MINIO_ENDPOINT")]
    public string Endpoint { get; set; }
    [DataMember(Name = "MINIO_ACCESS_KEY")]
    public string AccessKey { get; set; }
    [DataMember(Name = "MINIO_SECRET_KEY")]
    public string SecretKey { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

既不DataMember也不JsonProperty工作。有可能实现吗?

c# asp.net-core

9
推荐指数
3
解决办法
2177
查看次数

C#7 .NET Core中的元组和名称

使用C#7新的Tuple特性,我们应该能够通过它从类型派生的名称来访问字段.

public (double lat, double lng) GetLatLng(string address) { ... }

var ll = GetLatLng("some address"); 
Console.WriteLine($"Lat: {ll.lat}, Long: {ll.lng}");
Run Code Online (Sandbox Code Playgroud)

这在.NET Core中是不可能的.为什么?- > 仅适用于Item1; 项目2.不是.lat .lng.

谢谢

c# .net-core c#-7.0

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

CQRS,事件采购和扩展

很明显,基于这些模式的系统很容易扩展.但我想问你,究竟是怎么回事?关于可伸缩性我几乎没有问题:

  1. 如何扩展聚合?如果我要创建多个实例aggregate A,如何同步它们?如果其中一个实例处理该命令并创建一个事件,那么该事件应该传播到该agregate的每个实例?
  2. 不应该有一些业务逻辑存在要求的agregate实例吗?因此,如果我发出多个适用于aggregate A (ORDERS)并适用于某个特定订单的命令,则将它传递给同一个实例是有意义的.要么?

在本文中:https://initiate.andela.com/event-sourcing-and-cqrs-a-look-at-kafka-e0c1b90d17d8,他们正在使用Kafka进行分区.因此,用户管理服务 - 聚合被缩放,但仅订阅主题的特定分区,其包含特定用户的所有事件.

谢谢!

cqrs event-sourcing

7
推荐指数
2
解决办法
779
查看次数