快乐的程序员
elasticsearch基本用法 elasticsearch基本用法
写在前面之前介绍过es基本概念 ElasticSearch学习文档-入门篇,本文将介绍es的基本用法 IndexPUT# 创建索引 - PUT /索引名 ====> PUT /products - 注意: 1.ES中索引健康转态
2024-04-22
微服务之间数据传递方式:RESTful、GraphQL还是gRPC 微服务之间数据传递方式:RESTful、GraphQL还是gRPC
写在前面在现代的软件工程中,微服务或在客户端与服务端之间的信息传递的方式,比较常见的有三种架构设计的风格:RESTful、GraphQL和gRPC。 每一种模式,都有其特点和合适的使用场景,今天,我们主要来对三种风格做一个深入的理解和对比,
2024-04-21
手把手教你使用 pprof 手把手教你使用 pprof
写在前面pprof 是 Go 语言自带的性能分析工具,用于识别和解决应用程序中的性能瓶颈问题。大家应该或多或少有听说过 “三高代码”,这里的 “三高” 并不是指 “高血压、高血糖、高血脂”,而是指 ”高性能、高并发、高可用“,而 pprof
2024-04-21
分布式锁需要注意什么问题 分布式锁需要注意什么问题
写在前面在分布式系统中,实现分布式锁是一项常见的需求。为了追求性能,通常使用Redis使用分布式锁,但是想要实现高性能并且数据安全的分布式锁,并非易事,先看一下分布式锁要满足哪些特性。 需要注意的问题 互斥,一个线程获取到锁,其他线程只能等
2024-04-20
redis的hash的冲突和扩容问题 redis的hash的冲突和扩容问题
写在前面redis hash的冲突和扩容问题在面试过程中经常遇到,本文就来总结一下。 数据结构哈希表实际上是一个数组,数组里多每一个元素就是一个哈希桶。 typedef struct dict{ dictType *type; //
2024-04-20
mysql B+树的索引一般有多少层 mysql B+树的索引一般有多少层
写在前面这个问题在实际工作中可能作用不大,但是面试过程中可能会被问到,这就涉及到对B+树以及InnoDB页的了解。本文将分析这个问题。 答案首先回答这个问题:一般是1-3层。 InnoDB页在 MySQL 中我们的 InnoDB 页的大小默
2024-04-20
kafka零拷贝原理 kafka零拷贝原理
写在前面这个问题经常在面试中出现,本文将详细介绍它的底层原理 零拷贝是什么意思零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数。通常是说在 IO 读写过程中。 实际上,零拷贝是有广义和狭义之分,目前我们通常听到的零拷贝,包括上面这个定义减少
2024-04-18
go singleflight源码解读 go singleflight源码解读
写在前面go singleflight提供了一个重复的函数调用抑制机制,这个库的主要作用就是将一组相同的请求合并成一个请求,实际上只会去请求一次,然后对所有的请求返回相同的结果。其本质是对函数调用的结果进行复用。 为什么需要singlefl
2024-04-15
rpc协议最重要的2个内容:编码和协议 rpc协议最重要的2个内容:编码和协议
写在前面之前用7天实现了一个grpc框架7d-rpc, 了解了rpc框架底层原理,其中最重要的部分就是编码和协议,其他都是附加功能。如果将rpc框架比作一个人,那编码和协议就是大脑和心脏,其他功能就是手和足,比如:服务发现、负载均衡、客户端
2024-04-15
害怕01背包问题的同学看过来,今天就把它讲清楚 害怕01背包问题的同学看过来,今天就把它讲清楚
写在前面背包问题相信是很多同学害怕的问题,包括作者自己。本文将彻底把01背包问题讲透彻,争取下次遇到类似问题能轻松解决。 最近面试遇到一个算法题:给定一个数组,如nums=[1,2,3,4,6],判断能不能将它分成2个子数组,2个子数组内元
2024-04-12
56.6K个star的开源GPT,本机就能运行 56.6K个star的开源GPT,本机就能运行
废话不多说,直接上开源项目地址:https://github.com/xtekky/gpt4free 最简单的部署方式:Docker // 拉取镜像 docker pull hlohaus789/g4f // 根据镜像启动容器 do
2024-04-11
算法:求小于指定数字n的每个数字的质数数量之和 算法:求小于指定数字n的每个数字的质数数量之和
写在前面今天面试遇到一个算法题,不难,但是没有想到最优解,记录一下 题目描述给定一个数字n(2<=n<=100),计算[2,n]之间每个数字的质数的数量,返回总和 示例:n=8 解析:2=2,3=3,4=22,5=5,6=23,
2024-04-10
2 / 22