读本文之前,你应该已经了解 RabbitMQ 的一些概念,如队列、交换机之类。死信概念通俗来讲,无法被正常消费的消息,我们可以称之为死信。我们将其放入死信队列,单独处理这部分“异常”消息。当消息符合以下的一个条件时,将会称为死信。消息被拒绝,不重新放回队列(使用 basic.reject / basic.nack 方法拒绝消息,并且这两个方法的参数 requ ......
471
0
0
2022-08-25
创建第三方库网上搜下了没有很好的例子,我就找个了简单的库来参考着弄,中间改来改去,搞了几个小时,也算成功了。直接上效果func main() { res := filterStr.Cut.CutString("有钱没钱回家过年", 3) fmt.Println(res) err := filterStr.Filter.Fil ......
360
0
0
2022-08-25
本篇文章,我们着重介绍Go编程中的Pipeline模式。对于Pipeline用过Unix/Linux命令行的人都不会陌生,他是一种把各种命令拼接起来完成一个更强功能的技术方法。在今天,流式处理,函数式编程,以及应用网关对微服务进行简单的API编排,其实都是受pipeline这种技术方式的影响,Pipeline这种技术在可以很容易的把代码按单一职责的原则拆分成 ......
394
0
0
2022-08-25
文章来自-微信公众号:Go 的运行时的当前设计,假定程序员自己负责检测何时终止一个 goroutine 以及何时终止该程序。可以通过调用 os.Exit 或从 main() 函数的返回来以正常方式终止程序。而有时候我们需要的是使程序阻塞在这一行。使用 sync.WaitGroup一直等待直到 WaitGroup 等于 0package main impor ......
306
0
0
2022-08-24
kafka 入门分享一开始自己docker 跑起来一个kafka 但是踩了很多坑 容器跑不起来 后来又容器内无法消费 本地连接失败等后来发现镜像依赖的不一样 最后用的bitnami/zookeeper 和 bitnami/kafka上代码docker-compose.ymlversion: '3' services: zookeeper: ......
396
0
0
2022-08-24
利用 go-kit 微服务框架实现一个同时支持 http 和 grpc 服务的应用。以一个最常见的文章服务为例,开始教程!项目架子go-kit 三层模型简介go-kit 是一套开源的 golang 微服务工具集合。go-kit 自上而下提供了三层模型,分别是 Transport 层、Endpoint 层、Service 层。Transport 层:处理 HT ......
487
0
0
2022-08-23
文章来自 – 微信公众号:一、生产者消费者模型生产者消费者模型:某个模块(函数等〉负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、协程、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。单单抽象出生产者和消费者,还够不上是生产者消费者模型。该模式还需要有一个缓冲区处于生产者和消费者之间,作为 ......
332
0
0
2022-08-23
在本篇文章中,我们将要学习一下Go语言的代码生成的玩法。Go语言代码生成主要还是用来解决编程泛型的问题,泛型编程主要解决的问题是因为静态类型语言有类型,所以,相关的算法或是对数据处理的程序会因为类型不同而需要复制一份,这样导致数据类型和算法功能耦合的问题。泛型编程可以解决这样的问题,就是说,在写代码的时候,不用关心处理数据的类型,只需要关心相当处理逻辑。泛型 ......
371
0
0
2022-08-23
在本篇文章中,我们学习一下函数式编程的中非常重要的Map、Reduce、Filter的三种操作,这三种操作可以让我们非常方便灵活地进行一些数据处理——我们的程序中大多数情况下都是在到倒腾数据,尤其对于一些需要统计的业务场景,Map/Reduce/Filter是非常通用的玩法。下面先来看几个例子:基本示例Map示例下面的程序代码中,我们写了两个Map函数,这两 ......
305
0
0
2022-08-23
go doc为我们提供了快速生成文档以及查看文档的工具,让我们可以很容易的编写查看文档一、使用go doc命令在终端查看go doc package 获取包的文档注释例如:go doc fmt 会显示使用 godoc 生成的 fmt 包的文档注释。go doc package/subpackage 获取子包的文档注释例如:go doc container ......
338
0
0
2022-08-22
go build用于测试编译多个包或一个main包build命令编译包丢弃非main包编译结果,只是检查是否能够被编译保留main包编译结果一个Go项目在GOPATH下,会有如下三个目录bin存放编译后的可执行文件pkg存放编译后的包文件src存放项目源文件一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目 ......
400
0
0
2022-08-22
go install编译并安装代码包,对于库,会生成目标库文件,并且放置到GOPATH/pgk目录下。对于可执文件,会生成目标可执行文件,并且放置到GOPATH/bin目录下一、使用命令 描述 go install lib 编译安装package lib,会为main包在bin下生成可执行exe文件 go install lib2 lib/util 同时编译 ......
363
0
0
2022-08-22
序言我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下:环境搭建服务拆分用户服务产品服务订单服务(本文)支付服务RPC 服务 Auth 验证服务监控链路追踪分布式事务期望通过本系列带你在本机利用 Docker 环境利用 go-zero 快速开发一个商城系统,让你快速上手微服务。完整示例代码:github.co ......
341
0
0
2022-08-22
前言需要部署好相关环境和具备基本的知识点,这并非是一篇科普的文章,主要是针对实际项目中用到的类型转换和使用,针对动态库的函数调用参数传递和接收1、GO环境,启动支持CGO2、事先安装g++3、看得懂GO和C的语法4、最好会基本的makefile或者shell语法(表示我不懂,是个菜鸡,只会看个大概)主要是自己调试C需要用到如果大家是一清二白的,请点击扫盲链接 ......
444
0
0
2022-08-21
文章来自微信公众号:Go语言圈参考链接:www.jb51.net/article/231909.htm前置知识:go基本语法消息队列概念,也就三个:生产者、消费者、队列目的没想着实现多复杂,因为时间有限,就mini就好,mini到什么程度呢使用双向链表数据结构作为队列有多个topic可供生产者生成消息和消费者消费消息支持生产者并发写支持消费者读,且ok后,从 ......
354
0
0
2022-08-21