2021年10月18日
摘要:
为什么需要超时控制? 很多连锁故障的场景下的一个常见问题是服务器正在消耗大量资源处理那些早已经超过客户端截止时间的请求,这样的结果是,服务器消耗大量资源没有做任何有价值的工作,回复已经超时的请求是没有任何意义的。 超时控制可以说是保证服务稳定性的一道重要的防线,它的本质是快速失败(fail fast
阅读全文
posted @ 2021-10-18 10:58
万俊峰Kevin
阅读(966)
推荐(0)
2021年10月11日
摘要:
本文带你完整理解万星微服务框架 go-zero 的 restful 框架的实现原理和使用方法。
阅读全文
posted @ 2021-10-11 07:50
万俊峰Kevin
阅读(802)
推荐(0)
2021年10月8日
摘要:
chatbot 是一个通过已知对话数据集快速生成回答的 Go 问答引擎。国庆假期,我有点空闲时间,所以就把这个项目整理了开源出来,一是给大家一个实际的 go-zero 的 MapReduce 示例;二是也提供大家一个闲聊机器人的项目玩玩。
阅读全文
posted @ 2021-10-08 08:44
万俊峰Kevin
阅读(1997)
推荐(2)
2021年9月22日
摘要:
延迟队列:一种带有 延迟功能 的消息队列
延时 → 未来一个不确定的时间
mq → 消费行为具有顺序性
这样解释,整个设计就清楚了。你的目的是 延时,承载容器是 mq。
阅读全文
posted @ 2021-09-22 07:58
万俊峰Kevin
阅读(1423)
推荐(0)
2021年9月12日
摘要:
什么是服务注册发现? 对于搞微服务的同学来说,服务注册、服务发现的概念应该不会太陌生。 简单来说,当服务A需要依赖服务B时,我们就需要告诉服务A,哪里可以调用到服务B,这就是服务注册发现要解决的问题。 Service B 把自己注册到 Service Registry 叫做 服务注册 Service
阅读全文
posted @ 2021-09-12 23:16
万俊峰Kevin
阅读(2552)
推荐(1)
2021年8月25日
摘要:
Http协议,是全互联网共同的语言,而Http Client,可以说是我们需要从互联网世界获取数据的最基本方法,它本质上是一个URL到一个网页的转换过程。而有了基本的Http客户端功能,再搭配上我们想要的规则和策略,上至内容检索下至数据分析都可以实现了。
阅读全文
posted @ 2021-08-25 10:11
万俊峰Kevin
阅读(4396)
推荐(4)
2021年8月18日
摘要:
背景 在选择负载均衡算法时,我们希望满足以下要求: 具备分区和机房调度亲和性 每次选择的节点尽量是负载最低的 每次尽可能选择响应最快的节点 无需人工干预故障节点 当一个节点有故障时,负载均衡算法可以自动隔离该节点 当故障节点恢复时,能够自动恢复对该节点的流量分发 基于这些考虑,go-zero 选择了
阅读全文
posted @ 2021-08-18 11:39
万俊峰Kevin
阅读(1566)
推荐(2)
2021年7月20日
摘要:
在 go-zero 的分布式缓存系统分享里,Kevin 重点讲到过一致性hash的原理和分布式缓存中的实践。本文来详细讲讲一致性hash的原理和在 go-zero 中的实现。 以存储为例,在整个微服务系统中,我们的存储不可能说只是一个单节点。 一是为了提高稳定,单节点宕机情况下,整个存储就面临服务不
阅读全文
posted @ 2021-07-20 11:14
万俊峰Kevin
阅读(735)
推荐(0)
2021年7月14日
摘要:
在 Golang 中的 map 结构,在删除键值对的时候,并不会真正的删除,而是标记。那么随着键值对越来越多,会不会造成大量内存浪费? 首先答案是会的,很有可能导致 OOM,而且针对这个还有一个讨论:https://github.com/golang/go/issues/20135。大致的意思就是在
阅读全文
posted @ 2021-07-14 11:13
万俊峰Kevin
阅读(323)
推荐(1)
2021年6月7日
摘要:
在重启过程中,会有一段时间不能给用户提供正常服务;同时粗鲁关闭服务,也可能会对业务依赖的数据库等状态服务造成污染。
所以我们服务重启或者是重新发布过程中,要做到新旧服务无缝切换,同时可以保障变更服务 零宕机时间!
阅读全文
posted @ 2021-06-07 13:20
万俊峰Kevin
阅读(1458)
推荐(0)