.bash_profile配置-命令行工具代理
mac的终端中要让命令行工具使用代理,在.bash_profile中写入如下代码。用proxy命令开启,unproxy命令关闭。 注意:命令默认是一次性的、临时生效的。 alias proxy=" export http_proxy=socks5://127.0.0.1:7890; export https_proxy=socks5://127.0…
.vimrc配置文件
" ---------------------------- " 基础设置 " ---------------------------- " 开启语法高亮 syntax on " 显示行号 set number " 搜索高亮 set hlsearch set incsearch " 启用鼠标操作(可选) set mouse=a " 显示状态栏 se…
httpclient与hertzclient在处理Host header时的差别
本文中的Host header、request.header.host、req.Header["Host"]都指的是请求头中的“Host”字段。 问题提出 在请求转发的过程中,需要从原请求中拿到一些信息来构造新的转发出去的请求,其中就有Host header的问题。一开始我使用的是httpclient,复制请求头的逻辑就是清除一些字段后直接全部复制…
apollo配置实时生效:监听器与channel实现
问题提出 Apollo 是携程开源的分布式配置管理中心,用于统一管理和动态更新应用配置,支持多环境、多命名空间、高可用部署,应用通过客户端 SDK 实现实时拉取和热刷新配置,无需重启即可生效,广泛应用于微服务架构中。本文主要就是探讨两种实现热刷新配置的方法:监听器与channel实现。两者主要的区别是:可以把监听器理解为“事件推送”,channel…
在 Golang 中复用 HTTP 连接
问题提出 最近在实现一个转发大模型调用请求的中转功能,涉及到要构造client发送请求的内容,一开始我每次都是新建一个client来发送请求,这样的代码实现存在一些问题——每次都要构造新的client,并且要重新建立连接。后面了解到在Go中使用 HTTP 客户端(http.Client)可以实现连接复用,做到提高性能并减少 TCP 连接的重复建立。…
流式与非流式有什么区别
问题提出 最近在实现一个转发大模型调用请求的中转功能,因为现在的大模型都支持流式与非流式调用,所以我在实现的时候自然而然的想到了要不要区分两种调用方式,使用不同的代码逻辑。一开始写的时候分开了两个调用方式来写,后来发现这两种方式对于服务端来说实际没有区别,重点在于客户端的使用。 原理探寻 首先看一下两种调用方式实际返回的数据。 ==== 非流式调用…
ST稀疏表 (Sparse Table)
稀疏表常用于解决RMQ问题(区间最大/小值查询问题),稀疏表仅支持高效的查询操作,并不支持动态修改操作。其实现主要基于倍增思想和动态规划。 稀疏表最主要的思想就是将区间分为两个子区间,例如[l,r]分成[l,l+2^k-1]和[r-2^k+1,r],其中k=log2(r-l+1)向下取整。 其本质上就是用两个长度为 2^k 的重叠区间覆盖 [l,r…
thumbnail
昇思+香橙派 AI 开发实践:DeepSeek 全流程指南(基于 openEuler)
一、  环境准备 1. 镜像烧录 镜像烧录可以在任何操作系统内执⾏,这⾥以在Windows系统为例,使用balenaEtcher⼯具,快速烧录镜像到Micro SD卡中。 本章节所需的软/硬件如下: 软件相关:balenaEtcher制卡⼯具、openEuler镜像 硬件相关:TF卡(64G存储卡)、读卡器 balenaEtcher制卡⼯…
thumbnail
中断、轮询机制、事件机制与事件循环
中断 中断是一种由硬件或软件触发的机制,当某个事件(如外设准备好数据、定时器到期)发生时,设备向CPU发送信号,CPU暂停当前执行的任务,保存现场,跳转执行对应的中断服务程序(ISR)处理该事件。处理完成后,CPU恢复之前的任务,保证及时响应外部或内部事件,提高系统响应效率和并发能力。 轮询机制 轮询是CPU主动周期性地检查设备状态或某个条件是否满…
thumbnail
【软件架构设计模式】MVC、MVP、MVVM辨析
在学习编码的过程中,我们最常听到 Spring MVC 中的 MVC ,与 Vue 中的 MVVM 。他们实际上都是“架构设计模式”中的一种设计思路,并不专属于前端或后端,任何地方只要涉及“界面 + 业务逻辑 + 数据”,理论上都能用这些设计思想来组织代码。接下来,我们按照架构演进的顺序来分别介绍三种设计模式。 MVC(Model-View-Con…