go-zerogo-zero架构逐一突破:go-zero 超时 timeout 到底有几处可以设置?你学废了吗

Posted CTRA王大大

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go-zerogo-zero架构逐一突破:go-zero 超时 timeout 到底有几处可以设置?你学废了吗相关的知识,希望对你有一定的参考价值。

历史go-zero篇章


文章目录


前言

这是根据go-zero在项目实战中,作者发掘的问题与技巧,希望能与所有的gopher一起分享,一起成长,如果文章有错误,也请大家及时指正问题,作者会立刻修改


一、go-zero中的timeout

在 go-zero框架中 zrpc包中的 config.go文件
如下图所示:

分布式架构用到的那些开源框架

《人人都是架构师》(高翔龙著)一书,深入浅出的讲述了作者在分布式系统架构落地与瓶颈突破方面的实践案例,内容详实、丰富生动、实战性强,严重推荐从事架构设计的同学阅读。

书中提到了分布式系统架构落地要用到的一系列开源框架,本文对这些实用的开源框架进行了信息收集和整理,并按原书章节中出现的顺序逐一罗列和说明。

第1章 分布式服务案例

Nginx----关键词:Web负载均衡

【简要说明】

Nginx 是一个高性能的 Web 和反向代理服务器。可以作为 Web 服务器、负载均衡服务器、邮件代理服务器。

【资源网址】

http://nginx.org

http://www.nginx.cn/doc/

https://github.com/nginx

Dubbo----关键词:分布式服务/RPC框架、服务治理、调用跟踪

【简要说明】

DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

【资源网址】

http://dubbo.io/

https://github.com/alibaba/dubbo

基于Dubbo埋点的分布式调用跟踪系统:

https://github.com/gaoxianglong/service-tracing

第2章 大流量限流/消峰案例

Guava----关键词:平均速率限流、本地缓存

【简要说明】

Google提供的对Java API进行上层封装的开源工具包。

其中RateLimiter提供了令牌桶算法。

在本地缓存领域除EhCache,Guava Cache也是不错的替代方案。

【资源网址】

https://github.com/google/guava

Google Guava官方教程(中文版):

http://ifeve.com/google-guava/

Tengine----关键词:接入层限流

【简要说明】

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

【资源网址】

http://tengine.taobao.org/

https://github.com/alibaba/tengine

ActiveMQ----关键词:消息队列、解耦

【简要说明】

消息队列。

部署使用简单,适用用户规模较小的场景,不适用于互联网。

设计初衷是为企业级应用服务。

【资源网址】

https://github.com/apache/activemq

http://activemq.apache.org/

【其它相关】

Kafka,阿里RocketMQ,HornetQ,RabbitMQ,ZeroMQ,Redis

RocketMQ----关键词:互联网场景、流量消峰

【简要说明】

阿里开源的分布式消息中间件,前身为MetaQ。

支持顺序消息,支持事务消息,支持集群与广播模式,亿级消息堆积能力,完善的分布式特性,支持Push和Pull两种消息订阅模式。

【资源网址】

http://rocketmq.apache.org/

https://github.com/alibaba/rocketmq

https://github.com/apache/incubator-rocketmq

专访RocketMQ联合创始人:项目思路、技术细节和未来规划:

http://www.infoq.com/cn/news/2017/02/RocketMQ-future-idea

RocketMQ捐赠给Apache那些鲜为人知的故事:

http://jm.taobao.org/2016/12/08/little-known-stories-about-apache-rocketmq/

第3章 分布式配置管理服务案例

ZooKeeper----关键词:分布式配置管理

【简要说明】

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

【资源网址】

https://zookeeper.apache.org/

https://github.com/apache/zookeeper

【其它相关】

淘宝Diamond系统,百度Disconf系统,奇虎360的QConf,Spring-Cloud配置管理服务。

Diamond----关键词:分布式配置管理、更完善的容灾机制

【简要说明】

Diamond是一个持久配置管理中心,核心功能是使应用在运行中感知配置数据的变化。

【资源网址】

https://github.com/takeseem/diamond

Disconf----关键词:分布式配置管理、年轻活跃

【简要说明】

百度开源的基于ZooKeeper实现的分布式配置管理平台。相对于Diamond,更为年轻和活跃。

【资源网址】

https://github.com/knightliao/disconf

第4章 大促场景下热点数据的读/写优化案例

Ehcache----关键词:本地缓存

【简要说明】

EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

【资源网址】

http://www.ehcache.org/

https://github.com/svn2github/ehcache

【其它相关】

memcache,redis

Redis----关键词:分布式缓存、高性能

【简要说明】

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,内置了复制、LUA脚本、LRU驱动事件、事务和不同级别的磁盘持久化,并通过 Redis哨兵和自动 分区提供高可用性。

【资源网址】

https://redis.io/

http://www.redis.cn/

【其它相关】

Jedis是 Redis 官方首选的 Java 客户端开发包:

https://github.com/xetorthio/jedis

Redisson是redis官网推荐的java语言实现分布式锁的项目,基于NIO的Netty框架上。

https://github.com/redisson/redisson

AliSQL----关键词:高性能MySQL数据库

【简要说明】

应对秒杀场景,综合性能较MySQL官方版提升约70%,为互联网电商业务特殊定制的高性能MySQL数据库,在云计算及金融等领域也能大展拳脚。

【资源网址】

https://github.com/alibaba/AliSQL

http://www.hellodb.net/

专访丁奇:阿里云即将开源AliSQL,超大并发、针对秒杀优化

http://www.infoq.com/cn/news/2016/09/AliSQL-ali-cloud-AliSQL

第5章 数据库分库分表案例

Shark----关键词:分库分表中间件

【简要说明】

前身为Kratos,轻量级Mysql分库分表(Sharding)中间件,丰富的Sharding算法支持(2类4种分片算法),能够方便DBA实现库的水平扩容和降低数据迁移成本。Shark站在巨人的肩膀上(SpringJdbc、Druid),采用与应用集成架构,放弃通用性,只为换取更好的执行性能与降低分布式环境下外围系统的宕机风险。

【资源网址】

https://github.com/gaoxianglong/shark

【其它相关】

分库分表中间件:淘宝TDDL(TAOBAO DISTRIBUTE DATA LAYER)、MyCat、Cobar

Solr----关键词:多维度复杂条件查询、全文搜索引擎

【简要说明】

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

【资源网址】

http://lucene.apache.org/solr/

Solr中国:

http://www.solr.cc/blog/

【其它相关】

Lucene

---------------

以上是关于go-zerogo-zero架构逐一突破:go-zero 超时 timeout 到底有几处可以设置?你学废了吗的主要内容,如果未能解决你的问题,请参考以下文章

4款深度学习框架简介,初学者该如何选择?

突破硬件瓶颈:存储架构和协议瓶颈

突破硬件瓶颈:Intel体系架构的发展与瓶颈挖掘

架构师成长之路-纯干货系列:什么是架构和架构分类(程序员突破内卷大法)说人话接地气

“大话架构”阿里架构师分享的Java程序员需要突破的技术要点

“大话架构”阿里架构师分享的Java程序员需要突破的技术要点