将 Docker 镜像体积减小 99%,骚操作来了

原文链接:http://www.msedt.com/infoflow/details/1085更多面试资源尽在:面试一点通msedt.com对于刚接触容器的人来说,他们很容易被自己构建的 Docker 镜像体积吓到,我只需要一个几 MB 的可执行文件而已,为何镜像的体积会达到1 GB以上?本文将会介绍几个奇技淫巧来帮助你精简镜像,同时又不牺牲开发人员和运维人员的操作便利性。本系列文章将分为三个部分:第一部分着重介绍多阶段构建(multi-stage builds),因为这是镜像精简之路至关重要的...阅读全文

2020-12-23 01:32:40 酷娃利息对比计算
阅读:1628 评论:0

Gmqtt——Go语言实现的MQTT broker

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是用于物联网(IoT)的OASIS标准消息传递协议。发布/订阅是连接远程消息传递设备的理想选择,因为它具有非常小的网络带宽。MQTT目前广泛应用于各种行业,如汽车、制造业、电信、石油和天然气等。摘自 https://mqtt.org/对于MQTT broker,目前主流的实现有EMQ,mosquito,HiveMQ等,但是并没有一个很完整的Go语言实现。目前的开源的Go实现对MQTT协议的支持...阅读全文

2020-12-28 19:32:38 DrmagicE
阅读:5314 评论:0

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

我用 go-zero 一周实现了一个中台系统,已开源!作者:Jack最近发现golang社区里出了一个新星的微服务框架,来自好未来,光看这个名字,就很有奔头,之前,也只是玩过go-micro,其实真正的还没有在项目中运用过,只是觉得 微服务,grpc 这些很高大尚,还没有在项目中,真正的玩过,我看了一下官方提供的工具真的很好用,只需要定义好,舒适文件jia结构 都生成了,只需要关心业务,加上最近 有个投票的活动,加上最近这几年中台也比较火,所以决定玩一下,开源地址: https://github...阅读全文

2021-02-04 13:18:59 mb6018ead621887
阅读:1907 评论:0

rabbitmq实现延迟队列

大家有没有遇到过这样的场景,一个订单超过一个时间段未支付自动取消,退款申请一段时间未人工处理自动通过或者拒绝,这些场景都有一个特点,在一个事件发生之后,需要在固定的事件段以后处理另一个事件,如果使用定时任务,每秒扫描一次数据库,取出需要处理的事件数据。这样固然能实现这个需求,但是在数据量比较大的情况会对数据库造成不小的压力,而且这样显然不够优雅,这时候就需要一个延时队列。首先大家需要了解一下rabbitmq的死信队列,如果消息具备下面三个条件之一1.消息被否定确认2.消息的存活时间超过设置的最大...阅读全文

2021-03-05 15:32:32 润雨冰雪
阅读:928 评论:0

golang实现京东支付v2版本

一、准备阶段pc&h5 接入步骤官方文档 https://payapi.jd.com/docList... 查看主要接入步骤密钥生成• 需要设置desc key• md5 key 和 app id app对接会使用• 证书文件名称my_rsa_private_pkcs8_key.pem wy_rsa_public_key.pem示例程序使用私钥格式为 pkcs8 格式官方的SDK中的数据可以在示例程序中使用下载SDK地址 https://payapi.jd.com/docList... 找到接口...阅读全文

2021-03-07 16:32:32 快乐源泉
阅读:836 评论:0

Gin+Gorm 小说网站接口实战教程

# 关于项目 # 项目载体 大家先看一个 [小说网站](https://www.leixuesong.cn/),这个小说网站就是该课程项目的载体,是我浏览相关博客时无意发现的一个唯美的小说网站,风格比较清新,个人感觉还不错,纵观整个网站的页面上的数据,发现并没有那么复杂,下面是首页截图,本课程实现的就是这个网站的后端接口,包括后台和前台首页的所有接口,听上去是不是有点感觉了。 ![](https://p.pstatp.com/origin/138ea00005d67bcc46b26) ...阅读全文

阅读:2361 评论:0

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

为什么写这个库应用场景有哪些如何使用总结为什么要写这个库?在开始自研 go-queue 之前,针对以下我们调研目前的开源队列方案:beanstalkdbeanstalkd 有一些特殊好用功能:支持任务priority、延时(delay)、超时重发(time-to-run)和预留(buried),能够很好的支持分布式的后台任务和定时任务处理。如下是 beanstalkd 基本部分:job:任务单元;tube:任务队列,存储统一类型 job。producer 和 consumer 操作对象;prod...阅读全文

2021-03-25 10:32:33 kevinwan
阅读:2951 评论:0

一文搞懂如何实现 Go 超时控制

为什么需要超时控制?请求时间过长,用户侧可能已经离开本页面了,服务端还在消耗资源处理,得到的结果没有意义过长时间的服务端处理会占用过多资源,导致并发能力下降,甚至出现不可用事故Go 超时控制必要性Go 正常都是用来写后端服务的,一般一个请求是由多个串行或并行的子任务来完成的,每个子任务可能是另外的内部请求,那么当这个请求超时的时候,我们就需要快速返回,释放占用的资源,比如goroutine,文件描述符等。服务端常见的超时控制进程内的逻辑处理读写客户端请求,比如HTTP或者RPC请求调用其它服务端...阅读全文

2021-03-29 09:32:36 kevinwan
阅读:1088 评论:2

【GoCN酷Go推荐】protobuf生成Go代码插件gogo/protobuf

从 JSON 开始 谈到序列化,大家最先想到的可能是 JSON 或者 XML,这两种序列化协议都是基于文本的编码方式进行数据传输。类似的还有 YAML 等。 JSON 拥有许多优点,使之成为最广泛使用的序列化协议之一。如 JSON 协议简单,人眼可读,序列化后十分简洁且解析速度快。此外,JSON 具备 JavaScript 的先天性支持,被广泛应用于 Web Browser 的应用场景中,并且是 Ajax 的事实标准协议。 JSON 的适用场景比较多,典型应用场景包括: 公司外部之间传输数据量相...阅读全文

2021-04-19 20:27:19 mob604756f0bbf4
阅读:928 评论:0

Bilibili 毛剑:Go 业务基础库之 Error

前言 在 4 月 27 日举办的 Gopher China 2019 中,国内 Go 语言专家,Bilibili 架构师毛剑进行了题为《 Go 业务基础库之 Error & Context 》的演讲,主要探讨两个问题: 在业务的基础库中,经常需要针对异常进行处理; 这次分享针对业务逻辑的异常处理,异常日志记录,异常信息关联, 业务错误码,以及基于Go,error的特点如何来使用解决这类问题; 在Go引入context以后,我们如何改造自己的基础库。 利用context上下文解决元数据传递,超时传...阅读全文

2021-04-19 22:05:19 mob604756f0bbf4
阅读:1429 评论:0

斗鱼基于 Golang 在高并发场景下的日志系统实践

1 概述 日志是记录系统中各种问题信息的关键,也是一种常见的海量数据。做好日志可以有效的解决排查问题效率低、业务异常无法及时发现等等问题。 斗鱼的业务是经典的高并发场景:我们会由于某些业务场景,用户请求量会十倍秒级突增。为了针对这种场景,提高服务性能,我们不仅要优化业务逻辑,同时还要提升日志等基础组件的性能。以下是我们斗鱼go的日志类库架构图: 从架构图的日志组件中我们列举了三个重要组成部分。首先是日志的使用,我们提供了sugar、desugar、lazy-output的三种模式。根据使用场景,...阅读全文

2021-04-19 22:39:27 mob604756f0bbf4
阅读:1149 评论:0

Go 语言在扫码支付系统中的成功实践

今天的内容主要分四个方面。第一,金融支付系统的一些特点;第二,我们的扫码支付系统技术选型;第三,系统迭代过程中的架构演进;第四,与 Go 相关的一些坑。 金融支付系统的一些特点 图 1 首先从业务流程入手,其实非常简单。一位消费者结账时,假如选择扫码支付的方式付款 100 元,产生一笔交易信息。如图 1 所示,我们看上面蓝色的线条,通过商家的收款产品,把这 100 元的交易信息送到我们的扫码支付系统,然后传递到后面的微信、支付宝或者其他支持扫码支付的相应钱包,完成这笔交易信息的传递,完成这笔交易...阅读全文

2021-04-21 22:26:28 mob604756f0bbf4
阅读:1530 评论:0

Go+vue3开发的一个im应用

### 这是一個开源的前后端分离的IM网页应用。 这是我学习golang写的第一个小的im聊天应用。对标的应用:im客服、语音客服。目前功能简洁、支持以下功能。 #### 简单的功能 - [x] 支持微博登录 - [x] 端对端消息推送、图片发送、表情包 - [x] 语音功能 - [ ] 视频功能 - [x] 支持离线消息推送 - [x] 创建群聊 - [x] 群聊消息推送 - [ ] 好友功能 - [x] ...阅读全文

2021-08-24 18:17:24 pl1998
阅读:2458 评论:0

如何使用 atomic 包减少锁冲突

![](https://raw.githubusercontent.com/studygolang/gctt-images2/master/Go-How-to-Reduce-Lock-Contention-with-the-Atomic-Package/1.png) ## 写在前面 > 本文基于 Golang 1.14 Go 提供了 channel 或 mutex 等内存同步机制,有助于解决不同的问题。在共享内存的情况下,mutex 可以保护内存不发生数据竞争(data rac...阅读全文

2021-12-26 21:40:52 double12gzh
阅读:1217 评论:0

Go语言 unsafe.Pointer 包浅析

>你必须非常努力,才能看起来毫不费力! > >微信搜索公众号[ 漫漫Coding路 ],一起From Zero To Hero ! ## 前言 在写 `Go` 的过程中,我们不免会使用指针,但是大多数情况下使用的是`类型安全`的指针,类型安全的指针有助于我们写出安全的代码,但是却有诸多限制,比如不能对地址进行算数运算、不支持任意两个类型相互转换等。 `Go` 实际上是支持`非类型安全`的指针的,通过非类型安全指针,我们可以绕过诸多限制,在某些情况下甚至可以写出更高效...阅读全文

2022-04-07 21:39:03 lifelmy_
阅读:2234 评论:1

如何设计一个分布式实时数据同步系统

- 这网站排版太差劲了,可以直接看微信公众号文章:https://mp.weixin.qq.com/s/Sm5pM9iy9YN9S8vBQhRvlw - 同时github上赏我一个star吧:https://github.com/mgtv-tech/redis-GunYu - 也可以同时关注我微信公众号,有很多优质文章:【技术闲聊吧】 ## **为什么要自研,使用开源方案不行吗?** 我们调研了业界主流的几个工具,都有一些无法满足我们需求的地方,如redis-shak...阅读全文

2024-05-28 17:46:40 ikenchina
阅读:931 评论:0