随笔分类 -  Go

摘要:在实际开发过程中,有时候会遇到如何编写Go开机自启服务的需求,在linux中我们可以使用`systemd`来进行托管,windows下可以通过`注册表`来实现,mac下可以通过`launchd`来实现,上面的方式对于开发者来说,并不是什么困难的事情,但是对于使用者而言,是并不希望通过这么复杂的方式来 阅读全文
posted @ 2023-06-09 18:07 RandySun 阅读(333) 评论(0) 推荐(0)
摘要:Go 语言多版本安装及管理利器 - GVM Go 的环境安装和配置并不复杂,首先推荐看看官网的安装教程,介绍的非常全面详细。 如果想看中文,并拓展这方面的知识,推荐看《Go Web 编程》这本开源书籍中的第一章:Go 环境配置,作者 astaxie 已经讲解的非常全面直观。 但如果你有 Go 多版本 阅读全文
posted @ 2023-01-11 17:16 RandySun 阅读(1302) 评论(0) 推荐(0)
摘要:参考 https://www.rabbitmq.com/ https://www.liwenzhou.com/posts/Go/go_rabbitmq_tutorials_01/ https://zhuanlan.zhihu.com/p/375157411 阅读全文
posted @ 2022-05-31 22:46 RandySun 阅读(48) 评论(0) 推荐(0)
摘要:python-RabbitMQ从入门到集群架构 一 消息队列介绍 1.1 什么是消息队列 MQ(Message Quene) : 消息队列,是典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。 因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务 阅读全文
posted @ 2022-05-31 22:41 RandySun 阅读(532) 评论(0) 推荐(0)
摘要:RabbitMQ —topic 一、topic交换器(主题交换器) 发送到topic交换器的消息不能具有随意的routing_key——它必须是单词列表,以点分隔。这些词可以是任何东西,但通常它们指定与消息相关的某些功能。一些有效的routing_key示例:“stock.usd.nyse”,“ny 阅读全文
posted @ 2022-05-31 22:40 RandySun 阅读(371) 评论(0) 推荐(0)
摘要:RabbitMQ Go—RPC 一、远程过程调用(RPC) 我们学习了如何使用工作队列在多个worker之间分配耗时的任务。 但是,如果我们需要在远程计算机上运行函数并等待结果怎么办?好吧,那是一个不同的故事。这种模式通常称为远程过程调用或RPC。 在本教程中,我们将使用RabbitMQ构建一个RP 阅读全文
posted @ 2022-05-31 22:40 RandySun 阅读(104) 评论(0) 推荐(0)
摘要:RabbitMQ——路由 一、路由 (使用Go RabbitMQ客户端) 我们构建了一个简单的日志记录系统。我们能够向许多接收者广播日志消息。 我们将向它添加一个特性-我们将使它能够只订阅消息的一个子集。例如,我们将只能将关键错误消息定向到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日 阅读全文
posted @ 2022-05-31 22:37 RandySun 阅读(303) 评论(0) 推荐(0)
摘要:RabbitMQ——发布/订阅 一、发布/订阅 创建了一个工作队列。工作队列背后的假设是每个任务只传递给一个工人。在这一部分中,我们将做一些完全不同的事情——我们将向多个消费者传递一个消息。这就是所谓的“订阅/发布模式”。 为了说明这种模式,我们将构建一个简单的日志系统。它将由两个程序组成——第一个 阅读全文
posted @ 2022-05-31 22:31 RandySun 阅读(281) 评论(0) 推荐(0)
摘要:RabbitMQ——工作队列 一、任务队列/工作队列 (使用Go RabbitMQ客户端) 我们编写程序从命名的队列发送和接收消息。在这一节中,我们将创建一个工作队列,该队列将用于在多个工人之间分配耗时的任务。 工作队列(又称任务队列)的主要思想是避免立即执行某些资源密集型任务并且不得不等待这些任务 阅读全文
posted @ 2022-05-31 22:21 RandySun 阅读(185) 评论(0) 推荐(0)
摘要:RabbitMQ—HelloWorld 一、介绍 RabbitMQ是一个消息代理:它接受并转发消息。你可以把它想象成一个邮局:当你把你想要邮寄的邮件放进一个邮箱时,你可以确定邮差先生或女士最终会把邮件送到你的收件人那里。在这个比喻中,RabbitMQ是一个邮箱、一个邮局和一个邮递员。 RabbitM 阅读全文
posted @ 2022-05-31 22:02 RandySun 阅读(73) 评论(0) 推荐(0)
摘要:Rabbitmq安装 一、Rabbitmq介绍 基于AMQP协议,erlang语言开发,是部署最广泛的开源消息中间件,是最受欢迎的开源消息中间件之一。 AMQP 协议advanced message queuing protocol 在2003年时被提出,最早用于解决金融领不同平台之间的消息传递交互 阅读全文
posted @ 2022-05-31 21:55 RandySun 阅读(71) 评论(0) 推荐(0)
摘要:消息队列介绍 一、什么是消息队列 MQ(Message Quene) : 消息队列,是典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。 因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。 消息队列也可称作:消 阅读全文
posted @ 2022-05-31 21:54 RandySun 阅读(229) 评论(0) 推荐(0)
摘要:Go语言基础之反射 本文介绍Go语言反射的意义和基本使用。 一、变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息。 值信息:程序运行过程中可动态变化的。 二、反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编 阅读全文
posted @ 2022-05-04 10:34 RandySun 阅读(51) 评论(0) 推荐(0)
摘要:Go单测—编写可测试的代码 在这一篇中我们不再介绍编写单元测试的工具而是专注于如何编写可测试的代码。源码地址 一、编写可测试的代码 编写可测试的代码可能比编写单元测试本身更加重要,可测试的代码简单来说就是指我们可以很容易的为其编写单元测试代码。编写单元测试的过程也是一个不断思考的过程,思考我们的代码 阅读全文
posted @ 2022-05-03 15:40 RandySun 阅读(416) 评论(0) 推荐(0)
摘要:Go单测—goconvey的使用 介绍如何使用goconvey更好地编写单元测试,让单元测试结果更直观、形象。在这一篇中我们将介绍一个人性化的单元测试利器——goconvey。源码地址 一、GoConvey介绍 GoConvey是一个非常非常好用的Go测试框架,它直接与go test集成,提供了很多 阅读全文
posted @ 2022-05-03 15:39 RandySun 阅读(642) 评论(0) 推荐(0)
摘要:Go单测—使用monkey打桩 介绍如何在单元测试中使用monkey进行打桩。将介绍一个更强大的打桩工具——monkey,它支持为任意函数及方法进行打桩。源码地址 一、monkey介绍 monkey是一个Go单元测试中十分常用的打桩工具,它在运行时通过汇编语言重写可执行文件,将目标函数或方法的实现跳 阅读全文
posted @ 2022-05-03 15:37 RandySun 阅读(443) 评论(0) 推荐(0)
摘要:Go单测-mock接口测试 介绍如何在单元测试中使用gomock和gostub工具mock接口和打桩。在开发中也会经常用到各种各样的接口类型。本文就举例来演示如何在编写单元测试的时候对接口类型进行mock以及如何进行打桩。 有一本书叫《Writing An Interpreter In Go》, 作 阅读全文
posted @ 2022-05-03 15:36 RandySun 阅读(776) 评论(0) 推荐(0)
摘要:Go单测—MySQL和Redis测试 介绍如何使用go-sqlmock和miniredis工具进行MySQL和Redis的mock测试。 一、go-sqlmock sqlmock 是一个实现 sql/driver 的mock库。它不需要建立真正的数据库连接就可以在测试中模拟任何 sql 驱动程序的行 阅读全文
posted @ 2022-05-03 15:35 RandySun 阅读(289) 评论(0) 推荐(0)
摘要:网络测试 如何使用httptest和gock工具进行网络测试。 而实际工作中的业务场景往往会比较复杂,无论我们的代码是作为server端对外提供服务或者还是我们依赖别人提供的网络服务(调用别人提供的API接口)的场景,我们通常都不想在测试过程中真正的建立网络连接。本文就专门介绍如何在上述两种场景下m 阅读全文
posted @ 2022-05-03 15:23 RandySun 阅读(631) 评论(0) 推荐(0)
摘要:Go语言基础之单元测试 不写测试的开发不是好程序员。崇尚TDD(Test Driven Development)的, 在Go语言中如何做单元测试和基准测试。源码地址 一、go test工具 Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规 阅读全文
posted @ 2022-05-03 15:18 RandySun 阅读(245) 评论(0) 推荐(0)