java - 24/7 全天候运行 Java 服务器应用程序以及所有那些著名的在线实时应用程序背后的 secret

标签 java android apache sockets

我目前正在构建一个关于 VOIP/随机聊天的应用程序,类似于 skype 或 chatroullet。我的问题是对此的扩展

https://stackoverflow.com/questions/11384155/running-java-server-application-24-7-not-on-local-machine

我一直在试验和使用 TCP/UDP 套接字,现在我有能力构建 VOIP/即时聊天应用程序。但是您可能已经知道,为了在客户端到客户端或客户端到服务器之间传输数据,服务器应用程序必须打开电源(换句话说,在线)并且可以被客户端应用程序访问。问题是,我不是一个人生活,而是和家人一起生活,我不能简单地使用我的一台电脑来 24/7 全天候运行我的服务器应用程序,这主要是因为电费和我对相关知识的缺乏网络让我担心安全问题,因为我必须在我当前的路由器上进行一些配置/端口转发,以使本地网络之外的其他用户可以访问该协议(protocol)。所以我最大的问题是,人们或开发人员通常如何处理这种情况?他们只是使用自己的计算机来运行服务器应用程序吗?或者他们购买了一台外部机器来运行服务器应用程序

===========================================

补充问题:

TCP/UDP套接字是制作MMO、VOIP、即时聊天程序等应用程序的唯一途径吗?

最佳答案

我看到您的主题在上一个线程中已关闭。我认为此类问题与 stackoverflow 无关。

但是,我想让您大致了解一下我们大多数拥有/制作 Java Web 应用程序的人正在发生的事情。我曾经work在数据中心工作了一年半。 Java 应用程序有点难以上线,因为它们需要很多数据中心都不愿意投入时间和支持的资源。除此之外,它们几乎与普通的 PHP 应用程序一样简单。

您将需要标准选项,例如托管专用服务器VPS云虚拟机,或者共享 tomcat/应用服务器 托管。

Colocation 是您将自己购买并配置的服务器放置在数据中心的地方,您拥有服务器的完全所有权,除非您允许,否则任何人都不能触摸它。您付费将服务器放入数据中心,并负责服务器内发生的任何事情,包括操作系统补丁。

通常数据中心的服务器(由于大小限制)进来rack units . 1U 指的是 1 个机架空间,通常这相当于一台 PC,虽然服务器更强大。在新加坡,每 U 的费用为 SG$200。

专用服务器 是您从数据中心租用服务器的地方。服务器由数据中心管理,可以像您想要的那样强大。操作系统更新、安装、服务保证由数据中心提供。

VPS 拥有服务器资源的一小部分,但在大多数情况下您没有对服务器的“root”访问权限是许多挑战。

Cloud 是整个操作系统的虚拟化。如果这是 Linux,您将拥有对它的 root 访问权限。由于它的可扩展性,我们中的许多人现在都选择了这个选项。一些数据中心可能会使用流行的虚拟化管理程序,如 VMware ESXi、Microsoft Hyper V。

上面的列表是从最贵到最便宜的。当然,这取决于您所在的位置和服务提供商。

我认识的几乎没有人试图在家里安装一台运行中的服务器,这本身就是火灾隐患,您不知道什么时候会断电,标准的专用带宽同样昂贵。

在我看来,使用数据中心托管会更加经济高效且更安全。

编辑: TCP/UDP套接字是制作MMO、VOIP和即时聊天程序等应用程序的唯一途径吗?

您是否查看过 HTML 5 Web Sockets 或任何基于 AJAX 的框架?

关于java - 24/7 全天候运行 Java 服务器应用程序以及所有那些著名的在线实时应用程序背后的 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11518989/

相关文章:

java - 使引用不可变?

Php - 获取 php 脚本后的路径

java - 如何从头到尾逐渐显示一个字符串(可见性)?

java - 正确分隔缓冲区中的字符串

php - 如何查看打开了多少 MySQL 连接?

java - 正确的包装

java - Spring-boot:JUnit 测试 ApplicationContext 加载失败

java - 如何使用selenium(JAVA)按列名称和行索引自动单击表格单元格中的链接

android - 尝试从原始文件夹(VideoView)播放视频

android - 有没有办法在 iOS 版本的 MPAndroidChart 框架中处理手势结束(触摸)?