自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hmx224_2014的专栏

后端技术类、容器化、开发语言Go/php/python等

  • 博客(236)
  • 资源 (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 1012

原创 公告:博客地址

我的个人Blog

2023-05-16 10:15:01 110

原创 [每周一更]-(第15期):网络抓包神器-tcpdump

有时,我们的HTTP应用并不是开放在80端口上,而是使用了自定义端口方法:Wireshark主界面,Edit->Preferences…->Protocols,选中HTTP, TCP ports中添加新的自定义端口号。

2022-10-07 22:02:15 2580 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 8972

原创 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 72273 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 10364

原创 [每周一更]-(第132期):AI工具集对比

AI是指机器模拟人类认知功能的能力,比如学习(Learning)、推理(Reasoning)、感知(Perception)和行动(Action)等。WindsurfEditor是一款由Codeium开发的AI驱动代码编辑器,旨在提高开发者的生产力和编程体验。它结合了强大的AI代理和直观的协同工作功能,提供了智能代码补全、错误检测、代码重构等多种功能。GitHubCopilot是一个由GitHub和OpenAI联合开发的AI驱动代码助手,旨在帮助开发者更高效地编写代码。

2025-01-18 22:19:53 1166

原创 [每周一更]-(第131期):Go并发协程总结篇

Go语言的并发是通过协程(goroutine)实现的。Go协程是轻量级的线程,允许多个任务同时执行,且Go运行时会高效地管理它们。在Go中使用并发协程的方式非常简便,也很强大。

2025-01-12 21:23:28 539

原创 [每周一更]-(第130期):微服务-Go语言服务注册中心的中间件对比

服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。服务注册中心(Registry)

2025-01-03 19:11:44 985

原创 [每周一更]-(第129期):Go微服务常用脚手架

微服务的技能,已经全面铺开了,感觉现在你是后端开发出门说没用过微服务,就跟没见过世面一样,虽然微服务也是看体量的,不合时宜的微服务搭建,也会耗费更多的成本,但:谁让领导爱看,同事爱探索呢!

2024-12-28 00:03:33 1034

原创 [每周一更]-(第128期):CentOS源码安装PostgreSQL

源码安装 PostgreSQL(pgSQL)是一种灵活的安装方式,适用于需要自定义配置或无法使用包管理器的情况。如果使用云服务器,还需要在云服务商控制台开放 5432 端口。我用的云服务器,需要添加端口;为了方便使用,可以将 PostgreSQL 的二进制路径添加到。选择需要的版本,下载源码包。脚本配置安装路径及其他选项。PostgreSQL 默认使用端口。配置文件(位于数据目录。,确保防火墙未拦截该端口。

2024-12-20 13:57:11 1237

原创 [数据库]-MySQL聚合函数从having开始

聚合函数(Aggregate Functions)是关系型数据库(如 MySQL、PostgreSQL、Oracle)中用于对一组值执行计算并返回单一结果的函数。:聚合查询会遍历大量数据,为了提高性能,可以基于索引优化,尤其是范围查询或分组计算时。窗口函数将聚合和行级别数据结合,使得每行都可以保留原始值,同时计算某些聚合结果。针对大规模数据量,可以使用分片聚合或分步聚合的方式,提高性能。将数据按总数划分为百分比分组,可以帮助分析数据的分布情况。:计算某列的平均值,例如平均薪资、平均评分。

2024-12-20 13:56:17 814

原创 [每周一更]-(第127期):Go新项目-Gin中使用超时中间件实战(11)

在项目不断迭代过程中,发现基础架构中,没有进行超时控制,有些接口由于网络延迟以及远程调用等情况存在请求时间过长的问题,消耗了资源,也降低了用户体验,这一讲我们聊下超时控制中间件,来完善我们的基础架构,这里我们采用Context来实现。在 Gin 框架中,如果某些接口需要明确的超时时间(例如避免长时间阻塞的请求),可以使用一个针对接口超时时间的中间件。这种中间件可以为每个请求设置一个上下文(context.Context),并通过 context.WithTimeout 来管理请求的生命周期。

2024-12-14 18:22:04 1119

原创 [每周一更]-(第126期):MQ解耦场景

消息队列(MQ)解耦是一种软件架构设计模式,主要通过中间件将系统中的生产者和消费者模块分离,减少模块之间的直接依赖,使系统具有更高的扩展性和灵活性。这种模式尤其适用于需要处理复杂业务逻辑、频繁请求或异步处理的场景。

2024-12-06 14:39:30 791

原创 [每周一更]-(第125期):模拟面试|NoSQL面试思路解析

候选主节点(Candidate Master):在选举过程中,任何节点都可以成为候选主节点。投票节点(Voting Node):参与主节点选举的节点。投票节点是具备选举资格的节点,但未必是当前主节点。投票节点可以被选为主节点。引入投票节点的原因是为了提高选举的可靠性和容错能力,确保在网络分区或节点故障的情况下,能够通过多数投票机制选举出有效的主节点。是指在写入操作完成后,数据最终被持久化到硬盘的时间点。保证数据一致性:确保所有写入操作在特定时间点被可靠地持久化。优化性能。

2024-11-29 11:30:14 1154

原创 [Go]-控制 Goroutine 数量的代码实现过程

Go在处理多任务的过程,很容易有通道并发操作,这里讲解一个常见的并发控制流程,通过控制Goroutine的数量,来防止过多的 Goroutine 会导致调度开销过高,甚至耗尽内存或文件描述符。的方式,实现了高效的并发任务调度,是 Go 并发编程中的经典模式之一。代码实现了一个固定 Goroutine 池来并发处理任务的模型。: 限制 Goroutine 的最大并发数量。

2024-11-26 10:05:01 1015

原创 [面试]-golang基础面试题总结

谷歌开发的一种系统编程语言。它具有内置的垃圾收集机制并支持并发。代码可以编译成单个可执行二进制文件,不需要添加库或运行时环境即可在服务器上执行。

2024-11-22 14:54:49 1042

原创 [每周一更]-(第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 1402

原创 [Go]-sync.map使用详解

并不适合所有并发场景。对于读写比例相对均衡,且需要进行大量写操作的情况,使用传统的。时,可能会导致程序出现未定义的行为,比如数据竞争、程序崩溃等。当多个 goroutine 同时读写一个普通。遍历过程中会对每个键值对调用传入的函数。是 Go 语言中在并发环境下使用的安全映射类型。则专门设计用于在并发环境下安全地进行读写操作。:读取一个键对应的值。已经存在,则会更新对应的值。在 Go 语言中,普通的。存在,则返回对应的值和。中获取对应的值,如果。中删除对应的键值对。

2024-11-15 12:36:41 762

原创 [每周一更]-(第123期):模拟面试|消息队列面试思路解析

SAGA 事务是一种分布式事务管理模式,分为一系列的子事务,每个子事务要么成功要么补偿。设计 SAGA 事务框架:可以使用事件驱动的方式,每个子事务完成时,通过消息队列通知下一个事务开始执行。如某子事务失败,发布回滚事件,按逆序触发补偿操作。这样,确保在分布式环境中保持数据一致性。延迟消息是一种在特定延迟时间后再发送给消费者的消息。常见的应用场景有订单超时取消、定时提醒、延迟执行任务等。死信队列:消息在原队列因超时、被拒绝或超出重试次数等情况转发到的特殊队列。消息 TTL。

2024-11-15 10:02:23 1364

原创 [每周一更]-(第122期):模拟面试|数据库面试思路解析

两阶段提交协议(2PC)**是一种经典的分布式事务管理协议,分为**准备阶段和提交阶段。准备阶段:事务协调者请求所有分布式节点是否可以提交事务,所有节点预写日志并锁定资源,向协调者返回准备就绪。提交阶段:协调者根据返回状态,统一决定是提交还是回滚。缺点阻塞性:在等待协调者决定时,资源被锁定。单点故障:协调者若发生故障,会导致整个事务阻塞。一致性不足:若在提交阶段网络故障,可能出现部分提交,破坏一致性。三阶段提交协议(3PC)*是在两阶段的基础上增加一个阶段以减少阻塞,分为*准备阶段预提交阶段。

2024-11-08 14:34:06 1200

原创 [每周一更]-(第121期):模拟面试|微服务架构面试思路解析

微服务架构是一种将应用程序拆分为多个小而独立服务的设计方法,每个服务围绕特定的业务功能构建,具有独立的代码库、数据库和生命周期。每个微服务通常通过轻量级通信协议(如HTTP或gRPC)来实现服务间通信。这种架构使得开发团队可以独立地构建、部署和扩展每个服务,有助于增加系统的灵活性和弹性,但也带来了服务协调和复杂度管理的挑战。

2024-11-01 18:15:19 988

原创 [每周一更]-(第120期):Lua入门学习指南及示例

Lua(发音:/ˈluːə/)是一个简洁、轻量、可扩展的脚本语言。Lua有着相对简单的C语言API而很容易嵌入应用中。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。多范型脚本指令式过程式基于原型面向对象),函数式。

2024-10-25 18:48:10 1437

原创 [每周一更]-(第119期):“BP”大揭秘:生物学与金融学中的微小单位竟有如此大不同!

组成碱基对的碱基包括腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)、胞嘧啶(C)、脲嘧啶(U)。在DNA或某些双链RNA分子结构中,由于碱基之间的氢键具有固定的数目和DNA两条链之间的距离保持不变,使碱基配对遵循一定的规律,腺嘌呤一定与胸腺嘧啶或者在RNA中的尿嘧啶配对,鸟嘌呤与胞嘧啶配对。DNA中的碱基有四种:腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)、胞嘧啶(C)。它的写法和用法相对直接,一般用作数量的单位,尤其在基因组测序或基因表达分析中,指代核酸链中的碱基对数量。在金融学中,“BP”代表的是。

2024-10-18 10:22:46 1746

原创 [每周一更]-(第118期):Go并发下载中分片应该如何设置?

最近处理个需求,在服务器中压缩一个文件,然后进行下载到本地操作,但是由于文件大小不一,设置并发下载的时候就指定了固定的并发数,但是这个并发数应该如何设置更能提升效率呢,我们下边来分析下:我个人方法是通过文件大小判断,然后设置不同的并发数,然后通过文件大小和并发数平均分,来进行并发下载,来提升效率,当然还有很多其他方面考虑;在 Go 并发分片下载的设计中,分片的设置对性能有着关键影响。综合分析分片大小应该根据以下几个主要因素来动态调整,以达到最优的下载效率。

2024-10-11 14:33:36 861

原创 [每周一更]-(第117期):硬盘分区表类型:MBR和GPT区别

MBR(Master Boot Record)和 GPT(GUID Partition Table)是两种不同的硬盘分区表类型,它们定义了硬盘的分区方式和存储信息的结构。它们有几个关键区别,影响了它们的适用场景和功能特性。在一次扫描机械硬盘故障的问题,发现我本机SSD和机械硬盘的分类型不一样,分别是GPT和MBR,这里就介绍下两者区别。一般来说,对于新硬盘、大容量硬盘以及新系统,推荐使用 GPT。而对于兼容性要求较高的老系统,可以选择 MBR。

2024-09-30 15:43:22 1508

原创 [每周一更]-(第116期):Fiddler4抓包工具完整抓APP

抓包工具 fidder4fidder4是一款基于windows灵活的抓包工具,可抓取pc端移动端的网络数据包。安装安装:fidder 4下载:https://www.telerik.com/download/fiddler/fiddler4使用。

2024-09-27 16:12:44 1174

原创 [每周一更]-(第115期):不同系统安装godoc

通过编写良好的代码注释并使用godoc工具,您可以轻松为自己的项目生成详细的业务文档。这对于代码维护、团队协作和项目发布都是非常有帮助的。

2024-09-21 16:17:37 1031

原创 [每周一更]-(第114期):介绍GitLab不同角色对应的权限

工作中一直使用Gitlab搭建了公司内网的代码管理工具,但是不同的用户会分配相应的权限,来管理不同用户及角色的权限信息,我们来介绍下角色的信息,方便我们管理公司内部权限分配问题,确保团队可以更好地协作,确保项目的高效开发和安全管理。GitLab 的用户角色和权限管理系统使得团队可以灵活地控制和管理项目的访问和操作权限。在 GitLab 中,角色分为项目级别和组级别,每个角色对应不同的权限级别。主要角色包括 Guest、Reporter、Developer、Maintainer 和 Owner。

2024-09-14 11:23:20 1308

原创 [Go]-抢购类业务方案

抢购类业务常用于促销活动,如热销白酒、大月饼、低价显卡、抢票,用户是想挤进去抢到东西,商家端是吸引更多的流量,但是东西就是固定数额,肯定不想被恶意刷单或者超卖等场景,这就对系统有强烈要求,这类业务需要处理高并发请求,以确保系统的稳定性和公平性,同时避免超卖现象。Go语言在此类业务中有相当的优势,内存消耗低,天生支持并发,还可以离线打包,做一些小工具很方便。抢购业务中,许多操作可以异步化处理,如订单生成、库存核减、用户通知等。公司业务中,防止频繁搜索,爬虫等,会用到令牌桶,进行限流。

2024-09-06 18:21:28 1795 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 1192

原创 [每周一更]-(第112期):WDL(Workflow Description Language)说明及使用示例

WDL(Workflow Description Language)是一种用于定义数据处理工作流的语言,旨在帮助研究人员和开发人员描述和执行复杂的数据处理任务。WDL主要用于生物信息学领域,但也适用于其他需要定义多步骤数据处理的领域。WDL的设计目的是简单、易读、可扩展,并与各种执行引擎兼容,如Cromwell和MiniWDL。WDL是一种强大且灵活的工作流描述语言,适用于各种复杂的数据处理任务。通过定义任务和工作流,研究人员和开发人员可以轻松描述和执行多步骤的数据处理管道。

2024-08-30 17:04:39 1115

原创 [Other]-安装ruby、ascli、ascp

最近新接到这样一个需求,将生物原始数据上传到某中心,其中用到ascp命令,阴差阳错的装了ruby、ascli,这里就都一并介绍下安装方式,由于服务器老旧默认安装时ruby2.0,又升级到2.7等引发的一系列问题,算是学习科普文了。是一种灵活、动态的编程语言,广泛用于 Web 开发、自动化等领域。是 IBM Aspera 的命令行接口工具,用于管理和传输大规模数据。是 Aspera 的核心传输工具,专注于高速、安全的文件传输,特别适用于在不良网络条件下传输大文件。1、

2024-08-23 14:14:29 669

原创 [每周一更]-(第111期):从零开始:如何在 CentOS 上源码编译安装 PHP 7.4

配置以下内容,php -m 就会包含:Zend OPcache。php8+需要生成,目前php7.4是自带。执行configure的前置操作。

2024-08-23 14:13:11 917

原创 [PHP]-Laravel中Group By引发的问题思考

Laravel 和 ThinkPHP 是两个不同的 PHP 框架,它们在底层使用了相同的 SQL 查询语言来与数据库交互。然而,由于框架的设计和实现方式不同,它们在生成 SQL 查询时可能会表现出一些细微的差异,包括对GROUP BY 子句的处理。在调用查询公司在线报告接口时,发现我请求的数据室20条每页,但是经查询存在16,17条的都有,并且后几页也不稳定,就一直查询问题。

2024-08-16 10:12:43 722

原创 [每周一更]-(第110期):QT开发最佳实战(php/go/python/javascript)

清理软件垃圾,发现Xmind客户端采用的是Electron,Electron是基于Web技术的跨平台桌面应用开发框架,使用HTML、CSS和JavaScript来构建应用程序,然后就延伸查了一下其他相关成熟的跨平台桌面应用技术。尽管Qt主要使用C++进行开发,但通过绑定库和桥接工具,也可以使用其他编程语言如Go、Python、PHP等来开发Qt应用。结果:Go和Python都可以,但Go的方法库长期不更新了,Python对应的PyQt、PySide官方还有不断更新。PHP-Qt是一个不太常见的绑定库。

2024-08-16 10:11:41 853

原创 [每周一更]-(第109期):茶叶种类说明

每种茶叶的加工工艺都经过了多年的演变和改良,旨在最大程度上发挥茶叶的风味和特性。不同品牌和产地的茶叶可能有特定的冲泡建议,参考包装上的说明也是一个好方法。茶叶种类繁多,主要根据加工工艺和发酵程度的不同,分为六大类:绿茶、红茶、乌龙茶(青茶)、白茶、黄茶和黑茶。:祁门红茶、大吉岭红茶、阿萨姆红茶、锡兰红茶。:萎凋 → 摇青 → 杀青 → 揉捻 → 干燥。:普洱茶(生茶、熟茶)、六堡茶、湖南黑茶。:铁观音、大红袍、冻顶乌龙、武夷岩茶。:龙井、碧螺春、毛尖、六安瓜片。:白毫银针、白牡丹、贡眉、寿眉。

2024-08-12 10:22:06 394

原创 [每周一更]-(第108期):如何保护你的JavaScript代码

有个想法,可以不同工具,合并使用,大家可以自行测试。

2024-08-02 10:26:20 805

原创 [每周一更]-(第107期):经典面试题-从输入URL到页面加载发生了什么

1、浏览器查找域名对应的IP地址2、浏览器根据IP地址与服务器建立socket连接3、浏览器与服务器通信:浏览器请求,服务器处理请求和响应4、浏览器与服务器断开连接5、浏览器获得域名对应的IP地址之后,就会向服务器发起TCP请求,请求建立TCP连接,就是"三次握手"。6、TCP/IP连接建立起来之后,浏览器就可以向服务器发起HTTP请求了,使用了比如说,HTTP的GET方式。7、服务端接收到这个请求之后,根据参数,将经过处理的数据返回给客户端。

2024-07-28 11:58:48 442

原创 [每周一更]-(第106期):DNS和SSL协作模式

DNS(Domain Name System,域名系统)是互联网的重要组成部分,其主要作用是将人类可读的域名(如 www.example.com)转换为机器可读的IP地址(如 192.0.2.1)。这一过程称为DNS解析。DNS类似于互联网的电话簿,通过查询DNS服务器获取相应的IP地址,从而实现网络通信。DNS叫做域名系统:由解析器和域名服务器组成,域名服务器保存着该网络中所有主机的域名和对应的IP地址,域名有唯一对应的IP地址,但是IP地址不一定对应一个域名,我们就是根据DNS来上网的。

2024-07-21 23:59:54 906 1

使用KubeSkoop对k8s集群进行网络问题诊断.pptx

使用KubeSkoop对k8s集群进行网络问题诊断

2023-12-21

云原生面试重难点解析.pdf

云原生面试解释,孟大编写,希望对大家有帮助

2023-12-21

go评论系统架构设计(毛大亲笔)

go语言中针对评论系统架构设计的ppt内容,有助于我们设计底层业务逻辑,方便后续代码的编写;

2023-12-21

后端面试清单,流程以及问题顺序

针对后端面试的流程以及一些常见的问题汇总;php、linux、git、服务器、运维、redis、容器等问题;职业规划等;

2023-12-21

JumpServer堡垒机可行性报告

针对jumpServer的介绍

2023-12-21

Laravel 5.3中文文档pdf 版本

laravel5.3开发必备神器

2017-08-25

2015版 php中文手册

很全的一个php手册,也是我收藏好久的好东西,希望对大家有帮助.

2016-05-27

JavaScript DOM编程艺术 附录

这虽然只是一个附录,但是讲解的内容很是细致,关于节点的处理也是很到位,想详细了解的不妨下载看看

2016-05-27

Python语言及其应用

适合入门的朋友,翻阅,值得读的经典图书,图灵教育出品

2016-05-27

精通javascript

很有用的资源,里面包含了javascript学习必学的东西,还是国外的资源,可信度还是想到好的

2015-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除