现在,我们理解同步和异步调用调用之间的差异。常熟做网页更复杂的信息如矢量图形、动画、视频、声频等多媒体档案则需要插件程序来运行,同样地它们亦需要标示语言移植在网站内。常熟做网页的目的就是产生网站。简单的信息如文字,图片(GIFs, JPEGs,PNGs)和表格,都可以通过使超言、可扩展超文本标记语言等标示语言放置到网站页面上。常熟网页设计要能充分吸引访问者的注意力,让访问者产生视觉上的愉悦感。因此在网页创作的时候就必须将网站的整体设计与网页设计的相关原理紧密结合起来。为什么我们应该理解他们?答案可伸缩性他们。如果过度使用同步调用,或不当使用时系统会造成过度的负担,防止其扩大。让我们继续使用的查询EXEC例如,试图执行一个用户查询。如果由于以下原因,即:(1)监测是非常重要的,(2)监测方法运行速度非常快,(3)最糟糕的情况,但速度较慢的用户的查询,我们实现了两个同步监控的方法调用。由于这些原因,虽然出发点是好的,但他们错了。正如前面提到的,虽然监测是非常重要的,但不是重要的,返回给用户的查询结果。当在运行时监控方法的监控数据库可以运行速度非常快,但是当发生硬件故障时,或者当被监控的数据库不能访问,会发生什么?这样一来,监控查询将被堆放,等待超时。
这也意味着用户的查询将被阻塞,等待监视查询完成,从而导致用户查询的累积。当用户查询速度减慢或暂时停止等待超时时,它仍将占用用户数据库的数据库连接,应用服务器上执行的线程仍将占用服务器上的内存。随着越来越多的用户线程开始停止,在等待其监视调用过期时,可能会耗尽与用户数据的连接数,从而无法再将来自其他非监视类的查询连接到用户数据库。应用服务器上的线程需要将数据写回硬盘以释放内存,这将导致服务器上的内存交换。此切换会减慢所有处理速度,并可能导致应用服务器的TCP堆栈达到上限,从而导致拒绝后续连接。最后,新的用户请求将不会被处理,用户将不得不等待浏览器或应用程序超时。实际上,您的应用程序或平台已经停止工作。如您所见,无论使用同步调用还是异步调用,一个小小的疏忽很容易导致一系列坏事件。这个场景最好的一点是隐藏了问题的根本原因。由于我们是一步一步地讨论这些事件,所以比较容易理解这个问题,但是如果系统的症状是系统的有人网页开始变慢,那么在接下来的15分钟内情况就变得越来越严重,直到整个系统最终停止运行,诊断这个问题很困难。也许你有足够的监控信息来帮助你诊断这些类型的问题,但是当你的网站宕机而你急于把它送回服务的时候,知道这些事件的真相是很有压力的。
方法调用通常以同步方式实现,尽管不当使用同步调用或过度使用会导致问题。为什么会这样?答案是同步调用比异步调用简单。您可以添加,等等,同步调用比较容易,但通常情况下,我们的一些方法需要调用其他方法才能成功完成。