首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展基于TCP/IP的系统并确保高可用性

扩展基于TCP/IP的系统并确保高可用性
EN

Stack Overflow用户
提问于 2012-01-16 10:23:30
回答 1查看 2.1K关注 0票数 2

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

  1. 如何扩展基于tcp/ip的组件。此组件部署在服务器上,并侦听端口。将来,如果有更多来自C++系统的数据,那么我们应该能够扩展这个java组件。
  2. 保安呢。我可以做的一件事是在安全套接字上使用这种通信,或者可能获得加密的数据(我可以在这里使用任何特定的加密??)。还有其他办法来照顾安全吗?
  3. 还需要满足高可用性的要求。我该怎么处理呢?我怎么可能在这里有冗余呢?

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

EN

回答 1

Stack Overflow用户

发布于 2012-01-16 11:11:37

如何扩展基于tcp/ip的组件。此组件部署在服务器上,并侦听端口。将来,如果有更多来自C++系统的数据,那么我们应该能够扩展这个java组件。

您通常使用网络负载均衡器在多个服务器上扩展这类服务。负载均衡器可以使用各种算法分配负载,例如:

  • CPU负载(通常用snmp测量)
  • 客户端ip地址(如果您在将客户端映射到服务时需要持久化)
  • 活动套接字数

看看HAProxy的一个流行的开源负载均衡器。F5有最流行的商业负载平衡器解决方案.

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

  • 如前所述,SSL是一种选择,但如果您在执行客户服务的同一硬件上加密,请理解这对您的服务有很大的影响。其中一种选择是使用在硬件中实现SSL的商业负载均衡器;然后,负载均衡器将未加密的套接字转发到TCP服务场。
  • 在某些情况下,您可以使用IPSec网络级加密;通常,这是另一种网络硬件解决方案.通常,客户端将下载驻留在其PC上的IPSec应用程序.然后,他们将连接到您的IPSec服务器,该服务器在客户端和IPSec终结点之间进行加密。
  • 带端口转发的SSH隧道(低技术解决方案)
  • 作为一种未来的技术,tcpcrypt看起来很有趣,但我不知道它现在有多成熟。

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

这在很大程度上取决于高可用性意味着什么,以及您需要什么样的恢复时间。在高层次上,您有几种选择:

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

要做任何类型的HA,您可能想要聘请一位具有实现这些服务的可靠记录的顾问(如果您没有这种内部资源)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8878635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档