加载中
再见go-micro!企业项目迁移go-zero全攻略(一)

作者:Mikael 最近发现 golang 社区里出了一个新兴的微服务框架。看了一下官方提供的工具真的很好用,只需要定义好 .api 文件模版代码都可以一键生成,只需要关心业务;同时 core 中的工具极...

云原生微服务框架之go-zero

0. go-zero介绍 go-zero是一个集成了各种工程实践的web和rpc框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。 go-zero包含极简的API定义和生成工具goctl,可以根据定义...

一文搞懂一致性hash的原理和实现

一致性hash 在 go-zero 的分布式缓存系统分享里,Kevin 重点讲到过一致性hash的原理和分布式缓存中的实践。本文来详细讲讲一致性hash的原理和在 go-zero 中的实现。 以存储为例,在整个微服务...

微服务复杂查询之缓存策略

在上一篇 缓存设计的好,服务基本不会倒 介绍了db层缓存,回顾一下,db层缓存主要设计可以总结为: 缓存只删除不更新 行记录始终只存储一份,即主键对应行记录 唯一索引仅缓存主键值,不直接...

懂得取舍才是缓存设计的真谛

Previously 前两篇文章(缓存稳定性 和 缓存正确性)跟大家讨论了缓存的『稳定性』和『正确性』,缓存常见问题还剩下『可观测性』和『规范落地&工具建设』 稳定性 正确性 可观测性 规范落地和...

服务注册与发现的原理和实现

什么是服务注册发现? 对于搞微服务的同学来说,服务注册、服务发现的概念应该不会太陌生。 简单来说,当服务A需要依赖服务B时,我们就需要告诉服务A,哪里可以调用到服务B,这就是服务注册发...

一文讲透自适应熔断的原理和实现

为什么需要熔断 微服务集群中,每个应用基本都会依赖一定数量的外部服务。有可能随时都会遇到网络连接缓慢,超时,依赖服务过载,服务不可用的情况,在高并发场景下如果此时调用方不做任何处理...

高性能 C++ HTTP 客户端原理与实现

一、什么是Http Client Http协议,是全互联网共同的语言,而Http Client,可以说是我们需要从互联网世界获取数据的最基本方法,它本质上是一个URL到一个网页的转换过程。而有了基本的Http客户...

详解布隆过滤器的原理和实现

为什么需要布隆过滤器 想象一下遇到下面的场景你会如何处理: 手机号是否重复注册 用户是否参与过某秒杀活动 伪造请求大量 id 查询不存在的记录,此时缓存未命中,如何避免缓存穿透 针对以上问...

我用 go-zero 一周实现了一个中台系统,已开源!

作者:Jack 最近发现golang社区里出了一个新星的微服务框架,来自好未来,光看这个名字,就很有奔头,之前,也只是玩过go-micro,其实真正的还没有在项目中运用过,只是觉得 微服务,grpc 这...

听说过对 Go map 做 GC 吗?

在 Golang 中的 map 结构,在删除键值对的时候,并不会真正的删除,而是标记。那么随着键值对越来越多,会不会造成大量内存浪费? 首先答案是会的,很有可能导致 OOM,而且针对这个还有一个讨...

最简单的Go Dockerfile编写姿势,没有之一!

Dockerfile一些额外注意点 选择最简单的镜像 比如alpine,整个镜像5M左右 设置镜像时区 RUN apk add --no-cache tzdata ENV TZ Asia/Shanghai 多阶段构建 第一阶段构建出可执行文件,确保构建...

带你十天轻松搞定 Go 微服务之大结局(分布式事务)

序言 我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建 服务拆分 用户服务 产品服务 订单服务 支付服务 RPC 服务 Auth 验证 服务监...

简单易懂的 Go 泛型使用和实现原理介绍

原文:A gentle introduction to generics in Go by Dominik Braun 万俊峰Kevin:我看了觉得文章非常简单易懂,就征求了作者同意,翻译出来给大家分享一下。 本文是对泛型的基本思想及其在 ...

如何让消息队列达到最大吞吐量?

你在使用消息队列的时候关注过吞吐量吗? 思考过吞吐量的影响因素吗? 考虑过怎么提高吗? 总结过最佳实践吗? 本文带你一起探讨下消息队列消费端高吞吐的 Go 框架实现。Let’s go! 关于吞吐...

10行C++代码实现高性能HTTP服务

前言 是不是觉得C++写个服务太累,但又沉迷于C++的真香性能而无法自拔?作为一个老牌C++程序员(可以看我 github 上十几年前的C++项目:https://github.com/kevwan ),这几天听一个好友跟我...

分布式任务 + 消息队列框架 go-queue

为什么写这个库 应用场景有哪些 如何使用 总结 为什么要写这个库? 在开始自研 go-queue 之前,针对以下我们调研目前的开源队列方案: beanstalkd beanstalkd 有一些特殊好用功能:支持任务p...

熔断原理与实现Golang版

在微服务中服务间依赖非常常见,比如评论服务依赖审核服务而审核服务又依赖反垃圾服务,当评论服务调用审核服务时,审核服务又调用反垃圾服务,而这时反垃圾服务超时了,由于审核服务依赖反垃...

基于gRPC的注册发现与负载均衡的原理和实战

gRPC是一个现代的、高性能、开源的和语言无关的通用RPC框架,基于HTTP2协议设计,序列化使用PB(Protocol Buffer),PB是一种语言无关的高性能序列化框架,基于HTTP2+PB保证了的高性能。go-ze...

别再问我们用什么画图的了!问就是excalidraw

每次发 https://github.com/tal-tech/go-zero 相关文章时,都会有读者问我们用什么画图的。 这图什么工具画的呀?好看! 这个手绘风格真好看,用啥工具画的呀? 可不可以介绍下这个画图的工具...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部