随笔 - 80  文章 - 0  评论 - 217 
  2020年10月28日
正文内容加载中...
posted @ 2020-10-28 11:10 Kevin Wan 阅读(38) 评论(0) 推荐(0) 编辑
  2020年10月26日
摘要:关于JWT是什么,大家可以看看官网,一句话介绍下:是可以实现服务器无状态的鉴权认证方案,也是目前最流行的跨域认证解决方案。 要实现JWT认证,我们需要分成如下两个步骤 客户端获取JWT token。 服务器对客户端带来的JWT token认证。 1. 客户端获取JWT Token 我们定义一个协议供 阅读全文
posted @ 2020-10-26 11:06 Kevin Wan 阅读(215) 评论(0) 推荐(0) 编辑
  2020年10月22日
摘要:服务自适应降载保护设计 设计目的 保证系统不被过量请求拖垮 在保证系统稳定的前提下,尽可能提供更高的吞吐量 设计考虑因素 如何衡量系统负载 是否处于虚机或容器内,需要读取cgroup相关负载 用1000m表示100%CPU,推荐使用800m表示系统高负载 尽可能小的Overhead,不显著增加RT 阅读全文
posted @ 2020-10-22 11:43 Kevin Wan 阅读(298) 评论(0) 推荐(1) 编辑
  2020年10月21日
摘要:近期比较火的开源项目go-zero是一个集成了各种工程实践的包含了Web和RPC协议的功能完善的微服务框架,今天我们就一起来分析一下其中的RPC部分zRPC。 zRPC底层依赖gRPC,内置了服务注册、负载均衡、拦截器等模块,其中还包括自适应降载,自适应熔断,限流等微服务治理方案,是一个简单易用的可 阅读全文
posted @ 2020-10-21 15:09 Kevin Wan 阅读(561) 评论(3) 推荐(5) 编辑
  2020年10月20日
摘要:go-zero针对文本的序列化和反序列化主要在三个地方使用 http api请求体的反序列化 http api返回体的序列化 配置文件的反序列化 完整示例可参照下面这篇文章: 快速构建高并发微服务 1. http api请求体的反序列化 在反序列化的过程中的针对请求数据的数据格式以及数据校验需求,g 阅读全文
posted @ 2020-10-20 11:40 Kevin Wan 阅读(296) 评论(2) 推荐(0) 编辑
  2020年10月19日
摘要:最近我们团队开源的后端微服务框架go-zero增长势头比较迅猛,这篇文章我讲讲go-zero对前端团队的作用,并通过一个示例来给大家演示我们是怎么做的,希望能给后端的同学也可以帮助前端同学提高开发效率👏 首先,我们来看看正常怎么实现api接口: 1,后端给出(或经过协商给出)api定义文档 2,前 阅读全文
posted @ 2020-10-19 17:20 Kevin Wan 阅读(58) 评论(0) 推荐(0) 编辑
  2020年10月16日
摘要:一个系统中存在着大量的调度任务,同时调度任务存在时间的滞后性,而大量的调度任务如果每一个都使用自己的调度器来管理任务的生命周期的话,浪费cpu的资源而且很低效。 本文来介绍 go-zero 中 延迟操作,它可能让开发者调度多个任务时,只需关注具体的业务执行函数和执行时间「立即或者延迟」。而 延迟操作 阅读全文
posted @ 2020-10-16 11:39 Kevin Wan 阅读(221) 评论(0) 推荐(1) 编辑
  2020年10月15日
摘要:在微服务中开发中,api网关扮演对外提供restful api的角色,而api的数据往往会依赖其他服务,复杂的api更是会依赖多个甚至数十个服务。虽然单个被依赖服务的耗时一般都比较低,但如果多个服务串行依赖的话那么整个api的耗时将会大大增加。 那么通过什么手段来优化呢?我们首先想到的是通过并发来的 阅读全文
posted @ 2020-10-15 11:51 Kevin Wan 阅读(41) 评论(0) 推荐(0) 编辑
  2020年10月14日
摘要:0. 为什么说做好微服务很难? 要想做好微服务,我们需要理解和掌握的知识点非常多,从几个维度上来说: 基本功能层面 并发控制&限流,避免服务被突发流量击垮 服务注册与服务发现,确保能够动态侦测增减的节点 负载均衡,需要根据节点承受能力分发流量 超时控制,避免对已超时请求做无用功 熔断设计,快速失败, 阅读全文
posted @ 2020-10-14 10:35 Kevin Wan 阅读(504) 评论(0) 推荐(2) 编辑
  2020年10月13日
摘要:0. go-zero介绍 go-zero是一个集成了各种工程实践的web和rpc框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。 go-zero包含极简的API定义和生成工具goctl,可以根据定义的api文件一键生成Go, iOS, Android, Kotlin, Dart, 阅读全文
posted @ 2020-10-13 11:47 Kevin Wan 阅读(335) 评论(0) 推荐(1) 编辑