小技术君


  • Home

  • About

  • Tags

  • Categories

  • Archives

  • Sitemap

  • Book

  • Markdown

  • Search

使用OpenAI的ChatGPT进行智能问答交互的实现

Posted on 2023-03-11 | In ChatGPT |

Image.png

当使用 ChatGPT 进行问答交互时,用户输入的问题需要经过多个组件进行处理,其中包括内容审核、ChatGPT 模型生成回答以及回答的内容审核等。在本文中,我们将详细介绍 ChatGPT 的工作原理,并提供相应的代码示例。

Read more »

API网关的工作原理与实战案例

Posted on 2023-03-09 | In gateway |

Image.png

API网关的工作原理与实战案例

API网关是一个在微服务架构中起到重要作用的组件。它可以处理所有客户端请求并对它们进行统一的管理和路由。本文将介绍API网关的工作原理,并给出一个基于Spring Cloud Gateway的实战案例。

Read more »

hexo 博客加载优化

Posted on 2022-12-24 | In hexo |

hexo 博客加载优化

背景

最近趁着周末折腾自己博客的时候,发现刷页面的时候会有点卡顿,感觉页面性能很低,所以开始了下面的优化,分析下来结果还不错比之前快了很多,那让我们开始吧!

Image.png

简单的来说主要以下几个部分的优化:

  • 压缩静态资源,提高访问速度
  • 图片懒加载
Read more »

Nagle和延迟确认带来的性能问题

Posted on 2022-12-23 | In network |

Nagle和延迟确认带来的性能问题

前言

从网上看到的一个问题的跟踪@林沛满 ,觉得很有意思记录下来

问题背景

从AIX备份数据到Windows极其缓慢,只有1MB/s,备份所用的协议是SFTP,看到这个问题第一反应抓个包,试试Wireshark的三板斧

抓包三板斧

  1. 从Statistics →Summary菜单可见,平均速度是11 Mbit/s,的确只比1 MB/s高一些
Read more »

TCP 的那些事儿(下)

Posted on 2022-12-23 | In network |

TCP 的那些事儿(下)

这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资源,所以,不适合在厕所中阅读。

TCP的RTT算法

从前面的TCP重传机制我们知道Timeout的设置对于重传非常重要。

  • 设长了,重发就慢,丢了老半天才重发,没有效率,性能差;
  • 设短了,会导致可能并没有丢就重发。于是重发的就快,会增加网络拥塞,导致更多的超时,更多的超时导致更多的重发。

而且,这个超时时间在不同的网络的情况下,根本没有办法设置一个死的值。只能动态地设置。 为了动态地设置,TCP引入了RTT——Round Trip Time,也就是一个数据包从发出去到回来的时间。这样发送端就大约知道需要多少的时间,从而可以方便地设置Timeout——RTO(Retransmission TimeOut),以让我们的重传机制更高效。 听起来似乎很简单,好像就是在发送端发包时记下t0,然后接收端再把这个ack回来时再记一个t1,于是RTT = t1 – t0。没那么简单,这只是一个采样,不能代表普遍情况。

Read more »

TCP 的那些事儿(上)

Posted on 2022-12-23 | In network |

TCP 的那些事儿(上)

TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相关的技术文档。

之所以想写这篇文章,目的有三个,

  • 一个是想锻炼一下自己是否可以用简单的篇幅把这么复杂的TCP协议描清楚的能力。
  • 另一个是觉得现在的好多程序员基本上不会认认真真地读本书,喜欢快餐文化,所以,希望这篇快餐文章可以让你对TCP这个古典技术有所了解,并能体会到软件设计中的种种难处。并且你可以从中有一些软件设计上的收获。
  • 最重要的希望这些基础知识可以让你搞清很多以前一些似是而非的东西,并且你能意识到基础的重要。

所以,本文不会面面俱到,只是对TCP协议、算法和原理的科普。

我本来只想写一个篇幅的文章的,但是TCP真TMD的复杂,比C++复杂多了,这30多年来,各种优化变种争论和修改。所以,写着写着就发现只有砍成两篇。

  • 上篇中,主要向你介绍TCP协议的定义和丢包时的重传机制。
  • 下篇中,重点介绍TCP的流迭、拥塞处理。
    Read more »

操作系统-下

Posted on 2022-11-29 | In OS |

Linux操作系统概览

物理内存

  • 物理内存分 NUMA 节点,分别进行管理;
  • 每个 NUMA 节点分成多个内存区域;
  • 每个内存区域分成多个物理页面;
  • 伙伴系统将多个连续的页面作为一个大的内存块分配给上层;
  • kswapd 负责物理页面的换入换出;
  • Slub Allocator 将从伙伴系统申请的大内存块切成小块,分配给其他系统
Read more »

操作系统-上

Posted on 2022-11-28 | In OS |

Linux操作系统概览

内核初始化

用户态 - 系统调用 - 保存寄存器 - 内核态执行系统调用 - 恢复寄存器 - 返回用户态

Image.png

Read more »

官方翻墙服务,多条线路,IP不怕被墙

Posted on 2022-08-15 | In vpn |

Just My Socks:搬瓦工官方翻墙服务,多条线路,IP不怕被墙

力荐!Just My Socks - 非常靠谱稳定的shadowsocks/V2ray代理服务!

文章目录

  1. Just My Socks介绍
  2. Just My Socks购买
  3. Just My Socks优惠码
  4. Just My Socks注册
  5. Just My Socks信息查看
  6. Just My Socks怎么用

Just My Socks是目前非常火热的一个Shadowsocks/V2ray服务商(机场),由搬瓦工官方推出,每个服务提供5条线路,包括最快的CN2 GIA线路。Just My Socks最大的优势是保证IP不被墙,如果IP被墙,会自动更换新的可用IP给用户。对于只是需要翻墙看看YouTube、ins或者谷歌以及谷歌学术的朋友,Just My Socks是一个非常合适的选择。

Read more »

查询一行数据怎么很慢?

Posted on 2021-11-02 | In mysql |
为什么查询一行数据也很慢?

1.MySQL数据库本身被堵住了,比如:系统或网络资源不够

2.SQL语句被堵住了,比如:表锁,行锁等,导致存储引擎不执行对应的SQL语句

3.确实是索引使用不当,没有走索引

4.表中数据的特点导致的,走了索引,但回表次数庞大

SQL语句被堵住的原因

  • 表锁
1
mysql> select * from t where id=1;

长时间不返回,一般碰到这种情况的话,大概率是表 t 被锁住了。接下来分析原因的时候,一般都是首先执行一下

show processlist 命令,看看当前语句处于什么状态。然后我们再针对每种状态,去分析它们产生的原因、如何复

现,以及如何处理。

Read more »
12…15
小技术君

小技术君

桃李不言 下自成蹊

144 posts
23 categories
49 tags
RSS
GitHub Email
友情链接
  • Chris Blog
  • VPN
© 2015 — 2023 Chris
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4