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

南阳企业网站排名优化f006网站建设

南阳企业网站排名优化,f006网站建设,自动写作文网站,培训类网站模板在先前的博客文章中#xff0c;我谈到了需要像Netflix Hystrix这样的库的动机。 在这里#xff0c;我将跳入一些非常基本的方法来开始使用Hystrix#xff0c;并在更复杂的用例中进行后续介绍。 你好#xff0c;世界 以下是“ Hystrix命令”的一个简单的Hello World示例我谈到了需要像Netflix Hystrix这样的库的动机。 在这里我将跳入一些非常基本的方法来开始使用Hystrix并在更复杂的用例中进行后续介绍。 你好世界 以下是“ Hystrix命令”的一个简单的Hello World示例 import com.netflix.hystrix.HystrixCommand; import com.netflix.hystrix.HystrixCommandGroupKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class HelloWorldCommand extends HystrixCommandString {private static final Logger logger LoggerFactory.getLogger(HelloWorldCommand.class);private final String name;public HelloWorldCommand(String name) {super(HystrixCommandGroupKey.Factory.asKey(default));this.name name;}Overrideprotected String run() throws Exception {logger.info(HelloWorld Command Invoked);return Hello name;} } run方法保存了我们要保护的所有依赖活动该活动最终返回此特定实例中的参数化类型– String。 如果您是Netflix Rx-java库的粉丝那么创建Hystrix命令的另一种方法如下 import com.netflix.hystrix.HystrixCommandGroupKey; import com.netflix.hystrix.HystrixObservableCommand; import rx.Observable;public class HelloWorldObservableCommand extends HystrixObservableCommandString {private String name;public HelloWorldObservableCommand(String name) {super(HystrixCommandGroupKey.Factory.asKey(default));this.name name;}Overrideprotected ObservableString resumeWithFallback() {return Observable.just(Returning a Fallback);}Overrideprotected ObservableString construct() {return Observable.just(Hello this.name);} } 在这里“ construct”方法返回Rx-java Observable 。 使用Hystrix命令 现在我们有了一个Hystrix命令来包装我们的调用它可以用很多不同的方式使用让我们从最简单的同步调用开始– HelloWorldCommand helloWorldCommand new HelloWorldCommand(World); assertEquals(Hello World, helloWorldCommand.execute()); 或者可以使它返回Future HelloWorldCommand helloWorldCommand new HelloWorldCommand(World); Future future helloWorldCommand.queue(); assertEquals(Hello World, future.get()); 或者甚至可以使它返回Rx-Java可观察的 HelloWorldCommand helloWorldCommand new HelloWorldCommand(World);CountDownLatch l new CountDownLatch(1);ObservableString obs helloWorldCommand.observe(); obs.subscribe(s - logger.info(Received : s),t - logger.error(t.getMessage(), t),() - l.countDown() ); l.await(5, TimeUnit.SECONDS); 该命令的Observable变体也沿相同的方向工作但是我们应该对比一下小的行为差异 HelloWorldObservableCommand helloWorldCommand new HelloWorldObservableCommand(World); logger.info(Completed executing HelloWorld Command); ObservableString obs helloWorldCommand.observe(); 这里有两种获取Observable的方法一种是通过调用“ .observe”的方法另一种是以下方法 HelloWorldObservableCommand helloWorldCommand new HelloWorldObservableCommand(World); ObservableString obs helloWorldCommand.toObservable(); 另一个是以下使用“ .toObservable”调用的内容 HelloWorldObservableCommand helloWorldCommand new HelloWorldObservableCommand(World); ObservableString obs helloWorldCommand.toObservable(); 区别在于“。observe”方法返回的是Hot Observable可立即开始执行“ construct”方法而“ .toObservable”的变体将返回“ Cold Observable”除非已预订否则不会调用“ construct”方法请按以下方式说 CountDownLatch l new CountDownLatch(1); obs.subscribe(System.out::println, t - l.countDown(), () - l.countDown()); l.await(); 我在这里有更多信息。 请注意尽管Hystrix Command不是Singleton但使用Hystrix Command的典型方法是在需要的地方构造它并在完成后将其处置。 后备和命令组密钥 在HelloWorldCommand的构造函数中我调用了具有以下签名的超类构造函数方法 public HelloWorldCommand(String name) {super(HystrixCommandGroupKey.Factory.asKey(default));this.name name; } 该参数指定一个Hystrix“命令组”键以及默认情况下是类的简单名称的Command Key它控制着Hystrix行为的许多细节下面是属性示例我将稍后再回到这些细节 hystrix.command.HelloWorldCommand.metrics.rollingStats.timeInMilliseconds10000 hystrix.command.HelloWorldCommand.execution.isolation.strategyTHREAD hystrix.command.HelloWorldCommand.execution.isolation.thread.timeoutInMilliseconds1000 hystrix.command.HelloWorldCommand.execution.isolation.semaphore.maxConcurrentRequests10 hystrix.command.HelloWorldCommand.circuitBreaker.errorThresholdPercentage50 hystrix.command.HelloWorldCommand.circuitBreaker.requestVolumeThreshold20 hystrix.command.HelloWorldCommand.circuitBreaker.sleepWindowInMilliseconds5000hystrix.threadpool.default.coreSize10 hystrix.threadpool.default.queueSizeRejectionThreshold5 我们可能要控制的另一种行为是在对依赖服务的调用失败的情况下的响应后备方法提供了这种行为因此请考虑依赖服务始终失败的情况 import com.netflix.hystrix.HystrixCommand; import com.netflix.hystrix.HystrixCommandGroupKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class FallbackCommand extends HystrixCommandString {private static final String COMMAND_GROUPdefault;private static final Logger logger LoggerFactory.getLogger(FallbackCommand.class);public FallbackCommand() {super(HystrixCommandGroupKey.Factory.asKey(COMMAND_GROUP));}Overrideprotected String run() throws Exception {throw new RuntimeException(Always fail);}Overrideprotected String getFallback() {logger.info(About to fallback);return Falling back;} } 在这里从属服务调用始终失败并且以下测试中所示的响应将始终是fallback方法的响应 FallbackCommand fallbackCommand new FallbackCommand(); assertEquals(Falling back, fallbackCommand.execute());监控方式 在总结基础之前最好先演示一下Hystrix在Hystrix流和Hystrix仪表板方面的出色功能。 让我们从Hystrix流开始如果通常在基于Java的Web应用程序中将其作为servlet启用它会提供SSE实时统计流有关Web应用程序中存在的Hystrix命令的行为。 由于我的演示基于基于Karyon2 Rx-Netty的应用程序因此可以在此处查看我的配置。 Hystrix流中的信息有点太原始了这是很棒的Hystrix仪表板所适合的地方–它使用Hystrix流并显示有关每个Hystrix命令和不同底层线程池如何执行的实时汇总信息。 我这里有一个基于很棒的Spring-Cloud项目的示例Hystrix仪表板项目。 此处是一个示例仪表板 结论 这涵盖了Hystrix的基础知识还有很多工作要做我将在下一篇博客文章中总结这些内容其中包含一些高级Hystrix功能的详细信息。 翻译自: https://www.javacodegeeks.com/2015/10/gentle-introduction-to-hystrix-hello-world.html
http://www.huolong8.cn/news/179657/

相关文章:

  • 目前流行的网站开发设计大型网站的制作
  • 网站建设需求文档下载wordpress 酷狗
  • 中国建设银行个人登陆网站网站建设的案例
  • 企业网站建设与推广营销型网站的标准
  • 如何修改网站建设银行网站怎么开通短信服务
  • 提供网站建设公司东莞网站建设外贸
  • 东莞做网站推广的公司网站推广软件免费下载
  • 张家港网站制作企优劳务公司简介模板
  • 合肥晚报社官方网站一个域名两个网站
  • 文化礼堂建设情况网站网站建设500元
  • 地方网站做相亲赢利点在哪里微信公众平台申请入口
  • 做直播网站需要多少钱网站建设报价新鸿儒
  • html网站模板免费招聘网络营销推广人员
  • 承德网站制作多少钱选择锦州网站建设
  • 定制网站和模板网站有何区别网站开发培训心得
  • 顶尖网站建设公司陕西交通建设集团蓝商公司网站
  • 建设心理网站的背景ppt模板免费下载素材库
  • 沧州商贸行业网站建设简单的wordpress主题
  • 云主机可以做多少网站空间小程序搭建需要多久
  • 电商网站开发技术与维护h5网站如何做
  • 南京seo网站管理网站建设用户调研
  • 阿里网站注册动漫wordpress主题下载
  • 网站建设怎么选择MySQL数据库大小小米发布会直播在线
  • 有多少人自己做电影网站seo自学网免费
  • 设计师的素材网站岳阳网页
  • 不会做网站建湖做网站多少钱
  • 网站后台管理系统开发沈阳不孕不育医院前三名
  • 建设网站需要哪些设备网站的定义
  • 襄阳网络公司 网站建设去势 wordpress
  • ui设计是什么专业的seo网站页面优化包含