- 博客(230)
- 收藏
- 关注
原创 微信小程序:uniapp解决上传小程序体积过大的问题
在昨天的工作中遇到了一个微信小程序上传代码过大的情况,在这里总结一下具体的解决步骤,首先介绍一下,技术栈是使用uniapp框架+HBuilderX的开发环境。
2023-09-25 10:22:11
46
原创 Go微服务实践 - Rpc核心概念理解
从0研究一下Golang已经Golang的微服务生态体系,Golang的微服务首先要从Rpc开始,在升级到Grpc,详细介绍这些技术点都在解决什么技术问题。
2023-08-07 16:16:42
672
2
原创 Tcp是怎样进行可靠准确的传输数据包的?
很多时候,我们都在说Tcp协议,Tcp协议解决了什么问题,在实际工作中有什么具体的意义,想到了这些我想你的技术会更有所提升,Tcp协议是程序员编程中的最重要的一块基石,Tcp是怎样进行可靠准确的传输数据包的呢?看过很多文章里都提到过Tcp协议的三次握手,在这里我要进行系统的整理一下,学习不能人云亦云,要真的去明白其中的道理,下面是一张理解Tcp/Ip的协议图。
2023-08-07 16:15:25
577
原创 Swoole - 为什么说Swoole中小型企业微服务的首选技术方案
Swoole的出现,使PHP语言不再局限于传统的 Web领域,对中小企业有很好的支持,有一些企业盲目的追求微服务和K8s,我真诚建议不要轻易上微服务,上了你才知道这里面的辛酸,高成本、低效率会拖碎整个团队,研究中小企业的提效、节省成本是我未来的研究的新方向。
2023-05-16 14:43:14
379
原创 消息队列中间件 - RabbitMQ消息的持久化、确认机制、死信队列
死信队列 DLX(Dead-Letter-Exchange) 也可以成为死信交换机,就是当一个队列中的消息变成死信以后,会被重新发送到另一个交换机,这个交换机就是DLX,而绑定DLX的队列就是死信队列。
2023-05-16 14:41:02
391
原创 消息队列中间件 - 详解RabbitMQ6种模式
对RabbitMQ 6种工作模式(简单模式、工作模式、订阅模式、路由模式、主题模式、RPC模式)进行场景和参数进行讲解,PHP代码作为实例。
2023-05-08 18:11:53
696
原创 消息队列中间件 - Docker安装RabbitMQ、AMQP协议、和主要角色
不管是微服务还是分布式的系统架构中,消息队列中间件都是不可缺少的一个重要环节,主流的消息队列中间件有RabbitMQ、RocketMQ等等,从这篇开始详细介绍以RabbitMQ为代表的消息队列中间件。
2023-05-06 17:42:54
720
原创 微服务 - Kong Http Api 实现负载均衡、jwt认证、限流、黑白名单
使用Kong的第一步是激活链接,登录Kong管理后台,找到 Connections,把Kong的Api链接上,因为我本地的端口进行了映射,所以需要找到Docker的network 上的ip,进行绑定, ip 地址。相较于权限验证,Kong的限流就比较简单了许多,Kong采用计数器的形式进行限流。用户名密码的认证方式,在Konga的Consumers添加就可以了。Kong的黑/白名单功能是根据限制ip实现的。配置Route的时候,paths参数必须以。1.添加jwt认证操作组件操作。
2023-05-06 17:41:27
576
1
原创 微服务 - kong安装,API网关设计(原理篇)
微服务实践的第二个关键组件,微服务API网关设计,API网关是对微服务做统一的鉴权、限流、黑白名单、负载均衡等功能实现,这篇我们先来介绍Api网关的意义和安装kong/konga需要的组件。
2023-04-26 17:41:25
493
原创 微服务 - 搭建Consul集群服务,Consul配置中心
配置中心如何解决的呢?配置中心的思路是把项目中的配置参数全部放在一个集中的地方来管理,并提供一套标准的接口,当各个服务需要获取配置的时候就来拉取信息,当配置中心有更新的时候,也能通知其他服务,实时同步最新消息。server1 basic.json详细参数,执行命令。server2 basic.json详细参数,执行命令。server3 basic.json详细参数,执行命令。补充一下单点服务器Consul集群的步骤,我的虚拟机。
2023-04-22 21:28:03
620
原创 微服务 - Consul服务注册中心
上篇说到构建良好的架构,依托于基础设施建设(自动化测试、自动化部署、服务监控,服务发现、配置中心等等),决定成败的往往是基础设施建设,所以从搭建一个注册中心和配置中心开始我们新一阶段的启程。使用PHP、和Go编写,使用Consul作为注册中心和配置中心比较方便,所以我选用的是Consul。采用Raft算法实现,有服务发现,Key/Value存储,可以做配置中心使用,有健康检查,并提供了web管理页面。TCP/8300:8300端口用于服务器节点,客户端通过RPC协议调用服务端节点。
2023-04-22 21:27:04
1143
原创 Redis高可用高性能缓存的应用系列06 - 热Key,大Key,并发竞争解决方案
现在被谈论最多的就是微服务和中台系统,我个人的理解是微服务或者是中台好不好,主要看实际的业务场景,架构的变迁往往需要耗费很大的学习成本和时间成本,所以更改架构的时候要三思而后行,适合自己特别重要。
2023-04-22 21:25:21
707
原创 微服务 - 拆分微服务的问题和拆分方法
现在被谈论最多的就是微服务和中台系统,我个人的理解是微服务或者是中台好不好,主要看实际的业务场景,架构的变迁往往需要耗费很大的学习成本和时间成本,所以更改架构的时候要三思而后行,适合自己特别重要。
2023-04-22 21:23:41
1071
原创 Redis高可用高性能缓存的应用系列1 - 数据类型以及底层结构和原理
介绍redis缓存原理与设计执行流程,单线程的处理方式是高效的原因,以及redis数据类型以及底层结构和原理进行说明,这对我们使用Redis有很大帮助。
2023-04-11 18:12:55
341
原创 Redis高可用高性能缓存的应用系列03 - 缓存过期淘汰策略LRU、LFU
Redis高可用高性能缓存的应用系列的第3篇,主要介绍Redis缓存过期淘汰策略和内存淘汰策略回收的LRU和LFU的知识点进行说明。
2023-04-11 18:11:25
590
原创 Redis高可用高性能缓存的应用系列2 - 事务机制和IO多路复用、持久化
Redis高可用高性能缓存的应用系列的第二篇,主要介绍Redis事务机制和IO多路复用、和持久化的知识点。
2023-04-11 18:10:49
388
原创 Mysql高可用高性能存储应用系列4 - 分库分表、中间件
为什么要分库的原因:1)很多时候接口性能慢都是数据库造成的,2)并发量比较大时,大量的数据库请求,会带来磁盘I/O的性能瓶颈,3)来越多,导致sql查询数据,即使走了索引也比较慢。
2023-03-31 18:26:11
157
原创 Mysql高可用高性能存储应用系列3 - mysqld_multi配置主从集群
主从复制要解决的问题,1)写操作锁表,影响读操作,影响业务。2)数据库备份。3)随着数据增加,I/O操作增多,单机出现瓶颈。主从复制就是从服务器的主节点,复制到多个从节点,默认采用异步的方式。
2023-03-31 18:24:58
215
原创 Mysql高可用高性能存储应用系列2 - 深入理解锁和Mvcc
Mysql数据库在处理并发中下了很多功夫,锁是为了更好的保护数据的正确和可靠,Mvcc是维持一个数据的多个版本,使得读写操作没有冲突的解决并发的数据库方案。
2023-03-31 18:22:27
320
原创 微服务 - Go语言从单体服务到微服务(设计方案篇)
微服务是一种思想,与编程语言无关,编程语言是思想下具体的一种实现方式,怎么设计架构方案和实现主要看主要面临的业务场景。
2023-03-23 12:03:39
293
原创 Mysql高可用高性能存储应用系列1 - 索引篇
假如一个表中有500w数据,层级还是会很深,这样查询数据的时候,磁盘I/O还是会很多,(2)数据从小到大依次分布在树的不同层级中,进行范围查找时,获取范围越大,获取的节点就越多,极端情况下所有的数据全部遍历一遍,相当于遍历了整颗树,节点越多,I/O操作就会越多,性能就会卡主。访问磁盘相当于是I/O操作,Mysql中有一个页(page)的概念,一个page就是树中的一个节点,每次Mysql就会取出一个page也就是一个节点的数据,而mysql默认一个page保存16k的数据。这个过程就称为回表。
2023-03-20 22:59:32
266
1
原创 微服务 - go-zero api请求调用rpc服务
本地使用etcd注册rpc服务,这个部分文档主要编写api使用、api调用rpc服务,下次文档更新使用mysql和redis缓存部分。
2023-02-28 14:40:00
638
原创 docker - 搭建redis集群和Etcd
由于业务需要,需要把之前的分布式架构调整成微服务,把老项目迁移到k8s的服务中,再开始编码之前,需要再本地环境里做相应的准备工作,使用docker搭建redis集群,Etcd主要是注册本地的rpc服务。
2023-02-28 11:25:55
547
原创 Nginx - 深入理解nginx的处理请求、进程关系和配置文件重载
Nginx的系统学习整理的第三篇博客,主要介绍nginx的应用场景和架构基础,以便更好的理解,再生产环境中进行性能调优。
2023-02-12 19:53:00
937
原创 Docker - docker-compose方式搭建高效的开发环境
在本地开发机上使用docker的同学你肯定有这样的烦恼,搞了一堆命令来启动docker,错了一个字母就需要重来,非常的不方便,让人抓狂,解决这种烦恼使用docker-compose就可以迎刃而解了。
2023-02-09 13:39:10
544
原创 Ningx - 源码安装Nginx已经编译时error解决办法
nginx是一款非常好用的反向代理服务器,web服务器,很多人都在使用nginx作为网络服务器,要知其然还要知所以然,所以源码安装是一切实践的基础,让我们动手搞起来。
2023-02-08 13:42:37
402
原创 PHP - php7扩展安装的完全攻略 swoole、yaf、grpc
这篇是php7源码系统攻略的第三篇,是对之前的知识和补充,踩了很多坑,鏖战了数天才完全通关,下面带你安装常用的扩展,以及和。php的扩展可分为3类,原生自带、pecl官网、和老旧的疑难杂症包。
2023-02-07 14:27:42
419
原创 GItOps - k8s的微服务实战1 - 构建业务镜像
在学习了容器化、docker和k8s的 Ingress-Nginx 、server 和pod 知识后,开启了 k8s的微服务实战第三篇,在搭建环境废了一点周折,这次实战的目的是集成在gitlab里,实现自动打包、发布的功能。Mac M2芯 搭建k8s(minikube)超详细实战Mac M2芯 搭建k8s(kubeadm)超详细实战最后一点也是我最想说的地方,中间过程错了好多次,每一个都很诡异,最后终于都克服了,看到这里的小伙伴加油呀,别放弃,一切会好,可以把这个做为基础,这些都是差不多的,原理都是一样的。
2023-02-03 15:42:06
623
1
原创 Mac M2芯 超详细k8s集群实战 - kubeadm
我们准备搭建kubeadm的master+worker集群,实现k8s集群,master、worker在虚拟机上来执行,中间遇到了超级多的坑,都搞定了之后,在这里系统的总结一下,这也是一篇学习笔记。
2022-12-26 15:05:22
2362
3
原创 Mac M2芯 k8s(minikube)超详细实战 - 单节点部分
我使用的电脑是Mac pro M2芯的,使用的虚拟环境是 Ubuntu 22.04 ,M2芯兼容性不是特别好,所以尽量跟我博客中的版本保持一致。虚拟机环境 Ubuntu 22.04。
2022-12-21 09:33:02
1502
原创 Python数据分析入门与实践
Python数据分析主要基于Pandas的Serise和DataFrame去实现,Serise和DataFrame有点像php里的数组,在数据科学里叫矩阵。把数据使用Pandas进行采样和机器学习计算,在使用Matplotlib/Seaborn来画图实现。
2022-12-12 18:12:46
797
6
原创 Flask 实战笔记3 - SQLAlchemy实现mysql编码、列类型
在SQLAlchemy 对Mysql实现了基本操作以后,我发现设置出来的默认值没有生效,字符集编码也被设置成了默认的latin1,这节课就来解决这些问题。
2022-11-13 13:01:55
652
1
原创 Flask 实战笔记02 - SQLAlchemy实现mysql的应用
对web的路由完成后,我们开始对数据库的增删改查进行进一步的实践和探索,flask使用SQLAlchemy进行对数据库的操作,这里我们以Mysql数据库为例。
2022-11-09 11:30:24
542
原创 Flask 实战笔记01 - Blueprint实现Web路由器
Flask 原理是在App初始化时,将蓝图和App进行绑定来实现Web路由功能,路由的实现是所有项目中的第一步。
2022-11-03 15:24:27
206
2
原创 2022年Q4 - 2023年Q1
人工智能和AI的概念早已经很多了,开始认真的去学习和研究所谓的推荐系统,从4月份开始接触python,到学习了一段时间的flask框架。
2022-10-18 11:02:36
647
原创 Rust - axum(01)分离路由模块
网上有很多axum框架的教程,但是都不是那么详细,根据业务的需求,准备把原有的分布式更换成以Rust axum 的web微服务,认真记录当前的每一步拆解,供朋友们交流和学习。
2022-08-17 09:43:46
1371
原创 与tcp协议有关的几个知识点
在Linux中,这个设置是由内核参数net.ipv4.tcp_syn_retries控制的,默认值为6,一个空的TCP连接会消耗3.3KB左右的内存。
2022-07-29 13:15:51
616
原创 MongoDB - 千万级数据脚本过滤笔记
根据业务部分的需要,有一部分用户对进行刷评论来获取成就的行为,所以对全量评论对不合格的运算,进行标记,全量评论大概有2450w左右,之前的评论使用Mysql进行分表处理,后台使用MongoDB进行数据聚合,大概情况是这样。...
2022-07-27 17:21:37
696
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人