扩展基于TCP/IP的系统并确保高可用性 我有一个基于TCP/IP的组件,它与一个基于C++的系统通信。事实上,它从该系统读取原始字节,然后在对象中封送这些原始字节并将其存储在数据库中。这个基于多线程tcp/ip的组件是java的,可以部署在双核或四核处理器上(不确定这对我的问题是否重要,但我给出了一个细节)。现在我有几个问题:

扩展基于TCP/IP的系统并确保高可用性 我有一个基于TCP/IP的组件,它与一个基于C++的系统通信。事实上,它从该系统读取原始字节,然后在对象中封送这些原始字节并将其存储在数据库中。这个基于多线程tcp/ip的组件是java的,可以部署在双核或四核处理器上(不确定这对我的问题是否重要,但我给出了一个细节)。现在我有几个问题:,tcp,scalability,distributed,high-availability,tcp-ip,Tcp,Scalability,Distributed,High Availability,Tcp Ip,如何扩展此基于tcp/ip的组件。此组件部署在服务器上,正在侦听端口。将来如果有更多的数据来自C++系统,我们应该能够扩展这个java组件。 那么安全呢。我可以做的一件事可能是在安全套接字上使用这种通信,或者可能获得加密数据(我可以在这里使用的任何特定加密??)。还有其他的安全措施吗 还需要满足高可用性的要求。我该怎么处理?我怎么可能在这里有多余的人 是的,我们正在研究产品的系统架构,因此,我想知道是否有经验的架构师或设计师可以帮助我 如何扩展此基于tcp/ip的组件。此组件部署在服务器上,正在

如何扩展此基于tcp/ip的组件。此组件部署在服务器上,正在侦听端口。将来如果有更多的数据来自C++系统,我们应该能够扩展这个java组件。
  • 那么安全呢。我可以做的一件事可能是在安全套接字上使用这种通信,或者可能获得加密数据(我可以在这里使用的任何特定加密??)。还有其他的安全措施吗

  • 还需要满足高可用性的要求。我该怎么处理?我怎么可能在这里有多余的人

  • 是的,我们正在研究产品的系统架构,因此,我想知道是否有经验的架构师或设计师可以帮助我

    如何扩展此基于tcp/ip的组件。此组件部署在服务器上,正在侦听端口。将来,如果有更多的数据在C++中出现,那么我们应该能够扩展这个java组件。 您通常使用网络负载平衡器跨多个服务器扩展此类服务。该负载平衡器可以使用多种算法分配负载,例如:

    • CPU负载(通常使用snmp测量)
    • 客户端ip地址(如果在将客户端映射到服务时需要持久性)
    • 活动套接字的数量
    请看一个流行的开源负载平衡器。拥有最流行的商用负载平衡器解决方案

    那么安全呢。我可以做的一件事可能是在安全套接字上使用这种通信,或者可能获得加密数据(我可以在这里使用的任何特定加密??)。还有其他的安全措施吗

    • 如前所述,SSL是一种选项,但请理解,如果您在执行客户服务的同一硬件上加密,则会对您的服务造成很大的性能影响。沿着这些路线的一个选择是使用在硬件中实现SSL的商业负载平衡器;然后,负载平衡器将未加密的套接字转发到您的TCP服务场
    • 在某些情况下,您可以使用网络级加密;通常,这是另一种网络硬件解决方案。通常,您的客户端将下载驻留在其PC上的IPSec应用程序。。。然后,他们连接到您的IPSec服务器,该服务器在他们的客户端和您的IPSec终止点之间进行加密
    • 带端口转发的隧道(低技术解决方案)
    • 作为一项未来的技术,它看起来很有趣,但我不确定它现在有多成熟
    还需要满足高可用性的要求。我该怎么处理?我怎么可能在这里有多余的人

    这在很大程度上取决于您所说的高可用性,以及您需要什么样的恢复时间。在较高级别上,您有几个选项:

    • 如果您不需要客户端到套接字映射持久性,那么基于DNS的HA可以工作;如果您使用DNS,您需要愿意接受典型的DNS A记录超时(通常人们不会低于~5分钟/300秒)。这还假设您找到了跨多个站点同步数据库的方法
    • 负载平衡器解决方案。同步后端数据库也存在同样的问题

    要进行任何类型的HA,您可能需要聘请一位在实施这些服务方面有着良好记录的顾问(如果您内部没有此类资源)。

    谢谢您如此详尽的回答,mike,这真的很有帮助。那么负载平衡器也会进行故障切换吗?我的意思是,对于HA,我认为负载平衡+故障切换是关键,对吗?还有一件事我忘了补充,那就是我们的数据库也有可伸缩性和HA需求?我们应该采取什么办法?水平缩放对DBs有意义吗?还有一个重要的疑问。。。。我是否正确理解HA更多的是配置和存在;在设计或编码过程中,我不需要关心什么?@aryann,负载平衡器可以支持HA配置,但这在很大程度上取决于您所说的高可用性。两个人可能需要HA提供一项服务,这对他们两人来说意味着截然不同的事情。至于DB HA,请咨询您的DB供应商;其中大多数都支持某种类型的多站点复制。最后,HA涉及设计、配置以及可能的软件需求。在我15年的网络生涯中,我见过很多糟糕的HA设计。。。这就是为什么我说:找一位医管局顾问,不要依赖那些不了解您的环境和要求的人的免费建议