摘要: RabbitMQ系列 RabbitMQ系列-概念及安装 1. Exchange RabbitMQ系列-概念及安装 提到AMQP 0-9-1协议默认支持四种exchange,分别是Direct Exchange,Fanout Exchange,Topic Exchange,Headers Exchan 阅读全文
posted @ 2023-05-27 18:13 bulldozer 阅读(1438) 评论(1) 推荐(0) 编辑
摘要: 1. 消息队列 消息队列是指利用队列这种数据结构进行消息发送、缓存、接收,使得进程间能相互通信,是点对点的通信 而消息代理是对消息队列的扩展,支持对消息的路由,是发布-订阅模式的通信,消息的发送者并不清楚消息的接收者,消息可以被多个消费者接收。 使用消息队列的作用如下 异步:对于一些用户的请求,可能 阅读全文
posted @ 2023-05-24 21:30 bulldozer 阅读(487) 评论(0) 推荐(1) 编辑
摘要: 1. 事务 事务是指一个或者多个数据库操作,要么全部没有执行,要么全部成功执行。 中途失败需要回滚到指定状态,全部执行成功需要确保持久保存在数据库中。 事务拥有四个特性,习惯上被称之为ACID特性。 2. ACID特性 为了更直观的解释ACID特性,下面先说明A, B, C之间互相转账的过程。 假设 阅读全文
posted @ 2023-04-23 22:18 bulldozer 阅读(381) 评论(0) 推荐(1) 编辑
摘要: 1. Gin简介 前面通过两篇文章分享了Golang HTTP编程的路由分发、请求/响应处理。 Golang HTTP编程及源码解析-路由分发 Golang HTTP编程及源码解析-请求/响应处理 可以看出来Golang原生HTTP编程在路由分组、动态路由及参数读取/验证、构造String/Data 阅读全文
posted @ 2023-03-11 11:59 bulldozer 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 1. HTTP协议 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,基于TCP/IP通信协议来传递数据(HTML 文件、图片文件、查询结果等)。 HTTP 是无连接的:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应 阅读全文
posted @ 2023-03-04 22:13 bulldozer 阅读(983) 评论(0) 推荐(0) 编辑
摘要: 1、网络基础 基本TCP客户-服务器程序Socket编程流程如如下图所示。 TCP服务器绑定到特定端口并阻塞监听客户端端连接, TCP客户端则通过IP+端口向服务器发起请求,客户-服务器建立连接之后就能开始进行数据传输。 Golang的TCP编程也是基于上述流程的。 2、Golang HTTP编程 阅读全文
posted @ 2023-02-20 23:08 bulldozer 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是XAMPP XAMPP(Apache+MySQL+PHP+PERL) 2. XAMPP下载安装 XAMPP下载地址: apachefriends 双击下载打开的xxx.dmg,继续点击图标。如下图所示。 系统会提示,无法打开"xxxxx",因为无法验证开发者。如下图所示。 此时需要先打开 阅读全文
posted @ 2023-01-11 21:17 bulldozer 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 Gorm源码学习系列 Gorm源码学习-数据库连接 此文是Gorm源码学习系列的第二篇,主要梳理下通过Gorm创建表的流程。 2. 创建行记录代码示例 gorm提供了以下几个接口来创建行记录 一次创建一行 func (db *DB) Create(value interface{}) ( 阅读全文
posted @ 2022-12-17 16:47 bulldozer 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 前面的随笔Golang反射获取变量类型和值分享了如何通过反射获取变量的类型和值, 也就是Golang反射三大定律中的前两个,即从interface{}到反射对象和从反射对象到interface{}。 这篇随笔主要分享通过反射修改各种类型变量值的方法。 2. 判断是否可修改 reflect 阅读全文
posted @ 2022-12-04 22:19 bulldozer 阅读(438) 评论(1) 推荐(1) 编辑
摘要: 1. 什么是反射 反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 Golang反射包中有两对非常重要的函数和类型,两个函数分别是: reflect.TypeOf 能获取类型信息reflect.Type; reflect.ValueOf 能获取数据的运行时表示reflect.Val 阅读全文
posted @ 2022-12-03 23:19 bulldozer 阅读(1336) 评论(0) 推荐(3) 编辑