自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 详讲api网关之kong的基本概念及安装和使用(二)

本文演示的相关功能有,基于consul的负载均衡,jwt认证,限流,黑名单功能,其他功能比如反爬策略,协议转换感兴趣的小伙伴们可以自己探索一下。

2024-01-30 10:52:41 1499

原创 详讲api网关之kong的基本概念及安装和使用(一)

前面我们聊过sentinel,用来限流熔断和降级,如果你只有一个服务,用sentinel自然没有问题,但是如果是有多个服务,特别是微服务的兴起,那么每个服务都使用sentinel就给系统维护带来麻烦。那么网关是个啥东西呢,简单来说,网关就是一个服务器,也是所有服务的唯一入口。api网关不仅可以实现系统层面的限流熔断等技术,还可以提供服务发现,负载均衡,协议转换,流量管理,黑白名单,反爬策略,身份验证,灰度发布,监控,缓存等等功能。

2024-01-25 18:09:56 2744 1

原创 聊一聊服务治理三板斧:限流、熔断、降级和go-sentinel的实现

我们知道,对于一个项目之初,我们不可能上来就按几千的并发去配置,为什么?两个方面,第一个是成本高。第二个是维护难度大。即便是天猫淘宝这种,也是采用的动态扩容的方式来应对双十一。那么一个项目如何应对突然的高并发,我们有哪些常用的措施和处理呢?我们接下来就来看看 限流熔断和降级。

2024-01-19 17:47:49 1757

原创 MySQL的内部XA的二阶段提交

靠redo-log和undo-log。比如我们执行了一个insert操作,然后主节点a服务器crash redo-log之后服务宕机了,还没来得及写入bin-log,服务器恢复之后,由于其他机器没有insert的bin-log导致a服务器和其他服务器数据不一致。如果先crash bin-log 我们执行了一个insert操作,主节点a服务器crash bin-log后服务宕机,服务恢复之后,其他节点根据bin-log执行了insert,但是服务a并没有redo-log,不会恢复数据,同样导致数据不一致。

2024-01-16 10:34:26 980

原创 扒开MySQL的源码,探索MVCC实现方式

通过阅读源码和实操,我们了解了MySQL是怎么在无锁的情况下怎么保证了多版本控制,就是在数据发生变化的时候,将变化前的内容以undo-log的形式保存了下来,然后通过DB_ROLL_PTR将多个版本链起来,来提高表的并发读写。但是带来的问题,最明显的就是对内存的需求更高,cpu和io开销更大了,同理垃圾回收开销也随着变大。而且对于大事务来说,数据版本过多可能导致性能降低等问题。

2024-01-15 11:22:36 2172

原创 HTTP、CDN、DNS的这些知识,我也不知道你知道不知道,反正我被问到过

HTTP,全称Hyper Text Transfer Protocol,即超文本传输协议,是一个简单的请求-响应协议,它通常运行在TCP之上。HTTP目前一共经历了HTTP 0.9,HTTP 1.0,HTTP 1.1,HTTP 2.0,那么我们分别来看看每个版本的HTTP的功能和发生的变化HTTP 0.9HTTP 0.9是第一个版本的HTTP协议,已过时。它只允许客户端发送GET这一种请求,而想我们常用的POST PUT DELETE 是不.

2022-01-10 19:23:53 1898

原创 使用ffmpeg对视频指定时间点加入指定音频和gif动图 实现水印旋转

注:本文为了方便演示,都是在源文件目录下执行的命令,如果不同目录请使用具体路径 视频中添加字幕 首先看一下我的目录 001.mp4dianzan.movr001.flvtx.wav皮肤粗糙_棒棒-1.assimage.png 给原视频文件001.mp4加上字幕文件,生成r001.flv文件,视频的格式你想要哪种都可以,(可以先使...

2021-03-17 19:51:07 2471 15

原创 最全的百度网盘搜索引擎

1.易查搜索(https://so.acurd.com/)推荐指数 *****+资源聚合做的比较好的一个网站,也是最常用的一个网站,据up主说有脚本会定时检测每个搜索引擎,不通的或者服务器挂的搜索引擎会自动下架,保证了高可用,这里感谢一下作者的良苦用心,加油!!2.虫部落(http://magnet.chongbuluo.com/)推荐指数 *****和top1有一部分重合,可以解决你的大部分搜索需求,但也正因为太多了,所以有点良莠不齐。3.云盘精灵(https://www.yunp

2020-07-24 14:28:41 7568

原创 使用docker搭建nginx集群,实现负载均衡

最近都是在忙一些琐碎的小事,有几个选题,一直在纠结写哪个,最终决定先从简单的来吧。简单的往往比较琐碎,熟悉的小伙伴可以1.5倍速浏览哈 环境基于centos7,docker 安装教程参考https://www.runoob.com/docker/centos-docker-install.html(选择手动安装靠谱一点,毕竟国内网络不稳定),这里不做赘述了。相信聪明如一休的你一定可以解决。最后,别忘了替换镜像源 start----------------------------------..

2020-07-02 20:43:50 2313 2

原创 编写composer包和发布全攻略

我们知道,composer是laravel的包管理工具,所以我们就编辑一下laravel目录下的composer.json文件,在autoload项下增加一个属性,对应的是命名空间和包目录。我之所以想先带大家快速了解一个composer包的发布过程,是因为我打算把二次封装的组件作为composer包发布。里面我只用了发布配置文件的功能,对应的包里面的配置文件是src/config目录的exception-helper.php文件,我们先来创建一下文件。那么我们怎么把我们的包发布出去呢?

2024-12-17 10:02:31 993

原创 基于docker搭建pulsar和使用攻略

Pulsar是一个由yahoo公司于2016年开源的消息中间件,2018年成为Apache的顶级项目我们先来看一下架构,从架构来看,和其他的消息中间件差不多,都是有消费者,生产者和broker,唯一一点不同的是pulsar的数据存储是存储在BookKeeper中的。

2024-12-09 18:09:41 1355

原创 在M3上面搭建一套lnmp环境

基于centos启动一个容器,批量暴露端口号。执行lnmp一键安装脚本。

2024-12-03 14:38:32 369

原创 docker常用操作命令

现在的 Docker 有了专门清理资源的命令。在 Docker 1.13 中增加了。命令,针对容器和镜像可以使用。

2024-12-03 10:42:08 439

原创 laravel官方升级引起的报错问题解决

原来是私有仓库没有有voku/portable-ascii的2.0.2以上版本,我感觉很奇怪,为什么去私有仓库下载这个组件呐,于是我继续探究原因,发现是当项目中配置了私有仓库的时候,如果没有配置优先级,那么组件优先从私有仓库下载。所以,我设置了一下仓库的优先级。发现其他项目是没有问题的,但是这个项目我指定下载suppot:v11.34.1的时候总是报错。1.我尝试升级Support到最新版本,但是有很多依赖的组件不支持。看样子是和已有的某个包不兼容,于是我继续查找原因,看到一行。2.我尝试降级http。

2024-11-27 19:28:00 579

原创 基于syslog实现项目的日志收集

syslog 是 Linux 和其他类 Unix 操作系统中用于存储系统日志的标准协议。它不仅定义了如何记录事件,还规定了这些事件应该如何在网络上传输。在 Linux 系统中,syslog 通常由一个守护进程(daemon)来管理,这个守护进程负责接收来自不同应用程序和服务的日志信息,并将它们写入到适当的文件或通过网络发送给其他服务器。

2024-11-25 16:42:24 1486

原创 纯干货!基于monolog增强laravel框架的日志系统

从数据层面来看,应用程序是一个将数据状态转换为另一种数据状态的过程。而日志,就是记录这个数据每一次的流转过程。日志是数据流转过程可视化的一种方式。在编程中,日志应该被放在优先级列表的首位。日志信息可以包括程序的状态、错误消息、警告、调试信息等等。日志通常被记录到文件中,但也可以发送到其他目的地,比如控制台或远程服务器。我们一般要记录的日志,分为三大块,业务日志,异常日志和数据库日志。

2024-10-16 18:58:23 929

原创 laravel的队列的使用

laravel的特性:laravel队列可以基于不同的后台存储服务提供统一的api,后台存储服务包括 Redis MySQL等。比如调用第三方api,无法保证api的可靠性,我们就需要用队列来重试,比如发送邮件,我们可以从主业务中解耦出来。上面我们配置的队列的相关信息,接下来我们使用command来生产几条消息试一下。因为我们用的Redis存储,是否存储成功,我们看Redis,我们发现有两个队列,一个是我们定义的art。刚才我创建的队列实例接收的是article类型的数据,我们来发送一下。

2024-08-30 18:22:40 750

原创 从并发20到并发120之laravel性能优化

单台服务并发20,平均响应时间1124ms,通过htop观察,发现cpu占用率达到100%(包括sleep的进程),内存几乎没怎么用。

2024-08-20 10:38:49 1030

原创 laravel学习之Eloquent和Collect

下面这些字段都会追加到sql的后面作为过滤条件,当然,也可以给它注释掉注释之后});

2024-08-17 15:12:46 1101

原创 ssl证书90天过期?保姆级教程——使用acme.sh实现证书的自动续期

最近https到期了,想着手动更新一下https证书,结果发现证书现在的有效期只有90天,于是想找到一个自动更新证书的工具,发现了acme.sh,但是网上的文章质量参差不齐,可能需要多篇文章结合来操作,一步步试错。我这里结合了腾讯云的相关文档和一些其他的博文,保证一次性操作成功。

2024-06-18 11:51:48 3700 3

原创 ChatGPT、通义千问这些市面上的聊天式人工智能用的什么技术传输数据?一起来认识一下SSE

通义千问2.5发布后,我发现准确率有了很大的提升,但是处理任务的时长并没有明显的提升,不知道用过通义千问的小伙伴们发现没有,通义千问响应的内容是持续性输出的,而不是一次全部返回。

2024-05-22 16:12:38 656

原创 typescript的入门到吐槽:看了typescript,发现前端真的卷,

一直都听说前端卷,看了ts之后发现是真的卷,比如数据类型就多出了any unknown never void 不知道实际过程中用处大不大,比如类型之间的|和&,当场就把我看懵逼了,已经有了interface,有了class,还有extends,你来给我讲讲你类型之间的|和&真的是必须的吗?今天刚看完typescript,听说你们又开始next.js了,前端大佬们,你们真的没事干了吗?😭😭。

2024-05-08 18:33:14 774

原创 网站升级提示:我用react+go重构了网站并记录了部署项目简要步骤

自开自测,可能有想不到的问题,如果在使用过程中发现了什么问题,可以及时反馈给我哦!

2024-04-30 17:23:20 1049 3

原创 后端程序员入门react笔记(九)- react 插件使用

props 用于父子组件传递数据消息订阅-发布 可以用于兄弟组件,祖孙组件redux 用于兄弟组件,祖孙组件context 用于祖孙组件。

2024-03-22 11:41:58 853 2

原创 后端程序员入门react笔记(八)-redux的使用和项目搭建

我们先来看一下redux的工作流程,可以有一个大概的印象,我们看到,redux的核心有三个,一个是action creator, 一个是store,一个是reducers,其中redux的核心是什么?这样看起来明显是不科学的,那么有没有一种方法,让我们写一次,就可以不用写了呢,有,首先第一点我想到的就是用一个特殊标签包裹一下这些组件,只要在标签内的,都默认传递了store,react真的这么做了,这饿就是provider ,我们来看一下怎么用。我们知道,每个容器组件我们都需要传递一个store,像这样。

2024-03-14 18:48:24 1111 1

原创 后端程序员入门react笔记(七)- React路由

现代的前端页面大多是SPA(单页面应用程序), 也就是只有一个HTML页面的程序,这样用户体验好,服务器压力小,所以更受欢迎。但是一个页面可能有很多功能,比如一个页面,可能会有导航栏,有内容页。头部区域和尾部区域,那么如果是互联网刚起来的那几年,每个导航栏可能就是一个a标签,点击跳转新页面。但是这种跳转不管是对于服务器还是对于用户来说,可能都是不友好的。那么怎么能实现这样一种功能呢,就是我们点击导航栏的时候,只有内容刷新?你用点击事件固然可以这么做。

2024-03-11 11:20:06 1301

原创 后端程序员入门react笔记(六)- 讲透Promise与Fetch

一层层的嵌套,这就是回调地狱。这即不好看,也不好写,逻辑更是混乱。那么怎么办呢?至少作为后端,我们取使用orm取数据的时候都会用到一种链式操作,比如`Model(user).Where("email = ?",query.Email).Where("password = ?",utils.Md5Encode(query.PassWord)).First(user)`。我们永远可以在之前的操作结果上加条件。那么js有没有这种写法呢?有的,这个东西就叫做promise

2024-02-28 15:32:50 1193

原创 后端程序员入门react笔记(五)ajax请求

axios提供了请求拦截器和响应拦截器,帮助我们在请求前对config做一些配置,判断是否重复提交,或者对config做一些检查以及配置纠正等,响应拦截器帮助我们根据不同的返回内容做不同的数据处理,相关案例如下。我们知道,我们前端的服务器是3000端口,但是我们后端的服务器不一定是3000,也可能是80端口,现在我启动一个go编写的后台服务,调用一下接口。axios提供了两种方式来发送请求, 一种是通过axios(config)来发送请求,另一种就是上面列子中的axios.get,

2024-02-23 18:10:19 1169

原创 后端程序员入门react笔记(四)-综合运用,写一个小demo

有时候我们会遇到这样的问题,有两个css对一个class声明了样式,这样的话后引入的css会覆盖前面的css样式,导致样式冲突,那么我们怎么解决这种问题呢,我们可以使用样式的模块化,我们起名一个index.module.css和一个content.module.css。

2024-02-22 18:39:34 1430

原创 JavaScript操作数组常用的函数

【代码】JavaScript操作数组常用的函数。

2024-02-22 14:56:08 431

原创 后端程序员入门react笔记——react的diff算法(三)

我们知道,react里面操作的都是虚拟dom,最后经过render渲染为真正的dom,那么为什么要提出虚拟dom这个概念呢?其实就是将逻辑和视图区分开,react的虚拟dom,就相当于mvc的c,将数据逻辑和真正的dom区分开,从而减少了对dom的操作,不仅避免了资源浪费,而且页面的构建也得到了很大的提升。

2024-02-21 17:02:33 1483 1

原创 优雅地用eruda在移动端上调试网页

Eruda 是一个专为手机网页前端设计的调试面板,类似 DevTools 的迷你版,其主要功能包括:捕获 console 日志、检查元素状态、捕获XHR请求、显示本地存储和 Cookie 信息等等。其有以下功能:Console面板:捕获Console日志,支持log、error、info、warn、dir、time/timeEnd、clear、count、assert、table;支持占位符,包括%c自定义样式输出;支持按日志类型及正则表达式过滤;支持快捷命令加载underscore、jQuery库;

2024-02-18 17:17:49 819

原创 后端程序员入门react笔记——react的生命周期(二)

这个函数我们太常见了,在初始化类的state的时候,或者初始化类的props的时候都会用到,就是一个类的构造函数。对后端人员来说很熟悉。

2024-02-04 18:34:14 957

原创 后端程序员入门react笔记(一)

我们在上面代码可以看到,在js里面我们竟然可以直接写html,而且还不报错,其实这个有趣的标签语法既不是字符串也不是 HTML,而是JSX,它是一个 JavaScript 的语法扩展。在了解react之前,我们还需要了解一些基础工具,比如npm,npm 全称是 node package manager,其实就是一个管理js编写的软件包的管理工具,可以下载,安装,升级,上传js软件包。为了在国内尽快的下载js库,我们需要配置一下npm的镜像源,即从哪个源下载,这里我指定了华为,其他的还有腾讯,淘宝等镜像源。

2024-02-04 14:56:00 1569

原创 记一次gorm版本不兼容踩坑经历

gorm.io 的 Find 方法在进行查找时,如果查找结果为空,不会报record not found,当接收函数为集合时,返回空集合;在gorm2.0以后的版本,有的时候为了方便,对于不需要操作的数据,我会直接interface返回结果,比如这样。这个很让人头疼,查看源码,发现确实有这样的限制,不是slice和struct就会报错,但这明显是不符合规范的,我不知道大家有没有注意过,在不同的项目中引入的gorm 有时候git地址是不一样的,有。这个仓库中,由于版本不兼容,所以留存了两个仓库。

2024-01-23 16:10:54 1080

原创 csdn写作关于markdown语法说明-相关操作及对应效果

MarkdownAuthors: John: Luke对应效果MarkdownHTMLAuthorsJohnLuke。

2023-11-27 16:17:03 989

原创 让国内AI模型解题:滑动窗口中找出最大值,文心一言,通义千问错误率100%,讯飞星火略胜一筹

最近,一些大厂陆续放出了自己的AI模型,处于日常的使用和准确度,我通过一道试题来看一下文心一言、讯飞星火和通义千万的回答结果本道题是一道很经典的算法题,请在滑动窗口中找出最大值。

2023-11-23 11:16:00 259

原创 goland开启debug一直connected的问题 undefined behavior - version of Delve is too old for Go

golang的调试器是delve,Goland内置有一个delve,这个问题表面上看,就是内置delve的版本过低了。我写了一段代码在test.go文件,然后使用单测模式打了几个断点并debug,然后情况出现了,一直在running。idea的调试有的就是有问题,我用过PHPstorm出现过类似问题,所以我新建了一个main文件,并执行,发现报错。debugger面板显示connected,没有任何报错和输出。也就是说,只需要更改为最新的调试器就可以了。

2023-11-17 11:50:34 925

原创 聊一聊被人嘲笑的if err!=nil和golang为什么要必须支持多返回值?

看似实现了一样的功能,但是两者的实现方式是不一样的。golang没有try catch 异常捕捉机制,那么我们至少需要一个返回值来返给我们结果,第二个如果有error了,我们需要知道error,由程序员去控制要不要处理error,而不是直接panic,虽然if err!=nil 被其他程序员嘲笑,但是,这确实是go处理错误的一种方式- go是静态语言,在接收值的时候,我们已经规定好了返回的类型是什么,如果正确了返回正确的值,如果错误了,你可以返回我nil和error,而不是直接把error作为返回值给我。

2023-11-09 18:18:56 899

原创 用go开发项目,提前做好这些工作,让你事半功倍!

在项目中,如果我们代码发生了改动,一般就得手动重新构建,这样显然是很麻烦的。但是我们说过,viper可以用于实现配置的热加载,那么有没有一种办法,可以让go程序也实现热加载呢?viper热加载是利用了第三方库fsnotify.NewWatcher(),用来检测文件,fsnotify利用了os包里面的接口来检测文件是否发生变化,如果发生变化则重新读取。bee是beego框架的热编译工具,同样可以对GIN框架进行热编译,使用起来很方便,功能也有很多。个人感觉这种热部署用起来更舒服,我们可以通过。

2023-09-20 20:40:59 190

空空如也

空空如也

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

TA关注的人

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