03 2024 档案

摘要:1、项目介绍 go-wrk是一个强大的HTTP基准测试工具,利用Go语言的并发特性(goroutines和调度器)来生成大规模负载,可以在单个多核CPU上运行并达到显著的性能。这个项目最初的目的是对比Go和C语言在构建类似工具时的性能和代码复杂度,结果显示Go语言的性能同样出色,且代码量更少。 2、 阅读全文
posted @ 2024-03-29 19:55 李若盛开 阅读(55) 评论(0) 推荐(0) 编辑
摘要:nsq最初是由bitly公司开源出来的一款简单易用的消息中间件,它可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息。它有以下特性: 分布式。它提供了分布式的、去中心化且没有单点故障的拓扑结构,稳定的消息传输发布保障,能够具有高容错和高可用特性。 易于扩展。它支持水平扩展,没有中心化的 阅读全文
posted @ 2024-03-29 19:18 李若盛开 阅读(131) 评论(0) 推荐(0) 编辑
摘要:TCP 作为一个靠谱的协议,在传输数据的前后,需要在双端之间建立连接,并在双端各自维护连接的状态。TCP 并没有什么特别之处,在面对多变的网络情况,也只能通过不断的重传和各种算法来保证可靠性。建立连接前,TCP 会通过三次握手来保证双端状态正确,然后就可以正常传输数据了。当数据传输完成,需要断开连接 阅读全文
posted @ 2024-03-29 13:11 李若盛开 阅读(56) 评论(0) 推荐(0) 编辑
摘要:OSI七层网络模型 OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。 从下往上,记忆口诀:【Please D 阅读全文
posted @ 2024-03-27 22:20 李若盛开 阅读(434) 评论(0) 推荐(0) 编辑
摘要:第1周学习内容: 1、学习《软件设计师官方教程【第5版】》 第1章计算机系统知识。 第2-3周学习内容: 1、学习《软件设计师官方教程【第5版】》 第2章程序设计语言。 2、学习《软件设计师官方教程【第5版】》 第3章数据结构(线性结构、数组、矩阵和广义表和树三部分,对应前1-3个知识点)。 第4- 阅读全文
posted @ 2024-03-27 22:17 李若盛开 阅读(43) 评论(0) 推荐(0) 编辑
摘要:背景介绍 目前开发的产品架构采用微服务架构,微服务之间通信的消息格式则使用的proto3标准协议格式。 proto介绍 全称Protocol Buffers是Google公司开发的一种数据描述语言,是一种类似 XML但更灵活和高效的结构化数据存储格式,可用于结构化数据的序列化,适用于数据存储、RPC 阅读全文
posted @ 2024-03-25 20:34 李若盛开 阅读(478) 评论(0) 推荐(0) 编辑
摘要:第一章 MySQL 的灵活性体现在很多方面,但其中最与众不同的特性是它的存储引擎架构:将查询处理以及其他系统任务和数据的存储/提取相分离。这种设计使得可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。 MySQL 架构整体上分为三层:第一层处理连接、权限等;第二层包含所有核心的功能,例如 阅读全文
posted @ 2024-03-24 21:57 李若盛开 阅读(153) 评论(0) 推荐(0) 编辑
摘要:背景 缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,针对不同的要求,选择恰到好处的一致性方案。 缓存是什么 存储的速度是有区别的。缓存就是把低速存储的结果,临时保存在高速存储的技术。 如图所示,金字塔上层的存储,可以作为下层存储的缓存。 数据存储和访 阅读全文
posted @ 2024-03-24 16:48 李若盛开 阅读(924) 评论(0) 推荐(0) 编辑
摘要:什么是DoS攻击 DoS 攻击,又叫拒绝服务攻击,按照字面意思就是服务因为遭到攻击而被拒绝,这种情况往往伴随着大量的流量。 流量就是人们请求某个网站,网站会相应的返回人们请求的数据,这种行为产生的名词就可以看成是流量。 有益的流量,不仅可以帮助人们搜索到想要的信息,还能对网站本身带来直接或者间接收益 阅读全文
posted @ 2024-03-24 00:34 李若盛开 阅读(70) 评论(0) 推荐(0) 编辑
摘要:第三次的ack包丢失就是说在client端接收到syn + ack之后,向server发送的ack包,由于各种原因server没有收到。这时client, server分别会进行怎样的处理? Server 端 第三次的ACK在网络中丢失,那么Server 端该TCP连接的状态为SYN_RECV,此时 阅读全文
posted @ 2024-03-23 22:18 李若盛开 阅读(363) 评论(0) 推荐(0) 编辑
摘要:DNS(Domain Name System)使用UDP(User Datagram Protocol)而不是TCP(Transmission Control Protocol)的主要原因是出于性能和效率的考虑,有以下几点: 小型请求和快速响应:DNS查询通常是小型请求,仅需要几个字节的数据传输。U 阅读全文
posted @ 2024-03-23 16:19 李若盛开 阅读(1471) 评论(0) 推荐(0) 编辑
摘要:channel是引用类型,需要实用make来创建channel,如下 make(chan Type, [buffer]) chan Type 通道的类型buffer 是可选参数,代表通道缓冲区的大小(省略则代表无缓冲) 使用make创建channel,第一个参数是channel类型。size表示缓冲 阅读全文
posted @ 2024-03-23 00:31 李若盛开 阅读(84) 评论(0) 推荐(0) 编辑
摘要:1. 什么是websocket WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议) 它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的 Websocket是一个持久化的协议 2. websocket的原理 websock 阅读全文
posted @ 2024-03-22 23:46 李若盛开 阅读(265) 评论(0) 推荐(0) 编辑
摘要:1)var 变量声明多用于全局变量 var name type // var 变量名 数据类型 定义一个 type 类型的变量 name, 并分配内存空间给 name 赋 type 类型的零值。 var name *type 定义一个 type 类型的指针变量 name, 指针变量不分配内存空间,零 阅读全文
posted @ 2024-03-20 14:06 李若盛开 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1.工作位置: 在OSI七层模型中,TCP和UDP工作在传输层,使源端主机和目标主机上提供端到端的会话,也就是常说的端口号,因为ip协议可能分组经过不同的路由路径传输,因此主机的ip层不保证顺序,也不保证一定收到,因此在传输层就需要做到一些事情: 提供端到端的数据传递 顺序保证 可靠性保证 2.TC 阅读全文
posted @ 2024-03-20 00:31 李若盛开 阅读(64) 评论(0) 推荐(0) 编辑
摘要:接口 接口(interface)定义了一个对象的行为规范,之定义规范不实现,由具体的对象来实现规范的细节。 接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组method的集合,是duck-type programming的一种体现。接口做的事情就 阅读全文
posted @ 2024-03-17 20:11 李若盛开 阅读(12) 评论(0) 推荐(0) 编辑
摘要:HTTP2.0和TCP的关系 HTTP2.0是2015年推出的,还是比较年轻的,其重要的二进制分帧协议、多路复用、头部压缩、服务端推送等重要优化使HTTP协议真正上了一个新台阶。 像谷歌这种重要的公司并没有满足于此,而且想继续提升HTTP的性能,花最少的时间和资源获取极致体验。 那肯定要问HTTP2 阅读全文
posted @ 2024-03-17 17:53 李若盛开 阅读(58) 评论(0) 推荐(0) 编辑
摘要:随着微服务的迅速发展,各大互联网企业也投入到微服务的使用种。微服务最大的特点是,跨进程、跨服务、跨语言之间的调用,使得我们能够像调用本地类、函数一样。当微服务具备该特点,将我们复杂的业务拆分成不同的服务,服务之间在相互调用。这也是微服务为什么火的原因之一。 要使用好微服务,不仅仅是对业务的拆分能力要 阅读全文
posted @ 2024-03-15 19:32 李若盛开 阅读(460) 评论(0) 推荐(0) 编辑
摘要:一、DNS系统 域名系统(Domain Name System),是因特网使用的命名系统,用来把人们方便记忆的主机名转换为机器方便处理的IP地址。 DNS协议属于应用层协议,一般是运行在UDP协议之上,使用53端口。 二、域名 因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网 阅读全文
posted @ 2024-03-13 22:09 李若盛开 阅读(81) 评论(0) 推荐(0) 编辑
摘要:gRPC和HTTP都是网络协议,但是它们之间存在一些显著的区别。 1、传输协议HTTP使用文本基础的协议,而gRPC使用的是二进制协议,这意味着gRPC数据包更小,传输效率更高。另外,gRPC使用HTTP/2协议,支持多路复用,从而可以更好地处理并发请求。2、性能差异gRPC在性能方面优于HTTP。 阅读全文
posted @ 2024-03-13 13:15 李若盛开 阅读(633) 评论(0) 推荐(0) 编辑
摘要:用法1)主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数(可选参数) package main import "fmt" func test(args ...string) { // 可以接受任意个string参数 for _, v := range args { fmt.Print 阅读全文
posted @ 2024-03-13 13:13 李若盛开 阅读(97) 评论(0) 推荐(0) 编辑
摘要:Redis是一个基于内存的快速数据存储系统。它是一个开源的、内存中的数据库,允许使用者在其内存中存储数据,并提供高度可用性、高性能以及可扩展性的支持。Redis支持多种数据结构,包括字符串、列表、哈希、集合等,并适用于各种场景,包括缓存、会话存储、队列等。 Redis为什么不能存null Redis 阅读全文
posted @ 2024-03-08 13:30 李若盛开 阅读(192) 评论(0) 推荐(0) 编辑
摘要:TiDB概述 TiDB数据库官方网址:https://pingcap.com/zh/ ​TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, 阅读全文
posted @ 2024-03-07 00:06 李若盛开 阅读(3279) 评论(0) 推荐(1) 编辑
摘要:从MySQL架构到TiDB 数据库分类​ 介绍TiDB数据库之前,先引入使用场景。如今的数据库种类繁多,RDBMS(关系型数据库)、NoSQL(Not Only SQL)、NewSQL,在数据库领域均有一席之地,可谓百家争鸣之势。那么为什么要使用TiDB呢?接下来就从最熟悉的MySQL的使用说起。 阅读全文
posted @ 2024-03-06 23:29 李若盛开 阅读(101) 评论(0) 推荐(0) 编辑
摘要:哈希冲突链上的元素只能通过指针逐一查找再操作。如果哈希表里写入的数据越来越多,哈希冲突可能也会越来越多,这就会导致某些哈希冲突链过长,进而导致这个链上的元素查找耗时长,效率降低。对于追求“快”的 Redis 来说,这是不太能接受的。 所以,Redis 会对哈希表做 rehash 操作,也就是增加现有 阅读全文
posted @ 2024-03-06 23:13 李若盛开 阅读(1412) 评论(0) 推荐(0) 编辑
摘要:按照物理实现方式,索引可以分为两大类: 1)聚集索引:在聚集索引里,表中数据行按索引的排序方式进行存储,对查找行很有效。只有当表包含聚集索引时,表内的数据行才会按找索引列的值在磁盘上进行物理排序和存储。每张表只能有一个聚集索引,原因很简单,因为数据行本身只能按一个顺序存储。 特点: 1.索引内容本身 阅读全文
posted @ 2024-03-05 20:17 李若盛开 阅读(1781) 评论(1) 推荐(0) 编辑
摘要:场景: 从dev-test分支上拉取dev分支上的代码(意外操作,本应该拉取dev-test分支) 相当于从一个分支A,切换到分支B,对B分支进行了pull的操作 错误提示: error:you need to resolve your current index first 原因: 在执行pull 阅读全文
posted @ 2024-03-05 19:16 李若盛开 阅读(1519) 评论(0) 推荐(0) 编辑
摘要:1. 字典的实现 redis的字典数据类型的实现主要分为两个部分: typedef struct dict { dictType *type; void *privdata; dictht ht[2]; long rehashidx; unsigned long iterators; } dict; 阅读全文
posted @ 2024-03-04 22:46 李若盛开 阅读(51) 评论(0) 推荐(0) 编辑
摘要:Redis 特点 1. 内存数据库 Redis 数据主要存储在内存,综合性能标准 100k+ QPS。 需要说明下,十万QPS只是个综合参考,实际性能跟CPU性能、操作的命令复杂度有较大关系,对于简单的 set/get 操作50万QPS也没问题。 2. 丰富的数据结构 所有 Redis 的数据都是以 阅读全文
posted @ 2024-03-04 20:31 李若盛开 阅读(265) 评论(0) 推荐(0) 编辑
摘要:ChatGPT是美国OpenAI研发的聊天机器人程序,2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话。 原理 ChatGPT是一种基于人工智能技术的自然语言生成模型,它能够从大量的数据和历史对话中学习,并生成与人类语言相似的输 阅读全文
posted @ 2024-03-02 18:30 李若盛开 阅读(318) 评论(0) 推荐(0) 编辑
摘要:在当今构建软件时,开发者在编程语言上有着丰富的选择。两种脱颖而出的语言是 Go 和 Rust ,都很强大但却截然不同。Rust和Go似乎都是系统编程语言,都编译为机器码,并且都提供了出色的性能。 将权衡它们在并发、安全性、速度、互操作性等方面的方法。将探讨每种语言的优势 - Go 适用于云原生开发, 阅读全文
posted @ 2024-03-02 13:47 李若盛开 阅读(892) 评论(0) 推荐(0) 编辑
摘要:克隆Go项目代码之后发现import里面很多报红,此时已经使用go mod download下载了所有依赖包,仍然报错: 删除.idea文件夹之后,import报红全部消失,项目可正常运行: 阅读全文
posted @ 2024-03-01 19:14 李若盛开 阅读(91) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示