Questions tagged «server»

它指的是客户端-服务器模型,其中资源或服务的提供者称为服务器。

7
微服务系统架构如何避免网络瓶颈?
我已经阅读了很多有关服务器应用程序的微服务架构的信息,并且一直想知道与整体式架构相比,内部网络的使用是不是瓶颈或明显的劣势。 为了精确起见,以下是我对这两个术语的解释: Monolith体系结构:一个用一种语言处理所有功能,数据等的应用程序。负载平衡器将最终用户的请求分布在多台计算机上,每台计算机都运行我们应用程序的一个实例。 微服务体系结构:许多应用程序(微服务)处理一小部分功能和数据。每个微服务都公开通过网络访问的公共API(与同一机器上的进程间通信或共享内存相反)。API调用主要在服务器上进行搜索以生成页面,尽管其中一些工作可能是由客户端查询各个微服务来完成的。 用我天真的想象力,似乎微服务体系结构使用的网络通信速度较慢,而不是同一台计算机(内存和磁盘)上的资源更快。如何确保通过内部网络进行API查询不会减慢整体响应时间?

3
我是否应该使用HTTP状态代码来描述应用程序级别的事件
我处理过的几台服务器将返回HTTP 200,以请求客户端应认为失败的请求,其中的内容为“ success:false”。 在我看来,这似乎不是HTTP代码的正确实现,尤其是在身份验证失败的情况下。我已经很简洁地阅读了HTTP错误代码,其中“ 4xx”指示在更改之前不应该再次发出请求,而“ 5xx”指示该请求可能有效或无效,可以重试,但未成功。在这种情况下,200:登录失败,或200:找不到该文件,或200:缺少参数x,这肯定是错误的。 另一方面,我可以看到有人争论说“ 4xx”应仅表示请求的结构性问题。因此,这很适合返回200:错误的用户名/密码,而不是未经授权的401,因为允许客户端进行请求,但是恰好是错误的。这个论点可以概括为:如果服务器能够处理请求并做出确定,则响应代码应为200,并且由客户端检查主体以获取更多信息。 基本上,这似乎是一个优先事项。但这并不令人满意,因此,我想知道,如果有人有理由说明这些范例中的任何一个更为正确。

6
许多小请求与几个大请求(API设计)
我目前正在与一个组织一起从事以下项目: 客户端 -通过REST API从主服务器获取数据。 服务器 -通过第三方API向其他各种服务器请求数据 第三方API-无法控制的向服务器提供数据的服务(Reddit,Hackernews,Quora等) 出于争论的目的,假设客户端首先需要每个第三方API的项目列表。从该列表中,将选择一个项目,此时客户需要查看该项目的全部内容以及对该项目的响应(即评论)。我试图在三个选项之间做出选择: 点菜 用这种方法,我的服务器上将有3个单独的端点:一个用于获取项目列表,一个用于获取项目的主要内容,以及一个用于获取项目的响应。 优点:我从来没有发出比我需要更多的请求,请求应该很小,因此通常它们应该更快。 缺点:我必须提出很多要求。从列表中选择一个项目后,用户可能必须先等待才能看到主要内容,然后再等待更长的时间才能看到响应 服务器端缓存 在此请求中,我将对服务器进行一次调用以“获取”所有源的所有数据。然后,数据将被缓存在服务器上。然后,客户端将具有与以前相同的REST终结点,但是在两次调用之间不会有太多等待,因为我的服务器已经拥有了数据,只需要将其提供给客户端即可。 优点:仍然易于在客户端实现,但没有延迟问题 缺点:更多涉及服务器端,第一次调用可能要花很长时间。 客户端缓存 除了客户端只向服务器发出一个请求外,此方案与上一个相似:将所有数据提供给我。从这里开始,客户有责任保存数据并正确使用它们。 优点:易于服务器实施,在首次通话后非常快速 缺点:第一次调用将非常缓慢,客户端实现更为复杂 我不确定哪种方法是最好的,或者不确定是否缺少明显的解决方案。任何建议将不胜感激!


5
您是否应该始终为网站的服务器端编程?
我即将开始为朋友创建一个音乐项目网站。现在它应该很简单:没有动态内容(游览日期等),只不过是一些嵌入式样本歌曲或SoundCloud链接。我不希望在响应式网格上使用除香草JavaScript和Bootstrap或Foundation之外的任何东西。 够了吗?我可以简单地将HTML,CSS和JS文件上传到主机并完成操作,还是应该花时间在Node或PHP中对后端服务器进行编程?


3
Node.js是否真的增加了可伸缩性?
我一直在阅读有关C10K问题的信息,特别值得注意的是引用异步服务器I / O的部分。http://www.kegel.com/c10k.html#aio 我相信,这可以通过允许线程处理用户请求,同时依靠I / O中断(事件)通知线程已完成的工作,而不是由线程负责完成工作来总结Node.js在服务器上的工作。完整的CPU工作。线程可以继续执行其他操作(非阻塞),并在完成工作时得到通知(例如,找到文件或压缩视频)。 因此,这意味着套接字更“可用”线程,因此服务器上的用户也可以使用该线程。 然后我发现了这一点:http : //teddziuba.com/2011/10/straight-talk-on-event-loops.html 这里的作者声称,尽管事件驱动框架(中断线程)可以释放线程,但实际上并没有减少CPU要做的工作量!这里的基本原理是,例如,如果用户请求压缩他们上传的视频,则CPU仍然必须实际执行此工作,并且在执行该操作时将处于阻塞状态(为简单起见,请在此处忘记并行性-除非您更了解!)。 我是一个简单的编码器,不是服务器管理员或类似的人。我只是想知道:Node.js是来自“云计算”之神的礼物还是全是热销的东西,实际上不会通过改善可扩展性来节省公司的时间和/或金钱吗? 非常感谢。

2
如何编写HTTP服务器?
如标题所示,我想编写一个HTTP服务器。我的问题是,我该怎么做?我知道这听起来很笼统,而且太“高级”,但是有一种疯狂的方法。我认为,这个问题的答案应该与语言无关。含义,无论我使用哪种语言(例如C,C ++,Java等),答案都应该相同。我对这应该如何工作有一个大致的了解: 打开端口80上的套接字。 等待客户提出请求。 阅读请求(即此人想要页面“ contact-us.html”)。 查找并阅读“ contact-us.html”。 发送html标头,然后发送“ contact-us.html”的内容 完成 就像我说的那样,我相信这是过程,但是我不确定100%。这使我想到了问题的核心。一个人如何或在哪里找到此信息? 如果我不想只写HTTP服务器怎么办,如果我不想写FTP服务器,聊天服务器,图像查看器等怎么办?一个人如何找到创建可用的HTTP服务器所需的确切步骤/过程? 一位同事告诉我有关html标头的信息,所以没有他我再也不会知道这一点。他还说了一些有关将每个请求移交给新线程的内容。是否有一些有关工作原理的大书?是否有使用HTTP服务器所需的一些手册? 我尝试谷歌搜索“ HTTP服务器如何工作”,但我只能找到针对普通百姓的答案,而不是针对希望对HTTP服务器进行编程的人。

2
将请求发送到服务器并等待响应互联网连接丢失时该怎么办?
我正在向服务器发送大量数据。现在,当我发送数据并等待服务器响应时,突然我的android设备失去了互联网连接。 因此,我过去经常做的是显示一个连接丢失的警告对话框,但是在服务器端,数据已被处理,并且已在任何URL的某个位置进行了更新。但是我的Android手机不知道这一点,因为它从未得到响应。如何解决。是否可以在服务器端还是在android本身上完成?服务器如何知道Android手机不会监听响应?这可能是客户端-服务器通信优化的观点。

3
安全的iPhone应用程序↔服务器通信
在我的iOS应用与其服务器组件之间实现私人通信的最佳方法是什么?将一个不变的“秘密密钥”烘焙到应用程序源中是否足够,还是我需要以某种方式动态设置此类“握手”密钥的生成? 服务器本身无法访问任何敏感数据,因此,即使用户访问了一些专用端点,也无法将它们带到任何地方,但我只想对公众隐藏这些端点。基本上,我想忽略所有命中特定路由的请求,除非它们来自我的iOS应用。 如果重要的话,服务器组件可在RoR上运行。

5
负载测试:每秒如何生成请求?
我有一个运行在Zeroc-ICE上的服务器组件。当我想对其进行负载测试时,我认为使用并行库创建多个请求即可。但这最终以这种方式结束。从C#使用Parallel(Parallel.For)库显然更容易,但似乎并不能完全在同一瞬间并行生成所有内容。因此,它不是每秒创建N个请求的定义。我该怎么办?我想任何想先进行负载测试的人都会考虑这一点。 实际每秒实际创建N个请求的有效方法是什么? 另一个神话是关于并行编程。如果您通常在C#或.Net中使用并行编程模式,请告诉我们。想象一下,我有5个流程。如何将同时启动所有五个过程。这对我的资源消耗意味着什么?我已经尝试阅读了网上提供的许多材料,但是我收到的问题越来越多,而不仅仅是它们作为我的问题的答案。 我使用Parallel.For并创建了N个线程并测量了时间。然后,我使用Task.Factory.start尝试了同样的事情来枚举任务。测量的时间不同。那么使用它们之间到底有什么不同?什么时候应该使用相应的类?究竟是出于什么目的?我们经常有很多财富,但仅仅是我们不知道如何区分彼此。对我来说就是这种情况,无法找到为什么我不应该使用另一个。 我使用秒表类来衡量这些时间是最好的。在我对组件进行负载测试的情况下,测量响应时间的方式将是什么。秒表似乎对我来说是最好的解决方案。欢迎任何意见。 ps:有许多针对Web应用程序的负载测试工具。我的是服务器组件的自定义案例。我的问题更多是与每秒创建N个线程有关。 欢迎所有意见。只是不要以为它不是编程问题。当然是。任何想亲自进行QE知识的程序员,首先要亲自了解产品的性能,都应该振作起来。

5
关于Web开发角色的服务器,我需要了解什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我知道这听起来可能有点含糊,所以我将尝试进一步解释... 在从事自营开发人员多年之后,我现在正在寻找商业Web开发人员。我对服务器和托管的唯一经验是通过FTP上传并使用CPanel / WHM。我要使用的角色是Web开发PHP,MySQL,HTML,CSS类型角色,但是在最近的采访中,有人问我有关在服务器上进行设置的问题,我不知道在说什么...这不理想! 在不了解更多信息的情况下,很难解释我到底想学什么,但是基本上,这只是我作为Web开发人员应该知道的服务器元素?如果您是Web开发人员,除了上载文件之外,您还可以处理服务器吗?Web开发团队是否经常设置诸如Subversion(SVN)和版本控制系统之类的东西,这就是他们所说的吗?

3
在没有客户端请求的情况下将数据从服务器推送到客户端?
我在浏览Stack Exchange时注意到有动态通知,例如“ 3条新消息,单击以显示”。我要对这种动态更新进行说明。 假设我要创建一个包含10条近期新闻的轮播/幻灯片。我希望这个轮播在队列中每小时更新一次。较新的文章会将较旧的文章排除在队列之外。解决方案就在我的头上。 用户登录到客户端。 客户端计算直到下一个小时标记的分钟数,并将计时器设置为在该小时执行。 在小时标记处,向服务器发送有关尚未出现在轮播中的任何新新闻文章的请求。 处理响应。 重置计时器。 这是可以接受的策略吗?我可以不依赖客户请求来实现此目标吗?换句话说,Stack Exchange如何实现其动态更新?
11 server  client 

3
微型与单片服务器架构
我们当前正在开发我们的新产品/项目,它是针对某些特定工业/服务企业的客户端-服务器应用程序。我们正在构建一个服务器(仅C语言和Linux),该服务器在带有Java前端的TCP之上运行自定义协议。我们大约有20%的人员从事编码工作,并且面临着必须在微型或单核内核体系结构之间进行选择的情况。 我知道Micro vs. Monolithic通常与内核体系结构有关,但是我们专门讨论服务器。 为什么要使用自定义服务器而不是现有服务器? 我们的UI需求非常重要且非常动态,因此基于Web / Web浏览器的解决方案不合适。 统计处理在客户端非常重要,因此,浏览器也无济于事。(当然,我们可以在服务器端进行处理,然后将处理后的数据传递给客户端,但这将意味着服务器上的大量负载和客户端资源的浪费)。 此外,利用至少三种技术(JS / HTML / CSS)来管理单个事件,就可以像在沙漠风暴中扫除房屋一样获得整个体验-您扫除n次,灰尘积聚n + 1次。 微型和整体服务器呢?你在说什么? 考虑以下(假设的)客户端请求: request-id: 123 request-service: HistoricDataSets request-message: Fetch all records upto the year 2010 收到此类请求后,服务器通常会这样做(为简单起见,我们忽略了诸如线程和派生之类的并发技术): 解析请求字符串 确定动作(HistoricDataSets LIMIT Year (2010)在我们的例子中为Fetch ) 与持久层(在我们的示例中为Oracle)交互并获取数据。 根据协议格式化数据。例如: response-id:123 成功:true 响应文本:DataSets 用这样格式化的数据响应客户端。 这就是我们所说的单片服务器(类似于单片内核,其中所有OS工作都在内核空间中完成)。 再次考虑到相同的请求,这一次是服务器(我们为简单起见,我们仅假设共享内存为IPC): 将请求放入Parser进程的共享内存 在Parser解析字符串,确定任务和指示Executioner执行任务的过程。 在Executioner然后将数据传递到Fomatter方法,该方法中,数据格式化为一个协议串后,返回到服务器。 服务器将其分派给客户端(响应)。 当然,相反的Parser,Executioner而且Formatter它可能是一个单一的,而是独立的进程。这就是我们所说的微型服务器(类似于微型内核,几乎不需要做任何事情)。服务器实际上只是在侦听和响应,而所有步骤都由不同的进程来处理。 …

2
无服务器架构如何管理数据库连接?
据说无服务器体系结构的主要优点是,此类程序不需要专用服务器即可连续运行。然后在请求上被调用,并在退出函数时停止。 这意味着无服务器程序必须快速启动才能响应。然后,它如何处理耗时的操作,例如数据库连接?它是否每次都连接到数据库,还是单独管理数据库连接以像服务器应用程序中那样进行功能调用?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.