- 博客(242)
- 资源 (7)
- 收藏
- 关注

原创 [每周一更]-(第57期):用Docker、Docker-compose部署一个完整的前后端go+vue分离项目
其中,使用默认的 IPAM 驱动程序,并为网络分配了 177.7.0.0/16 的子网。通过 -v 挂载证书,通过-p 映射端口也是可以的,存在docker中有多个nginx的情况,就代理转发一下, 参考地址:Docker多nginx方案:https://juejin.cn/post/6847902222760558599#heading-11。另外,命令 docker system prune 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。
2023-08-04 17:25:20
1031

原创 [每周一更]-(第15期):网络抓包神器-tcpdump
有时,我们的HTTP应用并不是开放在80端口上,而是使用了自定义端口方法:Wireshark主界面,Edit->Preferences…->Protocols,选中HTTP, TCP ports中添加新的自定义端口号。
2022-10-07 22:02:15
2592
3

原创 Nginx 网站使用 acme配置 DNS方式 https证书访问 泛域名
2020年写过一篇通过acme的http方式生成证书,热度很高,但是Nginx 网站使用 acme配置 https证书访问步骤主要是单域名证书申请,今天追加另一种DNS方式配置证书申请泛域名方式。安装 acme.sh这里不再赘述安装,直接参考:https://github.com/acmesh-official/acme.sh/wiki/How-to-install申请阿里云子账户(需要该域名的所有者开通子账户用户解析dns能力)第3步:生成泛域名证书:(会自动在域名所属服务器添加解析记录:_acme-c
2022-06-30 22:46:08
9426

原创 Nginx 网站使用 acme配置 https证书访问步骤
https://blog.ekanshu.com.cn 使用 acme配置 https访问错误信息由于之前配置过,从新使用名称更新配置文件的时候发现报错,信息如下做个记录,我们不深究先从新生成证书acme.sh --renew -d blog.ekanshu.com.cn[Tue Sep 1 17:15:35 CST 2020] Renew: 'blog.ekanshu.com.cn'[Tue Sep 1 17:15:36 CST 2020] Single domain='blog.ek
2020-09-03 17:45:05
73127
6

原创 Nginx配置移动端和电脑端自动双向跳转(301重定向的实际场景,附带apache配置)
Nginx配置移动端和电脑端自动双向跳转场景(其实也是301重定向的场景)pc端、www.ekanshu.com.cn 、 用于pc端访问移动端、m.ekanshu.com.cn、用于移动端访问需求在移动端访问www.ekanshu.com.cn和m.ekanshu.com.cn都跳转到m.ekanshu.com.cn实现方案判断客户端的设备类型要想让网站适配PC和手机设备,首先要能做出准确的判断。HTTP请求的Header中的User-Agent可以区分客户端的浏览器类型,
2020-09-03 11:35:38
10506
原创 [每周一更]-(第137期):Go + Gin 实战:Docker Compose + Apache 反向代理全流程
后来我确定应该是DNS解析问题,全貌应该是:泛域名解析到了B服务器中,A服务器又有a.xxx.com和b.xxx.com项目都正常运行,C服务器的api.xxx.com也运行很久了,并且ABC三台服务器都是同一个域名下,子域名的解析会覆盖泛域名的解析,也就是子域名优先级更高,这就解释通了。总结:由于再进行DNS解析,还需要找老板配置,并且还有单独配置项目,毕竟没有项目,这个逻辑就是想配置转发到ip+端口接口,这个就较为繁琐,不是最优方案,接着继续有最优方案。7.1、先排查域名所在的ip是哪个。
2025-03-21 18:41:13
914
原创 [每周一更]-(第136期):微信公众号模板消息全攻略,手把手教你高效触达用户!
提前设置好微信开放平台,绑定小程序和公众号;微信公众号中增加类目,并开通模版消息,添加到自己的模版消息中;通过小程序登录将小程序用户的openid和unionid存储下来;通过接口获取微信公众号中所有用户的openid,通过数据表存储openid及unionid的信息,如数据表:ar_wechat_auth;然后通过业务逻辑中查询到由用户的报告已出,就对应找到小程序中对应的unionid,再对比ar_wechat_auth表中unionid,找到openid;
2025-03-16 19:25:09
864
原创 [工具分享]-短视频制作与 2C 推广:工具、内容与平台运营全解析
近期负责公司2C业务的运营推广,目前单从文本推送同步微博、小红书、知乎、微信公众号,阅读量明显不足,感觉传播形式太单一,想探索下短视频方式,列举一些可能用到的工具,学习共勉。
2025-02-28 18:00:15
565
原创 [每周一更]-(第135期):AI融合本地知识库(RAG),谁才是最强王者!
(检索增强生成)的缩写,是一种结合了信息检索和文本生成技术的AI方法。它在自然语言处理(NLP)领域中广泛应用,特别是在需要从大量数据中提取知识并生成准确、自然回答的场景下。本地部署与知识库的对于企业的意义最大,对于个人而言,也是一个能力放大器,也可以将个人能力无限放大。,它支持 DeepSeek + FAISS 直接在 UI 里管理知识库。能将用户提问结合一个个性化的知识库,整合起来生成答案给到用户。,避免幻觉(hallucination)。如果你想要更简便的方式,可以使用。,如果你希望更灵活,
2025-02-21 17:54:29
969
原创 [每周一更]-(第134期):手把手教你在个人电脑部署 DeepSeek-R1 蒸馏模型!
关键词:Ollama、DeepSeek、LM Studio、AnythinkLLM、ChatBox、CherryStudio、Dify
2025-02-14 14:28:24
867
原创 [每周一更]-(第133期):Go中MapReduce架构思想的使用场景
在 Go 中,虽然没有内置的 MapReduce 框架,但我们可以利用 Go 的并发特性(如 goroutines 和 channels)来实现 MapReduce。在需要并发处理的场景中,例如查询数据库,MapReduce 可以将任务拆分成并发请求,从而减少处理时间并提高性能。大型数据集被分成较小的部分,由不同的机器或线程处理,然后合并。它的核心思想是将问题分解成多个较小的子问题并行处理,然后将结果合并。通过 Go 的并发模型,可以利用多个 CPU 核心实现 MapReduce 的并行计算。
2025-02-08 15:54:11
1207
原创 [每周一更]-(第132期):AI工具集对比
AI是指机器模拟人类认知功能的能力,比如学习(Learning)、推理(Reasoning)、感知(Perception)和行动(Action)等。WindsurfEditor是一款由Codeium开发的AI驱动代码编辑器,旨在提高开发者的生产力和编程体验。它结合了强大的AI代理和直观的协同工作功能,提供了智能代码补全、错误检测、代码重构等多种功能。GitHubCopilot是一个由GitHub和OpenAI联合开发的AI驱动代码助手,旨在帮助开发者更高效地编写代码。
2025-01-18 22:19:53
1241
原创 [每周一更]-(第131期):Go并发协程总结篇
Go语言的并发是通过协程(goroutine)实现的。Go协程是轻量级的线程,允许多个任务同时执行,且Go运行时会高效地管理它们。在Go中使用并发协程的方式非常简便,也很强大。
2025-01-12 21:23:28
559
原创 [每周一更]-(第130期):微服务-Go语言服务注册中心的中间件对比
服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。服务注册中心(Registry)
2025-01-03 19:11:44
1017
原创 [每周一更]-(第129期):Go微服务常用脚手架
微服务的技能,已经全面铺开了,感觉现在你是后端开发出门说没用过微服务,就跟没见过世面一样,虽然微服务也是看体量的,不合时宜的微服务搭建,也会耗费更多的成本,但:谁让领导爱看,同事爱探索呢!
2024-12-28 00:03:33
1111
原创 [每周一更]-(第128期):CentOS源码安装PostgreSQL
源码安装 PostgreSQL(pgSQL)是一种灵活的安装方式,适用于需要自定义配置或无法使用包管理器的情况。如果使用云服务器,还需要在云服务商控制台开放 5432 端口。我用的云服务器,需要添加端口;为了方便使用,可以将 PostgreSQL 的二进制路径添加到。选择需要的版本,下载源码包。脚本配置安装路径及其他选项。PostgreSQL 默认使用端口。配置文件(位于数据目录。,确保防火墙未拦截该端口。
2024-12-20 13:57:11
1266
原创 [数据库]-MySQL聚合函数从having开始
聚合函数(Aggregate Functions)是关系型数据库(如 MySQL、PostgreSQL、Oracle)中用于对一组值执行计算并返回单一结果的函数。:聚合查询会遍历大量数据,为了提高性能,可以基于索引优化,尤其是范围查询或分组计算时。窗口函数将聚合和行级别数据结合,使得每行都可以保留原始值,同时计算某些聚合结果。针对大规模数据量,可以使用分片聚合或分步聚合的方式,提高性能。将数据按总数划分为百分比分组,可以帮助分析数据的分布情况。:计算某列的平均值,例如平均薪资、平均评分。
2024-12-20 13:56:17
873
原创 [每周一更]-(第127期):Go新项目-Gin中使用超时中间件实战(11)
在项目不断迭代过程中,发现基础架构中,没有进行超时控制,有些接口由于网络延迟以及远程调用等情况存在请求时间过长的问题,消耗了资源,也降低了用户体验,这一讲我们聊下超时控制中间件,来完善我们的基础架构,这里我们采用Context来实现。在 Gin 框架中,如果某些接口需要明确的超时时间(例如避免长时间阻塞的请求),可以使用一个针对接口超时时间的中间件。这种中间件可以为每个请求设置一个上下文(context.Context),并通过 context.WithTimeout 来管理请求的生命周期。
2024-12-14 18:22:04
1172
原创 [每周一更]-(第126期):MQ解耦场景
消息队列(MQ)解耦是一种软件架构设计模式,主要通过中间件将系统中的生产者和消费者模块分离,减少模块之间的直接依赖,使系统具有更高的扩展性和灵活性。这种模式尤其适用于需要处理复杂业务逻辑、频繁请求或异步处理的场景。
2024-12-06 14:39:30
821
原创 [每周一更]-(第125期):模拟面试|NoSQL面试思路解析
候选主节点(Candidate Master):在选举过程中,任何节点都可以成为候选主节点。投票节点(Voting Node):参与主节点选举的节点。投票节点是具备选举资格的节点,但未必是当前主节点。投票节点可以被选为主节点。引入投票节点的原因是为了提高选举的可靠性和容错能力,确保在网络分区或节点故障的情况下,能够通过多数投票机制选举出有效的主节点。是指在写入操作完成后,数据最终被持久化到硬盘的时间点。保证数据一致性:确保所有写入操作在特定时间点被可靠地持久化。优化性能。
2024-11-29 11:30:14
1171
原创 [Go]-控制 Goroutine 数量的代码实现过程
Go在处理多任务的过程,很容易有通道并发操作,这里讲解一个常见的并发控制流程,通过控制Goroutine的数量,来防止过多的 Goroutine 会导致调度开销过高,甚至耗尽内存或文件描述符。的方式,实现了高效的并发任务调度,是 Go 并发编程中的经典模式之一。代码实现了一个固定 Goroutine 池来并发处理任务的模型。: 限制 Goroutine 的最大并发数量。
2024-11-26 10:05:01
1049
原创 [面试]-golang基础面试题总结
谷歌开发的一种系统编程语言。它具有内置的垃圾收集机制并支持并发。代码可以编译成单个可执行二进制文件,不需要添加库或运行时环境即可在服务器上执行。
2024-11-22 14:54:49
1077
原创 [每周一更]-(第124期):模拟面试|缓存面试思路解析
最少使用策略。缓存会优先淘汰访问频率最低的数据,即被访问次数最少的元素。:最近最少使用策略。优先淘汰一段时间内没有被访问的数据,即最近最少使用的元素。示例代码展示一个简单的 LRU 缓存,可以使用 Python 的python复制代码from collections import OrderedDictreturn -1self.cache.move_to_end(key) # 将访问的 key 移到末尾self.cache.popitem(last=False) # 删除最旧的# 使用示例。
2024-11-22 14:33:09
1417
原创 [Go]-sync.map使用详解
并不适合所有并发场景。对于读写比例相对均衡,且需要进行大量写操作的情况,使用传统的。时,可能会导致程序出现未定义的行为,比如数据竞争、程序崩溃等。当多个 goroutine 同时读写一个普通。遍历过程中会对每个键值对调用传入的函数。是 Go 语言中在并发环境下使用的安全映射类型。则专门设计用于在并发环境下安全地进行读写操作。:读取一个键对应的值。已经存在,则会更新对应的值。在 Go 语言中,普通的。存在,则返回对应的值和。中获取对应的值,如果。中删除对应的键值对。
2024-11-15 12:36:41
858
原创 [每周一更]-(第123期):模拟面试|消息队列面试思路解析
SAGA 事务是一种分布式事务管理模式,分为一系列的子事务,每个子事务要么成功要么补偿。设计 SAGA 事务框架:可以使用事件驱动的方式,每个子事务完成时,通过消息队列通知下一个事务开始执行。如某子事务失败,发布回滚事件,按逆序触发补偿操作。这样,确保在分布式环境中保持数据一致性。延迟消息是一种在特定延迟时间后再发送给消费者的消息。常见的应用场景有订单超时取消、定时提醒、延迟执行任务等。死信队列:消息在原队列因超时、被拒绝或超出重试次数等情况转发到的特殊队列。消息 TTL。
2024-11-15 10:02:23
1378
原创 [每周一更]-(第122期):模拟面试|数据库面试思路解析
两阶段提交协议(2PC)**是一种经典的分布式事务管理协议,分为**准备阶段和提交阶段。准备阶段:事务协调者请求所有分布式节点是否可以提交事务,所有节点预写日志并锁定资源,向协调者返回准备就绪。提交阶段:协调者根据返回状态,统一决定是提交还是回滚。缺点阻塞性:在等待协调者决定时,资源被锁定。单点故障:协调者若发生故障,会导致整个事务阻塞。一致性不足:若在提交阶段网络故障,可能出现部分提交,破坏一致性。三阶段提交协议(3PC)*是在两阶段的基础上增加一个阶段以减少阻塞,分为*准备阶段预提交阶段。
2024-11-08 14:34:06
1214
原创 [每周一更]-(第121期):模拟面试|微服务架构面试思路解析
微服务架构是一种将应用程序拆分为多个小而独立服务的设计方法,每个服务围绕特定的业务功能构建,具有独立的代码库、数据库和生命周期。每个微服务通常通过轻量级通信协议(如HTTP或gRPC)来实现服务间通信。这种架构使得开发团队可以独立地构建、部署和扩展每个服务,有助于增加系统的灵活性和弹性,但也带来了服务协调和复杂度管理的挑战。
2024-11-01 18:15:19
1008
原创 [每周一更]-(第120期):Lua入门学习指南及示例
Lua(发音:/ˈluːə/)是一个简洁、轻量、可扩展的脚本语言。Lua有着相对简单的C语言API而很容易嵌入应用中。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。多范型脚本指令式过程式基于原型面向对象),函数式。
2024-10-25 18:48:10
1819
原创 [每周一更]-(第119期):“BP”大揭秘:生物学与金融学中的微小单位竟有如此大不同!
组成碱基对的碱基包括腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)、胞嘧啶(C)、脲嘧啶(U)。在DNA或某些双链RNA分子结构中,由于碱基之间的氢键具有固定的数目和DNA两条链之间的距离保持不变,使碱基配对遵循一定的规律,腺嘌呤一定与胸腺嘧啶或者在RNA中的尿嘧啶配对,鸟嘌呤与胞嘧啶配对。DNA中的碱基有四种:腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)、胞嘧啶(C)。它的写法和用法相对直接,一般用作数量的单位,尤其在基因组测序或基因表达分析中,指代核酸链中的碱基对数量。在金融学中,“BP”代表的是。
2024-10-18 10:22:46
1880
原创 [每周一更]-(第118期):Go并发下载中分片应该如何设置?
最近处理个需求,在服务器中压缩一个文件,然后进行下载到本地操作,但是由于文件大小不一,设置并发下载的时候就指定了固定的并发数,但是这个并发数应该如何设置更能提升效率呢,我们下边来分析下:我个人方法是通过文件大小判断,然后设置不同的并发数,然后通过文件大小和并发数平均分,来进行并发下载,来提升效率,当然还有很多其他方面考虑;在 Go 并发分片下载的设计中,分片的设置对性能有着关键影响。综合分析分片大小应该根据以下几个主要因素来动态调整,以达到最优的下载效率。
2024-10-11 14:33:36
870
原创 [每周一更]-(第117期):硬盘分区表类型:MBR和GPT区别
MBR(Master Boot Record)和 GPT(GUID Partition Table)是两种不同的硬盘分区表类型,它们定义了硬盘的分区方式和存储信息的结构。它们有几个关键区别,影响了它们的适用场景和功能特性。在一次扫描机械硬盘故障的问题,发现我本机SSD和机械硬盘的分类型不一样,分别是GPT和MBR,这里就介绍下两者区别。一般来说,对于新硬盘、大容量硬盘以及新系统,推荐使用 GPT。而对于兼容性要求较高的老系统,可以选择 MBR。
2024-09-30 15:43:22
1587
原创 [每周一更]-(第116期):Fiddler4抓包工具完整抓APP
抓包工具 fidder4fidder4是一款基于windows灵活的抓包工具,可抓取pc端移动端的网络数据包。安装安装:fidder 4下载:https://www.telerik.com/download/fiddler/fiddler4使用。
2024-09-27 16:12:44
1252
原创 [每周一更]-(第115期):不同系统安装godoc
通过编写良好的代码注释并使用godoc工具,您可以轻松为自己的项目生成详细的业务文档。这对于代码维护、团队协作和项目发布都是非常有帮助的。
2024-09-21 16:17:37
1050
原创 [每周一更]-(第114期):介绍GitLab不同角色对应的权限
工作中一直使用Gitlab搭建了公司内网的代码管理工具,但是不同的用户会分配相应的权限,来管理不同用户及角色的权限信息,我们来介绍下角色的信息,方便我们管理公司内部权限分配问题,确保团队可以更好地协作,确保项目的高效开发和安全管理。GitLab 的用户角色和权限管理系统使得团队可以灵活地控制和管理项目的访问和操作权限。在 GitLab 中,角色分为项目级别和组级别,每个角色对应不同的权限级别。主要角色包括 Guest、Reporter、Developer、Maintainer 和 Owner。
2024-09-14 11:23:20
1376
原创 [Go]-抢购类业务方案
抢购类业务常用于促销活动,如热销白酒、大月饼、低价显卡、抢票,用户是想挤进去抢到东西,商家端是吸引更多的流量,但是东西就是固定数额,肯定不想被恶意刷单或者超卖等场景,这就对系统有强烈要求,这类业务需要处理高并发请求,以确保系统的稳定性和公平性,同时避免超卖现象。Go语言在此类业务中有相当的优势,内存消耗低,天生支持并发,还可以离线打包,做一些小工具很方便。抢购业务中,许多操作可以异步化处理,如订单生成、库存核减、用户通知等。公司业务中,防止频繁搜索,爬虫等,会用到令牌桶,进行限流。
2024-09-06 18:21:28
1845
5
原创 [每周一更]-(第113期):JWT说明以及与Session,Cookie区别
JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。直白的讲jwt就是一种用户认证(区别于session、cookie)的解决方案。
2024-09-06 11:25:20
1206
原创 [每周一更]-(第112期):WDL(Workflow Description Language)说明及使用示例
WDL(Workflow Description Language)是一种用于定义数据处理工作流的语言,旨在帮助研究人员和开发人员描述和执行复杂的数据处理任务。WDL主要用于生物信息学领域,但也适用于其他需要定义多步骤数据处理的领域。WDL的设计目的是简单、易读、可扩展,并与各种执行引擎兼容,如Cromwell和MiniWDL。WDL是一种强大且灵活的工作流描述语言,适用于各种复杂的数据处理任务。通过定义任务和工作流,研究人员和开发人员可以轻松描述和执行多步骤的数据处理管道。
2024-08-30 17:04:39
1239
原创 [Other]-安装ruby、ascli、ascp
最近新接到这样一个需求,将生物原始数据上传到某中心,其中用到ascp命令,阴差阳错的装了ruby、ascli,这里就都一并介绍下安装方式,由于服务器老旧默认安装时ruby2.0,又升级到2.7等引发的一系列问题,算是学习科普文了。是一种灵活、动态的编程语言,广泛用于 Web 开发、自动化等领域。是 IBM Aspera 的命令行接口工具,用于管理和传输大规模数据。是 Aspera 的核心传输工具,专注于高速、安全的文件传输,特别适用于在不良网络条件下传输大文件。1、
2024-08-23 14:14:29
704
原创 [每周一更]-(第111期):从零开始:如何在 CentOS 上源码编译安装 PHP 7.4
配置以下内容,php -m 就会包含:Zend OPcache。php8+需要生成,目前php7.4是自带。执行configure的前置操作。
2024-08-23 14:13:11
945
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人