当前位置: 首页 > news >正文

北京天海网站建设公司电子商务网站域名

北京天海网站建设公司,电子商务网站域名,宠物网站开发背景,电子商务 网站建设说到 Netflix Hystrix 框架#xff0c;一定离不开 com.netflix.hystrix.HystrixCommand#xff0c;这个类是 Netflix 开源的 Hystrix 框架中的一个关键类#xff0c;用于实现服务的容错和熔断功能。它主要用于将远程服务调用封装成一个独立的命令对象#xff0c;以便于进行…说到 Netflix Hystrix 框架一定离不开 com.netflix.hystrix.HystrixCommand这个类是 Netflix 开源的 Hystrix 框架中的一个关键类用于实现服务的容错和熔断功能。它主要用于将远程服务调用封装成一个独立的命令对象以便于进行容错处理和监控。 一、核心源码 源码中有几个关键方法具体方法以及注释看下面的代码 public abstract class HystrixCommand R extends AbstractCommand R implements HystrixExecutable R , HystrixInvokableInfo R , HystrixObservable R {/*** 用于【同步】执行命令*/public R execute() {try {return queue().get();}catch(Exception e) {throw Exceptions.sneakyThrow(decomposeException(e));}}/*** 用于【异步】执行命令。*/public Future R queue() {return f;}/*** execute() 或 queue()失败的时候返回兜底数据*/protected R getFallback() {throw new UnsupportedOperationException(No fallback available.);}/*** execute() 和 queue() 被调用的时候执行的方法*/protected abstract R run() throws Exception; }二、HystrixCommand 的主要功能及使用场景 容错处理HystrixCommand 通过封装远程服务调用可以在服务调用失败或超时时执行降级逻辑避免整个系统的级联故障。它提供了一系列的容错策略如超时设置、线程池隔离、断路器等可以根据具体的业务需求进行配置。 熔断机制HystrixCommand 通过断路器的机制可以在服务调用失败率超过一定阈值时自动熔断避免对不可用的服务进行无效的调用。熔断后HystrixCommand 会快速失败并执行预设的降级逻辑以减少对不可用服务的依赖。 监控和统计HystrixCommand 提供了丰富的监控和统计功能可以实时监控服务调用的成功率、失败率、响应时间等指标并提供了可视化的仪表盘。这些统计数据可以帮助开发人员了解服务的健康状况及时发现和解决潜在的问题。 HystrixCommand 的使用场景主要包括 微服务架构在微服务架构中服务之间的调用是不可避免的。使用 HystrixCommand 可以有效地处理服务调用的容错和熔断问题提高系统的可用性和稳定性。 高并发场景在高并发的场景下如果某个服务出现故障或响应缓慢会导致整个系统的性能下降。使用 HystrixCommand 可以通过设置超时时间和线程池隔离等策略避免因单个服务的故障而影响整个系统的性能。 服务降级在一些特殊情况下为了保证核心功能的可用性可能需要对某些非关键的功能进行降级处理。使用 HystrixCommand 可以方便地实现服务的降级逻辑保证核心功能的稳定性。 三、业务场景 多个独立的业务逻辑场景非常适合使用 Netflix Hystrix 框架它能并发执行所有的业务逻辑帮我们提升系统的访问速度。 也能方便的监控每个业务逻辑执行时发生的异常、超时等异常也很方便配置各个业务逻辑的兜底fallback等。 具体的业务场景如多个独立的弹窗、多个独立的展示数据。这种业务场景都是一个页面位置中可能出现多种业务。 四、应用代码示例 4.1 抽象类 定制化自己的 AbstractCustomerCommand 类这个类能够实现所有业务逻辑通用的逻辑。 也能实现对每个业务逻辑发生 reject、异常、超时、熔断的时候的监控和日志。 public abstract class AbstractCustomerCommandR extends HystrixCommandR {private final static Logger logger LoggerFactory.getLogger(AbstractCustomerCommand.class);public String key;protected AbstractSecondScreenCommand(CommandThreadEnum commandThreadEnum) {}Overrideprotected R run() throws Exception {long t1 System.currentTimeMillis();R r null;try {r doExecute(t1);} finally {long cost System.currentTimeMillis() - t1;}return r;}Overrideprotected R getFallback() {boolean isRejected isResponseRejected();boolean isException isFailedExecution();boolean isTimeout isResponseTimedOut();boolean isCircuit isCircuitBreakerOpen();// 添加异常情况的日志和监控logger.error({} fallback happened,isRejected:{},isException:{},isTimeout:{},isCircuit:{},key, isRejected, isException, isTimeout, isCircuit);Throwable exception getExecutionException();if (exception ! null) {logger.error({} fallback, key, exception);}return null;}protected abstract R doExecute(long start);/*所有业务逻辑统一逻辑*/public void commonLogic() {} }4.2 具体的业务场景类 Slf4j public class Case1Command extends AbstractCustomerCommandUser {// 构造函数public LowPriceAreaCommand() {}Overrideprotected DisplayCard doExecute(long start) {// 具体业务逻辑} } 4.3 执行 Case1Command caseCommand new Case1Command(); // 异步执行 caseCommand.queue();四、总结 com.netflix.hystrix.HystrixCommand 是 Netflix Hystrix 框架中的核心类用于实现服务的容错和熔断功能。 它通过封装远程服务调用提供容错处理、熔断机制和监控统计等功能适用于微服务架构和高并发场景。通过使用 HystrixCommand可以提高系统的可用性、稳定性和性能。
http://www.yutouwan.com/news/183153/

相关文章:

  • xd软件可做网站吗游戏租号网站开发
  • 展示网站源码下载校园淘宝店网站开发
  • 建网站报价新站seo优化快速上排名
  • 建设网站免费模板做个门户网站多少钱
  • 国外刺绣图案设计网站wordpress 生成pdf
  • 如何提升网站alexa排名王野天和葛优
  • 做个营销型网站wordpress标签管理系统
  • 广东网站设计程序员免费自学网站
  • 深圳家居网站建设公司新乡网站开发的公司电话
  • 苏州网站建设 江苏千渡php网站分类目录源码
  • 专门做门业的网站万网企业网站建设
  • 什么是网页站点工程承包平台
  • 网站标题特效昆明网站搜索优化
  • 网站建设策划书封面wordpress仪表盘修改
  • 做购物车的网站学校网站开发与设计
  • 珠海网站建站模板济南全网关键词排名公司
  • angular2做的网站有网站收录入口
  • 中国科技发展成果网站优化内容有哪些
  • 网站制作交易流程安徽工程建设信息网新网站
  • 网站开发详细流程图wordpress豆瓣电影图书分享插件
  • 网页期末大作业上海网站seo快速排名
  • 平面设计资料网站个人型网站开站费用
  • 怎么自己做微网站吗wordpress美化
  • 网站建设要准备什么软件移动互联网企业有哪些
  • 中色冶金建设有限公司网站大连公司网站建设
  • 大良招聘网站建设互联网行业 英文
  • 网站建设起到计划和指导作用软件开发工程师就业企业
  • 用什么网站做ppt做第三方库网站
  • 网站建设费是什么费用网站建设的工作总结
  • 给别人做网站的话术泰安网站建设