问题标签 [resiliency]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jersey - 有没有办法使用 java SSE 客户端获取 Hystrix Stream
有什么方法可以获取 Hystrix 流(产生度量),因为它是服务器端事件流,因此无法使用普通的 http 客户端获取它。
我试图使用基于泽西岛的 SSE,但它无法这样做。
每当 hystrix 进行调用时,它会生成一些可以通过 servlet 访问的指标数据(示例 url 类似于:::/hystrix.stream)。
我想在特定时间捕获此流的响应。
有什么办法可以做到这一点?
谢谢你。
reactive-programming - 弹性微服务设计模式
在反应式编程中,弹性是通过复制、包含、隔离和委托来实现的。
两种著名的设计模式是带监控器和断路的隔板。这些仅仅是为了达到隔离和遏制吗?
最着名的微服务设计模式是什么,特别是那些提供弹性的设计模式?
database - 如何在本地集群上使用 Chaos Monkey
我的办公室里有一个集群用于测试目的。我有一个数据库,我想对这些测试机器进行各种“货币业务”,早在我想投入生产之前。
今天早上我压缩了 2-3 杯咖啡,试图弄清楚如何让“臭名昭著”的猿猴军队在我的本地机器上咀嚼我的神经。
在我阅读的所有地方,都看到了 AWS 的各种设置。
问题:是否有可能在我的本地集群上部署 Monkeys?或者猿猴军有没有其他的选择?
tomcat - 当容器中的tomcat下运行的servlet无法到达数据库容器时,它是否应该退出?
在我们的设置中,我们有两个容器
- 在 Linux 容器上运行的 Tomcat
- 在另一个 Linux 容器上运行的数据库
如果在 tomcat 下运行的 servlet 无法通过 hibernate 访问 DB 容器。重试后,我们应该在 Servlet 中调用 System.exit 吗?
database - 如何在崩溃期间测试数据库的性能?
我正在尝试测试我的数据库以防崩溃,即查看数据库在崩溃期间的行为。
我意识到这不是一件容易的事,因为在某个right
时间点崩溃数据库并不容易。例如,当数据库写入达到 70% 时,我想崩溃我的程序。
“死机”可能是不同的东西:例如,断电,或者硬盘被移除,或者网线被移除等等。
我正在研究rocksdb。
你能给我一些提示吗?
非常感谢,
apache-kafka - 在单台和多台机器上设置 Kafka 弹性(集群)
我在一台机器上设置了 1 个 Zookeeper 和 3 个 Kafka Broker(用于冗余)。我想知道在单台机器和网络中的多台机器上设置 Kafka 的最佳实践是什么。例如,如果我在一台机器上设置我应该设置多少个 Zookeeper、代理和分区。或者,如果我在多台机器上设置(N 台机器),那么我应该针对 N 设置多少个 zookeeper、brokers 和 partition。
reactjs - ReactJS 应用程序 - 弹性 VS 快速失败
我正在开发 React 应用程序,这是我用于组件的方法:我使用 PropTypes 验证验证我希望收到的道具,但我仍然分配默认值以避免它如果接收到的数据出现问题,则中断。
最近有人告诉我,我们不应该这样做,道具是我们对父级的期望,如果不遵守合同让组件中断。
哪种方法是正确的,优缺点是什么?
我的一些考虑作为思考的食物..
按照我最初的方法,在测试中,我明确测试传递给被测组件的一些无效数据的默认值,并期望仍然打印出有效的快照。测试不会因为一些错误的数据而失败,但我会打印出 PropTypes 验证警告(如果需要,可以将其转换为错误 - 我认为 - 或者在测试中将它们模拟出来)。
测试和实际应用程序中的这些警告比仅仅看到“无法从未定义中读取 'someProp'”或类似错误(并让 React 渲染循环中断)更简洁明了。propType 验证直接并清楚地告诉您您做错了什么(您将错误的类型作为 prop 传递,该 prop 完全丢失等)。
使用第二种方法,测试失败,因为应用程序中断。我认为只有在测试覆盖率真的很好(90/100%)的情况下,这才是一个好方法,否则这是一个风险——它可能会上线并在破坏产品声誉的边缘情况下崩溃。重构或需求更改经常发生,并且某些边缘情况可能最终会产生破坏应用程序的不需要的数据,并且在自动或手动测试中没有捕获到。
这意味着当应用程序运行时,由于某些错误数据,代码可能会在父组件中中断,并且整个应用程序停止工作,而在第一种情况下,应用程序是有弹性的,只是以受控方式显示一些空字段。
想法?
下面是一个简化的例子:
反应组件
测试
更新:
问题的主要焦点是是否为标有 isRequired 的道具分配默认值是否正确(而不是让它们的缺席破坏组件)
hystrix - Hystrix 中的依赖池比一个
我知道我们在 hystrix 中针对依赖项执行命令。假设依赖项作为 Web 服务端点 (REST) 公开。在我的例子中,依赖是一个服务器场(为提供高可用性而建立的服务器池)。我可以将一组依赖项传递给 Hystrix 而不是一个吗?我对 Hystrix 的假设是,它可以开始随机调用,但随着时间的推移,如果所有这些都用尽,则根据某些因素,即评估并断开电路(如果需要);(超时、线程池耗尽、错误等)。
rest - 在 Hystrix 中触发回退的自定义错误条件
从理解上看,Hystrix fallback 逻辑是在请求超时、线程池以 100% 容量运行或依赖抛出异常等特定条件发生时触发的。除了这 3 个因素之外,我是否可以添加更多也被视为失败的条件,例如任何特定的 HTTP 错误代码,如 413(有效负载太大)?
spring - 使用 Spring-Retry 时是否需要 @Recovery 方法?
我的问题是关于春季重试。假设我有一个简单的示例代码,其中我有一个服务层和控制器类。,
这是 testService 接口
这是服务的实现
控制器是
正如所见,@Retryble 在服务接口中。但是我还没有实现@Recover 方法。我的想法是因为我真的没有任何辅助数据库,如果数据库已关闭,则确实没有恢复选项,我没有添加 @Recovery 方法。相反,异常被控制器捕获并处理。
我的问题是:
- 上述方法是否错误。如果是这样,如何以正确的方式做到这一点?
- 是否总是需要有恢复方法?如果是这样,在数据库关闭且没有其他数据来源的情况下,将如何恢复。
在控制器中捕获异常并相应地处理它们是错误的吗?(有人告诉我,服务人员应该处理一些讨论中的所有异常)。
我所看到的任何地方都是某种恢复方法,但如果有的话,找不到具有适当恢复处理程序的可靠示例。