- 博客(1068)
- 资源 (11)
- 收藏
- 关注
转载 突破性能瓶颈:Go语言实现电商系统千万级数据分库分表实战
随着业务规模的不断扩大,单一数据库的性能瓶颈日益凸显。当数据量达到一定规模,单表数据量过大或单库负载过高时,数据库的读写性能会显著下降,甚至可能导致系统不可用。分库分表技术作为解决这一问题的有效手段,已成为大型系统架构中不可或缺的一部分。本文从电商系统业务实战场景出发,以GoFrame框架和MySQL数据库为例,详细介绍针对业务数据库分库分表的设计思路和具体实现方法,帮助开发者轻松应对大数据量挑战。
2025-03-20 09:08:40
20
转载 Go 事件驱动架构:从原理到实战,彻底掌握高并发编程
小规模项目:使用 Channel 实现简单的事件驱动。中等规模项目:采用自定义事件总线(如 sync.Map 实现的发布/订阅模式)。大规模分布式项目:使用 Kafka、RabbitMQ 作为事件总线,实现跨服务事件驱动。事件驱动架构不仅提升了系统的响应速度,也让业务逻辑更加解耦。如果你的 Go 项目需要高并发支持,不妨尝试事件驱动架构!
2025-03-18 21:12:16
23
原创 quillEditor 禁用复制粘贴图片,以及class转style等问题
【代码】quillEditor 禁用复制粘贴图片,以及class转style等问题。
2025-03-04 21:37:17
302
转载 Go 语言微服务框架 Kratos 集成第三方库 kafka-go 操作消息队列 Kafka
Go 语言微服务框架 Kratos 不限制使用任何第三方库,Go 语言操作消息队列 Kafka 有很多优秀的第三方库,比如 sarama 和 kafka-go,我们在之前的文章中介绍过 Go 语言怎么使用 sarama 操作消息队列 Kafka。本文我们介绍 Go 微服务框架 Kratos 怎么集成第三方库 kafka-go[1] 操作消息队列 Kafka。本文我们通过示例代码,介绍 Kratos 微服务框架怎么集成第三方库 kafka-go,操作 Kafka。方法中添加生产 Kafka 消息的代码。
2025-01-06 08:59:57
78
转载 gin参数验证
datetime: 日期格式验证,如:binding:“datetime=2006-01-02 15:04:05”,注:时间必须是2006年1月2号下午3点4分5秒,不可以修改年月日时分秒的值。例如:当业务系统对验证信息有特殊需求时,返回信息需要自定义,手机端返回的信息需要时中文,而pc端发挥返回的信息需要是英文,如何做到请求一个借口满足上述三种情况。对于切片,数组和映射,验证元素的数量。可以使用dive标签,这是告诉验证器深入到切片,数组或映射中,并使用元素标签来验证切片,数组或映射元素。
2025-01-06 00:12:17
92
转载 在批处理脚本中,%variable% 和 !variable! 的区别
命令在处理循环和嵌套命令时非常有用,特别是在你需要动态地访问和修改环境变量的值时。通过启用延迟环境变量扩展,你可以确保在循环体内正确地获取和显示环境变量的最新值。作者:book_02链接:https://www.jianshu.com/p/9cf26b0dd59a来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2025-01-02 09:26:01
65
转载 Golang中http包的具体使用
要管理HTTP客户端头域,重定向和其它策略,创建一个client:typestruct// Transport指定执行独立、单次HTTP请求的机制。// 如果Transport为nil,则使用DefaultTransport。// CheckRedirect指定处理重定向的策略。// 如果CheckRedirect不为nil,客户端会在执行重定向之前调用本函数字段。
2024-12-20 23:53:08
193
转载 Go语言中的条件变量:sync.NewCond(go版信号量)
在处理复杂的并发问题时,sync.NewCond是一个不可或缺的工具。在这个示例中,我们首先创建了一个条件变量cond,并将其与一个新的sync.Mutex关联。sync.NewCond函数用于创建一个新的条件变量,并将其与一个互斥锁(sync.Mutex或sync.RWMutex)关联。Go语言的sync包提供了一个强大的同步原语——条件变量(Cond),它允许我们等待或通知某个条件的变化。下面是一个使用sync.NewCond的示例,模拟了一个比赛场景,其中10个选手需要等待一个开始信号才能开始比赛。
2024-12-06 23:42:35
44
转载 关于QT中Query的bindValue函数mismatch问题
本来是以为参数个数或者类型不匹配导致的,但是反复检查,个数和类型都没问题。我之前没使用过bindValue这个函数,是直接使用的字符串模板替换,所以对bindValue这个函数的用法不太了解,刚开始我是这样使用的,如图所示。要么使用字符串模板替换的方法,这种的我觉得最实用,也不容易出错,需要注意的就是,如果字段是字符串类型,需要在字符串模板中加上’ ’字符,如下图所示。知道原因了,那就好找方法了,要么使用bindValue函数,但是里面的字符串中,表名和字段名都得固定好,或者使用参数传递,如图所示。
2024-11-14 23:40:32
132
转载 动图图解!收到RST,就一定会断开TCP连接吗?
我们都知道TCP正常情况下断开连接是用四次挥手,那是正常时候的优雅做法。但异常情况下,收发双方都不一定正常,连挥手这件事本身都可能做不到,所以就需要一个机制去强行关闭连接。RST就是用于这种情况,一般用来异常地关闭一个连接。它是一个TCP包头中的标志位。正常情况下,不管是发出,还是收到置了这个标志位的数据包,相应的内存、端口等连接资源都会被释放。从效果上来看就是TCP连接被关闭了。而接收到 RST的一方,一般会看到一个或的报错。TCP报头RST位RST其实是TCP包头里的一个标志位,目的是为了在。
2024-11-14 22:59:52
102
转载 为什么用公钥加密却不能用公钥解密?
第三和第四次握手的最后都有个Finished报文,里面是个摘要。摘要,说白了就是对一大段文本进行一次hash操作。目的是为了确认通信过程中数据没被篡改过。第三次握手,客户端生成摘要,服务端验证,如果验证通过,说明客户端生成的数据没被篡改过,服务端后面才能放心跟客户端通信。第四次握手,则是反过来,由服务端生成摘要,客户端来验证,验证通过了,说明服务端是可信任的。那么问题叒来了。为什么要hash一次而不是直接拿原文进行对比?这是因为原文内容过长,hash之后可以让数据变短。更短意味着更小的传输成本。
2024-11-14 22:55:18
116
转载 socket到底是什么?
• socket中文套接字,我理解为一套用于连接的数字。并不一定准确,欢迎评论。• sock在内核,socket_fd在用户空间,socket层介于内核和用户空间之间。• 在操作系统内核空间里,实现网络传输功能的结构是sock,基于不同的协议和应用场景,会被泛化为各种类型的xx_sock,它们结合硬件,共同实现了网络传输功能。
2024-11-14 22:48:55
92
转载 事件分发器 & 事件过滤器
在 Qt 中,事件分发器(Event Dispatcher) 是一个核心概念,用于处理 GUI 应用程序中的事件。事件分发器负责将事件从⼀个对象传递到另⼀个对象,直到事件被处理或被取消。在 Qt 中,⼀个对象可能经常要查看或拦截另外⼀个对象的事件,如对话框想要拦截按键事件,不让别的组件接收到,或者修改按键的默认值等。如上图,事件分发器⽤于分发事件。1、在 “widget.h” 头⽂件中声明 ⿏标点击事件 和 事件分发器;8、在 “mylabel.cpp” ⽂件中实现⿏标点击事件和事件分发器;
2024-11-03 20:43:18
72
转载 C++11中auto与decltype的区别与联系深入解析
使用decltype(auto)时,编译器会根据表达式的类型推导出变量的类型,并保留该表达式的任何引用或cv(const和volatile)限定符。如果想让结果类型是 r 所指的类型,可以把 r 作为表达式的一部分,如r+0,显然这个表达式的结果将是一个具体值而非一个引用。加上括号的变量会被视为表达式,导致推导出的类型可能是引用类型。顶层const可以表示任意的对象是常量,底层const则于指针和引用等复合类型的基本类型部分有关,比较特殊的是指针,指针既可以是底层const,也可以是顶层const。
2024-11-01 12:27:51
43
原创 git 学习的流水log
git checkout -b feature/add_git_commands github/feature/add_git_commands //第一个本地分支名 第二个远端分支名。git remote add githubgit git@github.com:lengyue1084/git_learning.git 添加远端仓库。git remote add github git@github.com:git2000/git_learning.git 新增一个远端的站点。
2024-09-06 16:28:26
742
1
原创 docker流水日志
可能的原因,我是用的vagrant启动的虚拟机,也是在vagrant配置的共享文件夹,所以,php72-fpm在虚拟机启动时就启动了,而此时虚拟机还没挂载好共享文件夹,因为虚拟机的挂载是由vagrant来完成的,所以设置容器开机自启动还是要看你的场景。注意:这里的 docker-php-ext-configure 和 docker-php-ext-install 工具已经包含了 docker-php-source 的操作,显然使用者不要去关心这个。于是进入容器查看 /www 发现是空的。
2024-08-22 15:55:06
582
1
原创 java项目的数据库,一般会要求统一表前缀吗
有些团队倾向于在数据库表名中使用统一的前缀,这有助于区分不同的模块、子系统或业务实体,以避免表名冲突。例如,如果有一个名为 "users" 的表,可能会为用户管理模块添加前缀,如 "um_users"。在Java项目中,对于数据库表的命名规范是否要求统一表前缀通常是根据项目团队或组织的具体规定而定的,而不是Java语言本身的要求。总的来说,这通常是项目团队或组织内部的决策,没有硬性的Java语言规定要求使用统一的表前缀。如果项目需要与其他系统进行集成,了解其他系统的表命名规范,并在可能的情况下进行协调。
2024-01-12 09:51:48
641
转载 容器内的 1 号进程
在 Linux 系统中,系统启动的时候先是执行内核态的代码,然后在内核中调用1 号进程的代码,从内核态切换到用户态。内核执行的第一个用户态程序就是1 号进程。目前主流的 Linux 发行版,无论是 RedHat 系的还是 Debian 系的,都会把 /sbin/init 作为符号链接指向 Systemd。Systemd 是目前最流行的 Linux init 进程,在它之前还有 SysVinit、UpStart 等 Linux init 进程。同样在容器中也有 1 号进程的概念,一旦容器建立了自己的。
2023-11-04 09:04:48
672
1
转载 golang Options模式
最后我们的HTTP工具函数的调用方式就变成了,下面这种更灵活更富表达力的方式。从实现方来看呢?如果后面要给配置对象里增加其他配置项,只需要扩充类型的字段,在定义一个对应的With方法即可,扩展性完全在可接受范围内。好了Options模式你学会没,想不想赶快用起来,可以在我的GitHub仓库gocookbook找到完整可运行的代码访问页面后记得ctrl + F 搜索"Options"关键字, 就能获得完整可运行的代码示例。下次再遇到类似的场景后记得把今天学到的用上呀。
2023-09-25 16:45:53
387
原创 c++ 纯虚函数、抽象类
只要有一个纯虚函数,这个类称为抽象类抽象类的特点1、无法实例化2、抽象类的子类,必须要重写父类中的纯虚函数,否者也属于抽象类。
2023-09-21 18:08:01
325
原创 c++ 继承与多态
1、静态多态:函数重载与运算符重载(本质可以裂解为函数重载)都属于静态多态,复用函数名。2、动态多态的函数地址晚绑定 - 运行阶段确定函数地址(利用virtual关键字)1、静态多态的函数地址早绑定 - 编译阶段确定函数地址。利用virtual,虚函数的概念,动态绑定调用的函数。2、动态多态:派生类和虚函数实现运行时多态。继承,编译阶段即确定调用的函数。
2023-09-21 16:34:22
324
原创 C++中operator关键字(重载操作符)
转载地址:operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。这是C+ +扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。
2023-09-19 15:45:08
2030
原创 c++ this指针与空指针调用类方法以及常函数
1、c++的成员变量与成员内函数是分开存储2、每一个非静态成员函数只会诞生一份函数实例,多个同类型的队形公用的是同一份成员函数的代码3、this指向调用这一份成员函数代码的对象实例4、this是一个隐藏的指向对象实例的一个指针,无需定义直接使用即可。
2023-09-18 11:20:06
279
原创 c++静态成员变量与静态成员函数
1.1、所有对象共享同一份静态变量1.2、编译阶段分配内存1.3、类内声明,类外初始化操作静态成员变量,不属于某个具体的类对象,多有的类对象共享同一份数据因此静态成员变量有两种方式访问。
2023-09-16 17:24:57
165
转载 VS中的路径宏:OutDir、ProjectDir、SolutionDir等各种路径的说明
【代码】VS中的路径宏:OutDir、ProjectDir、SolutionDir等各种路径的说明。
2023-09-09 09:39:55
986
golang图片爬虫源码
2020-11-23
胖达图片采集器v0.1.exe
2020-10-15
2018汽车之家汽车品牌车型数据新鲜出炉
2018-06-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人