文章目录IO模型PCBsocket多路复用select IO模型PCBsocket 1进程打开的文件,socket等都会由pcb记录到文件描述符 2 socket的操作有系统调用来完成,返回给应用程序描述符 3tcp socket在创建时操作系统都会给它分配一个读缓冲区和写缓冲区,获得响应数据就从读缓冲区拷贝,发送数据则写到写缓冲区 4如何解决读的时候缓冲区无数据,写的时候缓冲区没有空间多路复用
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任何秒杀系统都无法超越的QPS,上百万的并发再正常不过了!笔者专门研究了一下“12306”的服务端架构
转载 20天前
377阅读
在现代应用开发中,使用 Go 语言(Golang)编译针对不同架构的 Linux 系统已经成为一种常见的需求。特别是在 ARM 架构下,特别是在物联网设备、单板计算机(如 Raspberry Pi)等平台上的发展,学习如何正确编译 Go 应用程序面对这一平台的挑战尤为重要。接下来,我将详细记录下如何解决“golang 编译 Linux 系统 arm 架构”这一问题。 ## 背景描述 在过去的几
原创 6月前
221阅读
文章目录Gin是什么Gin代码解析路由(Router)中间件(Middleware)自定义一个全局中间件自定义一个局部中间件 Gin是什么Gin 是使用 Go/golang 语言实现的 HTTP Web 框架。接口简洁,性能极高。Gin 特性快速:路由不使用反射,基于Radix树,内存占用少。中间件:HTTP请求,可先经过一系列中间件处理,例如:Logger,Authorization,GZIP
转载 2023-12-28 15:26:08
101阅读
Golang是一门很特殊的语言,虽然它出生比较晚,但是在很多地方却和现在的编程语言有所不同。现在的编程语言要么是函数式的、要么是面向对象的,而Go语言却有指针、结构体这些概念,并解决了C语言的一些坑。从这个角度上说,Golang可以看做C语言的填坑加强版。结构体简介Go 语言通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型。一个带属性的结构体试图表示一个现实世
转载 2024-02-03 16:43:31
29阅读
提到分布式系统,我们会想到很多机器,分别部署着各自的服务,然后整体组成一个分布式系统。在这类系统中,分布式系统与常规的集中式系统存在着以下三个区别。(来自分布式算法导论)1、缺乏全局状态知识2、缺乏全局时间帧3、非确定性这三大特点也成为分布式系统设计的难点。也正是如此,分布式系统的设计比常规的集中式系统要难的多。为了区别,我们称这种分布式系统为,群体分布式。这种犹如社会群体。golang语言天生具
作者: Super 导语:hashicorp/raft是raft算法的一种比较流行的golang实现,基于它能够比较方便的构建具有强一致性的分布式系统。本文通过实现一个简单的分布式缓存系统来介绍使用hashicorp/raft来构建分布式应用程序的方法。 1. 背景 对于后台开发来说,随着业务的发展,由于访问量增大的压力和数据容灾的需要,一定会需要使用分布式的系统,而分
   一 Go语言发展史和使用场景1.1.1  Go语言发展历史Go 语言发展至今已经过去十年多了,是目前最流行的新兴语言,云计算领域的首选语言,而且目前随着区块链的流行,Go 再次成为了这个领域的第一语言,以太坊,IBM 的 fabric 等重量级的区块链项目都是基于 Go 开发的。  Go语言也叫做Golang,go语言的全
转载 2023-09-05 22:29:10
42阅读
开始微服务,那就先温习下golang语法吧;  golang变量类型1. 整形 Go %b 表示为二进制 %c 该值对应的unicode码值 %d 表示为十进制 %o 表示为八进制 %q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 %x 表示为十六进制,使用a-f %X 表示为十六进制,使用A-F %U
转载 2023-07-23 18:18:45
38阅读
# Golang Gin 架构简介 ## 什么是 Golang Gin 架构 Golang Gin 是一个轻量级的 Web 框架,用于构建高性能的 Web 应用程序。它提供了快速的路由器和中间件功能,使得开发者可以快速搭建起一个稳健的 Web 服务。Gin 框架基于 Golang 的性能和易用性,是目前很受欢迎的 Web 开发框架之一。 ## Gin 架构示例 下面是一个简单的示例,展示了
原创 2024-05-02 04:45:57
89阅读
# Golang 服务架构 ## 引言 随着互联网的快速发展,越来越多的应用程序需要支持大量的并发请求和高性能处理。在这种情况下,设计一个高效的服务架构变得至关重要。本文将介绍如何使用Golang语言构建一个高可靠、高性能的服务架构,并提供相关的代码示例。 ## 服务架构设计 在设计一个Golang服务架构时,我们需要考虑以下几个方面: - **并发处理**: Golang天生支持并发,
原创 2024-06-14 06:10:25
43阅读
# Golang架构基本概念及代码示例 近年来,微服务架构已经成为软件开发的主流选择,尤其是在云计算迅速发展的背景下。微服务允许将应用程序分解成多个较小且独立的服务,这些服务可以独立开发、部署和扩展。而Golang(Go语言)因其高效的并发支持和简洁的语法,使其成为开发微服务的理想选择。 ## 什么是微架构? 微架构是指通过将应用程序拆分成多个小的、自治的服务,以提高系统的可维护性、可扩
原创 9月前
56阅读
Golang Fyne项目实战(含源码)项目介绍效果图功能介绍步骤介绍代码区域项目结构下载fyne包以及Fyne工具包追加静态资源,程序设置图标完整代码 项目介绍效果图功能介绍主要实现了根据文本文件里面的内容,自动更名所选文件夹里面的文件名称步骤介绍1.创建txt文本文件,输入内容程序界面中"目录文件"选择目前创建的文本文件 例:2.选择需要批量更改名字的文件夹 3.选择路径后,程序点击"开始更
转载 2024-07-15 10:13:27
70阅读
# 如何在Golang中实现CS架构 在现代软件开发中,Client-Server(CS)架构是一种常见的设计模式。它将应用程序分为两部分:一部分运行在客户端,另一部分运行在服务器端。Golang是一种强大的编程语言,非常适合构建CS架构的应用程序。本文将帮助刚入行的小白了解在Golang中实现CS架构的过程和细节。 ## 一、项目流程 为了清晰地了解整个项目的实施步骤,下面是完成Golan
原创 2024-10-21 06:34:41
49阅读
# Golang 语言架构初探 Golang,又称为Go语言,是一种由Google开发的开源编程语言。自2009年首次发布以来,它因其简洁、高效和强大的并发支持而受到大众的青睐。本文将带您了解Golang的基本架构,并通过代码示例展示其特性。 ## Golang 的基本架构 Golang架构设计上追求“简单即是美”,它的核心组件包括: 1. **编译器**:负责将Go代码编译为可执行的二
原创 2024-09-13 03:53:11
68阅读
什么是整洁架构?在《Clean Architecture: A Craftsman’s Guide to Software Structure and Design》一书中,著名作家 Robert “Uncle Bob” Martin 提出了一种具有一些重要特性的体系结构,如框架、数据库和接口的可测试性和独立性。整洁架构的约束条件是:独立的框架。该体系结构并不依赖于某些带有特性的软件库的存在。这允
代码传送门1、日志主要说明:谁在什么时间,在什么地方,做了什么事情,产生了什么影响,影响的变化因子。2、日志系统主要建设在oplogger基础上。将现有的mysql存储方式改成elasticsearch的存储方式。并且更新了现有字段,使其更优化3、以下为主要设计原理图:以下为时序图:4、需要重写的接口如下://! 本地物流服务 service Logger { rpc Operate(Operat
转载 2024-04-24 11:14:32
45阅读
Golang 多模块开发今天学习下Golang中多模块的基础知识,学习多模块的运行原理,使用多模块的方式,可以让开发者的代码在其他多个模块中构建、运行。提高代码的复用,从而提高开发效率。在今天的学习中,将在工作工作空间中创建两个模块,然后进行模块之间的引用,并运行程序结果。前提条件基本要求Go 1.18 及更高版本合适的编译工具 - text编辑器也满足要求命令终端 - Linux、Mac系统sh
go 的编译是以 package main 的 main() 函数作为主入口,生成可执行文件。若 build 的是非 main 包,则不会生成可执行文件,只检查是否可执行编译。可以输入 go help build 查看官方解释。go build 编译包时,会忽略“_test.go”结尾的文件(即测试文件)参数 含义-o output 指定编译输出的名称,代替包名-i install 安装作为目标的
转载 2024-07-08 08:02:08
122阅读
1.1 框架排名Gin 31k [Lite]Beego 22kIris 16kEcho 15k [Lite]Revel 11kMartini 10k [×]buffalo 5k [Lite]1.2 框架特性Gin:Gin 是一个用 Go (Golang) 编写的 web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 http
转载 2023-12-06 20:35:50
578阅读
  • 1
  • 2
  • 3
  • 4
  • 5