连接截止时间提供了低级的细粒度控制。虽然它们的名字中含有“超时”,但它们并没有表现出人们通常期望的“超时”。实际上它们非常强大,但是使用它们有一定的门槛。

另一个角度讲,当处理 HTTP 时,我们仍然应该考虑使用 TimeoutHandler。Go 的作者们也选择使用它,它有多种处理,提供了如此有弹性的处理以至于我们甚至可以对每一个处理使用不同的超时。TimeoutHandler 可以根据我们期望的表现来控制执行进程。

除此之外,TimeoutHandler 完美兼容 context 包。context 包很简单,包含了取消信号和请求相关的数据,我们可以使用这些数据来使我们的应用更好地处理错综复杂的网络问题。

结束之前,有三个建议。写 HTTP 服务时,怎么设计超时:

  1. 最常用的,到达 TimeoutHandler 时,怎么处理。它进行我们通常期望的超时处理。
  2. 不要忘记上下文取消。context 包使用起来很简单,并且可以节省你服务器上的很多处理资源。尤其是在处理异常或网络状况不好时。
  3. 一定要用截止时间。确保做了完整的测试,验证了能提供你期望的所有功能。

有弹性的 net/http 服务相关推荐

  1. 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

    在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...

  2. 基于云服务创建弹性托管集群服务

    弹性托管集群服务 使用JMR产品,可在几分钟内创建并启动集群,弹性灵活,可根据业务规模与工作负载等需求实现低成本集群组件最优组合,动态扩容缩容,更专注于业务分析. 使用京东云的JMR,对于其他云平台可 ...

  3. 用docker弹性部署自己的服务

    很久不看docker的东西了,之前了解的一些基本命令都忘得差不多了,适逢工作需要,再来复习巩固下.今天想完成的是:借助docker不部署下自己的服务. 环境准备 都说"巧妇难为无米之炊&qu ...

  4. 利用Traefik+Docker构建可弹性扩展的微服务或服务集群

    简介 Traefik是一个与Nginx.HAProxy有些相似的HTTP反向代理服务器,兼有负载均衡的功能.Nginx和HAProxy都有一个相同的问题就是,后端服务(通常称之为upstream或ba ...

  5. 华为云弹性公网IP服务,为企业敲开互联网大门

    在互联网时代,网络是建立万物互联的桥梁,能让我们人在家中坐,天下事尽知.而用户对公共信息进行访问和浏览时,就需要一个公网IP地址,相应地,网站要提供服务也同样需要公网IP来实现.公网已经成为生活中不可 ...

  6. ibm 行业解决方案_使用针对电源系统的IBM地理分散弹性解决方案的灾难恢复即服务(DRaaS)产品...

    什么是IBM Power Systems的地理分散弹性? 灾难恢复和高可用性(HA)解决方案主要基于两种技术:基于集群的技术和基于虚拟机重启的技术. 群集高可用性和灾难恢复解决方案通常会部署冗余的硬件 ...

  7. 借助 Istio 让服务更具弹性 | 周末送福利

    本文介绍如何借助 Istio 提供的功能,来让我们的服务更具弹性.这主要包括配置服务的负载均衡策略,配置服务的连接池,配置服务的健康检测机制,配置服务熔断,配置服务重试,配置服务限流.通过上述这些配置 ...

  8. Serverless 下的微服务实践

    作者 | 弈川 微服务架构介绍 微服务架构诞生背景 在互联网早期即 Web 1.0 的时代,当时流行的是单体应用,研发团队比较小,主要是外部网页,然后新闻门户等:到了新世纪的互联网时期 Web 2.0 ...

  9. 基于 Spring Cloud 的微服务架构分析

    -     前言    - Spring Cloud是一个相对比较新的微服务框架,2016年才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, ...

最新文章

  1. #时间预测算法_改进的智慧交通系统出行时间预测算法
  2. 线性代数笔记:Frobenius 范数
  3. 多线程的操作与数据绑定
  4. SAP Spartacus 读取payment detail数据的API
  5. CentOS 6.6 Oracle 安装
  6. java 获取组件大小_java - 如何初始化取决于组件大小的图像抓取? - 堆栈内存溢出...
  7. 计算机科学与技术 课表 武汉,欢迎访问武汉理工大学计算机科学与技术学院
  8. python3全栈开发-并发编程,多进程的基本操作
  9. JDK 1.8 - 1.7
  10. Atitit 六种知识表示法 目录 1. 知识的静态描述和动态描述 1 1.状态空间表示 以状态和运算符(operator) 1 2.问题归约表示(函数式?? 1 (1)一个初始问题描述; 2 (2)
  11. cookie、session存储以及cookie使用环境 多数据存储批次加载渲染页面
  12. jQuery实现滑动门效果
  13. 钢琴专业打谱软件 Overture 4.02
  14. php环境安装教程,PHP运行环境配置与开发环境的配置(图文教程)
  15. 一种基于区块链的物联网架构设计
  16. CubeMX+Eclipse+Jlink STM32开发环境搭建
  17. Linux调试排错命令
  18. 子空间高斯混合模型-SGMM
  19. Java 打开浏览器
  20. 前端程序员的职业发展规划与路线——ChatGPT的回答

热门文章

  1. 【RUBY语言】ruby书籍
  2. 硬件加速_消息称Xbox Series X主机将有专用音频硬件加速 带来更强沉浸感
  3. swing怎么监听其他类的按钮_舍得酒因资金违规占用被ST,“其他类风险”爆雷到底怎么防?...
  4. 二进制转8421bcd码_中山CVI转CVBS芯视音科技原装
  5. linux java 1.6 下载地址_linux 安装配置java环境 jdk1.6 jdk-6u45-linux-x64.bin
  6. Source InSight context 窗口丢失的解决办法
  7. React Native按钮详解|Touchable系列组件使用详解
  8. java Int数据工具类
  9. 如何修改SQL Server 2008数据库服务器名称
  10. javaweb中解决中文乱码问题