Caching 如何模拟特定端口号的慢速网络条件
在不同操作系统上模拟慢速网络条件的工具或设置上有几个问题和答案,如Caching 如何模拟特定端口号的慢速网络条件,caching,web-applications,network-programming,database-connection,simulation,Caching,Web Applications,Network Programming,Database Connection,Simulation,在不同操作系统上模拟慢速网络条件的工具或设置上有几个问题和答案,如 不幸的是,答案没有提到我的案例的解决方案,所以它不是多余的或重复的 我正在使用Redis缓存和MySQL数据库开发一个web应用程序(本地,在macOS上使用Node.js/Express,但这并不重要) 为了在本地机器上进行一些(性能)测试,我想在该应用程序上加载(例如使用ab或JMeter)。显然,因为Redis缓存和MySQL数据库与web应用程序运行在同一台机器上,所以我在这三个组件之间有一个一流的网络连接(如:
ab
或JMeter
)。显然,因为Redis缓存和MySQL数据库与web应用程序运行在同一台机器上,所以我在这三个组件之间有一个一流的网络连接(如:none)
我希望通过将虚拟“连接”降级到Redis和MySQL(但每个连接具有不同的延迟和带宽设置),模拟这些组件之间不同的网络连接,就像在具有多台服务器的生产设置中一样。连接可以通过端口号来区分,但不能通过主机名来区分(这三种连接都是localhost
)
如何为同一台机器上的特定端口号模拟不同的网络连接条件?这可能会帮助您:
实际上,您要问的是或多或少的QoS功能
但是。。。在我看来,这不是一种非常有效的测试网络应用程序的方法。首先,我更喜欢模拟应用程序中的网络接口。通过这种方式,您可以更精确地控制所有类型的超时、停机、连接中断和同步 “这不是一种非常有效的测试网络应用程序的方法”-我知道。我只是想了解一下,比较一下缓存逻辑的一些策略。“模拟应用程序中的网络接口”-是的,但是我需要在代码中实现所有类型的网络逻辑(超时、延迟、丢弃的数据包)。我想在我的代码之外配置该代码,因为我在生产设置中也不需要该代码。“实际上,你要问的是或多或少的QoS功能。”没错,我想要一种简单的方法来指定QoS特征(与网络相关)如果将Redis缓存和MySQL数据存储“包装”到Docker容器中提供了一个解决方案,那么容器之间的网络条件可以设置还是降级这也可能是有效的。然后问题转移到“在哪里/如何指定这些设置?”