自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot加了拦截器后出现的跨域问题解析

1.背景起初解决跨域问题的方法是直接在Controller上添加@CrossOrigin注解,实现了前后端分离中的跨域请求。但随着业务代码的编写,做了token会话保持的检验,添加了拦截器后,再次出现了跨域问题。很纳闷,讲理说后台已经允许了跨域请求,之前的测试也证明了这一点,那为什么又突然出现了跨域拦截问题呢?2.前言前端Vue中axios的配置我没有做任何改变,所以不用考虑是前端的问题,而...

2020-01-22 15:42:10 9000 18

原创 React 前端面试基础问题

答案:-1,React 状态更新是异步的,改变值后不会立即重新渲染,而是放入一个队列中,在同一个渲染周期内,相同 state 做 setState 操作时为了避免重复渲染会做一定优化处理,非函数式调用时是最后一个操作覆盖前面的,函数式时为了传递最新的值,会依次调用队列中的 set 操作。深拷贝是指完全复制原始数据,包括所有层级的对象和数组,修改复制后的数据不会影响到原始数据。在 JavaScript 中,任务队列(Task Queue)是一个用于管理待执行任务的队列,它是实现异步执行的重要机制之一。

2024-08-15 16:27:19 895

原创 《博客崩溃源记》

此情此景,已经是有点脑袋晕晕没有办法了,此刻觉着重要的是先把我的文章数据给搞出来,别让数据丢了,但是看了下导出挂载在本地服务器的数据文件竟然有 2 个 G 左右,但实际我的所有文章 JSON 数据大小 1M 都不到,这导出来成本太大了,且去恢复官方的原始数据文件也是一个极为繁琐的过程,劝退 ing…但是在排查问题的过程中,我发现了没配国内镜像源就给配上了,结果导致后面拉取的镜像都是从国内镜像源拉取的,国内的镜像仓库可能没有同步最新的版本,导致 latest 拉到的还是老版本,就酱紫了…

2024-08-15 16:25:50 852

原创 Grafana 可视化监控和告警

什么是 Grafana?Grafana 是一个监控仪表系统,专门用于监控指标数据的图形化展示,支持多种数据来源,Prometheus 便是其中一种。它看上去是这样的:[外链图片转存中…(img-yvS46ihY-1723538656269)]Grafana 还带有告警功能,在系统出现问题时通知你。且告警规则可在监控图形上直接配置!官方文档:https://grafana.com/docs/grafana/latest/fundamentals/dashboards-overview/

2024-08-13 16:48:50 869

原创 Prometheus 监控指标采集

在现代分布式系统和云原生环境中,为了确保复杂的分布式系统和服务的高可用性、可靠性和性能,通常采用实时可视化监控和分析,实现故障快速响应、资源优化和安全保障,从而提升用户满意度和运营效率。在目前主流的解决方案中,Prometheus和Grafana是两个使用 Go 开发的强大开源工具,通常一起使用来实现全面的监控和可视化系统。其中Prometheus负责采集和存储监控对象的时序数据。

2024-08-13 16:44:01 1251

原创 K3S 和 Rancher 安装部署&配置

K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。K3s 是一个完全兼容的 Kubernetes 发行版,具有一些增强功能。

2024-08-02 18:24:36 1082

原创 React 划选评论或高亮功能实现

最近负责了一个对文本划选批注和高亮的功能开发,大致类似钉钉文档的划选评论功能:第一眼看到这个需求时瞬间压力就拉满了😭,这种程度的交互,对于我这半道出家前端的来说,显得有点复杂 …进一步还了解到Selection下的Range至此至少划选改变样式的功能就能实现了,当我欣喜于这功能也没想象中的那么难时,就发现了事情似乎并不简单。

2024-08-02 18:23:24 615

原创 JavaScript 的 Range 和 DocumentFragment

Range对象表示文档中节点和文本节点的一部分。它允许你创建、操作和检测文档中的任意部分。文档:https://developer.mozilla.org/en-US/docs/Web/API/Range。

2024-08-02 18:22:43 976

原创 Golang 性能分析

性能分析是一种评估软件系统性能的方法,它涉及测量和评估程序或系统的运行效率,包括但不限于处理速度、资源使用效率、响应时间等。当你的系统存在性能瓶颈,想要优化代码、提高系统的整体性能和响应速度的时候,就需要做性能分析了。

2024-08-02 18:21:26 1017

原创 Pulsar - 新一代消息中间件引擎

Pulsar是一个多租户、高性能的服务器到服务器消息传递解决方案。

2024-08-02 18:17:12 583

原创 Green Sock | GSAP 动画库

**GreenSock Animation Platform(GSAP)**是一个业界知名的动画工具套件,在超过1100万个网站上使用,其中包括大量获奖网站! 您可以使用GSAP在任何框架中制作几乎任何JavaScript可以触及的动画。无论你是想制作UI、SVG、Three.js还是React组件的动画,GSAP都能满足你的需求。核心库包含创建快速、跨浏览器友好的动画所需的一切。除了核心,还有各种插件。你不需要学习它们来开始,但它们可以帮助解决特定的动画挑战,如基于滚动的动画,可拖动的交互,变形等。

2024-01-03 17:20:00 2773 1

转载 LRU 算法

上述我们的容器最大容量的单位是键值对的个数,这是不太合理的,因为实际中我们应该限制的是缓存占用大小,因此可以将最大限制改成byte为单位,而且需要对淘汰算法进行优化,这时候我们可能超出容量后,需要淘汰的不止是一个缓存,可以是多个,直到当前已用内存小于最大内存。这样做的目的是更好地适应特定访问模式,对于某些场景可以提供更好的性能。那么该数据结构就是当存储队列到达上限时,清除的是最久未被访问的节点,该节点一般认为是最可能无用的节点,保留下来的是最近都有使用过的节点,因此可以实现对"有用"数据的最大程度保留。

2023-08-08 16:23:44 224

原创 etcd

民间文档:http://www.topgoer.com/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%93%8D%E4%BD%9C/go%E6%93%8D%E4%BD%9Cetcd/%E6%93%8D%E4%BD%9Cetcd.html官方文档:https://github.com/etcd-io/etcd/blob/main/client/v3/README.md。

2023-08-04 14:38:23 732

转载 oh my zsh及其插件安装

1.oh my zsh安装oh-my-zsh依赖于zsh,需要先安装zsh:yum -y install zsh如果当前的shell不是zsh,输入chsh后,输入/bin/zsh,回车。安装oh my zsh,执行官方的脚本:zsh -c "$(curl -fsSL https://gitee.com/whereabouts-fork/ohmyzsh/blob/master/tools/install.sh)"若失败则手动安装:git clone https://gitee.com/

2022-05-15 01:00:25 3306

原创 发布npm命令行脚本

1.初始化npm项目npm init -y执行命令后会生成package.json文件,文件中有一些配置项,根据实际情况修改:name:包的名字,默认是这个文件夹的名字,要求不能是npm上重名的。version:包的版本,默认是1.0.0description:包描述main:入口文件,默认是index.jskeyword:包的关键词,用于npm上搜索。author:作者license:开源协议2.编写脚本入口文件index.js,需要在第一行添加 #!/usr/bin/env

2021-11-06 18:03:19 662

原创 Node.js中使用ES6报错

背景index.js:import hello from './cpoy';hello();cpoy/index.js:const hello = () => { console.log("hello world!")}export default hello在 package.json 中添加了"type": "module"配置。报错Directory import xxxx is not supported resolving ES modules importe

2021-11-06 15:35:26 4921 2

原创 Axios使用封装和跨域

1.安装npm install axios --save# 或者yarn add axios2.请求方式Get、Delete请求:这类请求也称作query请求。第一种方式为拼接url的形式传参:axios.get('/user?username=korbin&password=12345').then(function (res) { console.log(res);}).catch(function (err) { console.log(err);});

2021-10-03 03:34:57 671

原创 DDD领域驱动Golang实践

web-template-dddGithub地址:https://github.com/whereabouts/web-template-ddd1.简述基于DDD架构的Web服务快速构建模板。DDD领域驱动设计是一个很宽泛的方法论,涉及到的概念也很多,DDD并没有给出标准的代码模型,不同的人可能会有不同理解。该模板项目尝试通过不断的理解领域驱动,结合DDD的思想和规范,构建出一个代码目录结构,将DDD落地。2.DDD分层架构分层架构有一个重要的原则:每层只能与位于其下方的层发生耦合。具体又

2021-09-10 01:06:40 2977

原创 React中ESLint对a标签href属性警告

问题描述在React中如果使用了a标签,但是又没有给a标签的href属性赋值有效的链接地址,则ESLint会警告,看着很烦。The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resem

2021-09-08 00:25:18 1823

原创 protobuf中的omitempty字段处理

问题描述proto文件自动生成.pb.go文件的代码中tag上会自动加上omitempty字段,如下:type RoleUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json

2021-09-06 19:07:35 2177

原创 React 笔记

文章目录简介虚拟DOMReact脚手架函数式组件类式组件组件3大核心属性React路由setState生命周期React UI组件库 AntdLazyLoadFragmentContextRedux组件通信方式总结Component优化Error boundary(错误边界)使用自定义配置文件CSS IN JS持续补充中…简介由Facebook开源的,用于动态构建用户界面的 JavaScript 库(只关注于视图)。具有如下特点: 1.声明式编码2.组件化编码3.React Native 编

2021-08-31 23:26:02 185

原创 yarn快速上手

1.介绍在 Node.js 生态系统中,依赖通常安装在项目的 node_modules 文件夹中。然而,这个文件的结构和实际依赖树可能有所区别,因为重复的依赖可以合并到一起。npm 客户端把依赖安装到 node_modules 目录的过程具有不确定性。这意味着当依赖的安装顺序不同时,node_modules 目录的结构可能会发生变化。这种差异可能会导致类似 “我的电脑上可以运行,别人的电脑上不行” (即:完整可运行的项目上传到 git 上,别人 Pull 下来以后,npm install 会报错) 的情况

2021-08-28 16:55:15 243

原创 Windwos下搭建MongoDB集群

文章目录1.下载MongoDB2.集群描述1.下载MongoDB去MongoDB官网下载解压版免安装的压缩包,https://www.mongodb.com/try/download/community:2.集群描述在同一台Windows机上安装三个MongoDB实例,1主(27018),1从(27019),1裁决(27020)。MongoDB版本为4.4.6,4.x支持事务,要求是在集群模式下。...

2021-07-14 01:07:26 1447

原创 Golang在Linux下部署环境快速搭建

文章目录1.安装Go环境2.安装MongoDB2.1 下载安装2.2 开启权限认证1.安装Go环境首先去Golang中文网选择对应版本的安装包:https://studygolang.com/dl,复制下载链接 https://studygolang.com/dl/golang/go1.15.12.linux-amd64.tar.gz:cd到/usr/local/src:cd /usr/local/src将压缩包下载到该目录下:wget https://studygolang.com/dl/

2021-05-16 15:44:35 990 1

原创 JDK和Maven在Windows下安装和配置

文章目录1.JDK1.1 下载安装1.2 配置环境变量1.3 验证安装2.Maven2.1 下载安装2.2 配置环境变量2.3 修改本地仓库位置2.4 配置阿里云的中央仓库2.5 验证和测试1.JDK1.1 下载安装前往官网下载 http://www.oracle.com/technetwork/java/javase/downloads/index.html ,选择对应的版本:选择适合自己电脑版本的JDK,64位可以兼容32位操作系统,32位不可以兼容64位操作系统,x86为32位,x64为64

2021-05-08 13:20:34 1833 1

原创 Node.js在Windows下安装和配置

文章目录1.什么是Node.js2.下载和安装3.依赖包路径配置4.配置npm阿里镜像1.什么是Node.jsNode.js简单的说就是运行在服务端的 JavaScript;Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境;Node.js使用一个事件驱动、非阻塞式 I/O 的模型,使其轻量且高效;Node.js的软件包生态系统npm是全球最大的开源库生态系统。2.下载和安装直接前往Node.js官方网站下载:https://nodejs.org/en

2021-05-06 16:49:31 420 2

原创 Golang在Windows下开发环境快速搭建

文章目录1.下载安装包2.安装及验证1.下载安装包官网在不科学上网的情况下不容易打开,可前往Golang中文网下载各个版本的安装包:https://studygolang.com/dl 。提示:如果要使用Go-Mirco建议安装1.14版本,因为目前还不支持1.15及其以上的版本,详见:Go-Micro启动依赖报错解决方法2.安装及验证运行下载的Golang安装包,选择好安装目录,一直Next就可以了,值得一提的是Golang的安装程序会为我们自动配置好环境变量:安装成功后验证一下是否安

2021-04-19 18:52:53 584

原创 ElementUI表单校验的validate方法返回参数始终为true的问题

问题描述按照官方例子调用validate方法:this.$refs.registerForm.validate((valid) => { console.log(valid) if (valid) { // this.registerNext = true } else { return false } })发现不管表单中内容是否检验通过,valid参数的值始终为true。原

2021-03-15 23:28:00 7677 4

原创 Windwos下MongoDB4.x安装配置及密码设置

文章目录1.下载和安装2.配置和使用3.密码设置4.登录验证1.下载和安装直接进入MongoDB官网 https://www.mongodb.com/,点击下图处进入下载页面:选择平台为Windwos,包为msi,直接点击下载:打开安装包后选择custom自定义安装目录,如果之前安装过会多一个remove按钮,先移除之前安装的版本:为了避免后续安装和配置出错,建议安装前先完全卸载之前的MongoDB服务,先在服务里面查看是否有MongoDB相关的服务,有的话则以管理员身份运行cmd,然后执行

2021-02-26 00:13:57 1475 2

原创 Golang解决跨域问题

文章目录1.什么是跨域2.使用CORS解决跨域问题2.1 简单请求2.2 非简单请求2.3 配置CORS以解决跨域问题3.Golang解决跨域拦截1.什么是跨域由于浏览器的同源策略限制,进而产生跨域拦截问题。同源策略是浏览器最核心也最基本的安全功能;所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)。同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会

2021-02-24 20:51:34 5637

原创 Golang实现SHA256加密和Base64编码

1.前言JWT的生成规范中常用到Base64 URL编码和SHA256加密算法,好消息是Golang原生包提供了对应的实现。2.Base64 编码Golang内置支持Base64编码解码,Go的encoding/base64包遵照RFC 4648规范实现了base64编码解码功能,包括标准方式以及URL/文件名称安全方式编码。2.1 Base64 标准方式编码解码RFC 4648规范约定标准Base64对任何二进制数据使用US-ASCII字符子集进行编码,字符包括:A-Z, a-z, 0-9, +

2021-02-23 23:59:16 2828 2

原创 JWT详解及Golang实现

文章目录1.背景2.概述3.组成3.1 Header3.2 Payload3.3 Signature4.令牌的校验5.续期方案5.1 方案15.2 方案26.Token总结7.Golang代码实现1.背景HTTP协议是一种无状态的协议,这意味着用户提供账号和密码进行登录认证后,下次再请求的时候,仍然需要认证,因为服务器并不知道是谁发送的请求,并不知道该用户已经认证过一次。 所以为了解决这一问题,保持客户端与服务端的会话状态,在服务器的缓存中需要为每位用户分配一份存储空间,用于存储用户的个人登录信息

2021-02-23 23:37:39 5384

转载 360浏览器下页面样式显示异常的解决方法

1.问题描述最近由于自己在浏览器使用体验上的差异,从Chrome换为了国产的360浏览器。然后项目在本地开发测试的时候,完全正常;但是在打包部署到服务器后,再用360浏览器访问网页时发现CSS错乱, 页面显示异常。但在换用Chrome、Firefox、QQ浏览器、Edge等其他浏览器访问又是正常的。2.问题分析其他浏览器能够正常访问页面,说明是360浏览器自己的问题。后来发现我的360浏览器默认的采用了:兼容模式,如下图所示:于是尝试性的将模式切换为:极速模式 后,发现页面重新加载,显示正常了。并

2021-01-30 19:23:05 4127 1

原创 Golang开源发布自己的包

文章目录1.前言2.新建仓库3. 构建项目和代码4.提交和发布代码5.引入和使用包1.前言我们平时在Golang项目的编码过程中,除了经常通过import使用官方提供的依赖包,也经常通过go get -u github.com/xxx/xxx命令下载第三方包来使用。那么我们如何将自己封装的包开源发布出去,让所有人都可以像使用其他三方包一样使用我们的包呢?2.新建仓库首先在我们的 Github 上新建一个仓库,权限选择 Public(默认):仓库创建成功后,我们得到仓库地址,通过git clone

2020-12-11 12:52:33 6243

原创 Go-Micro微服务框架使用

1.Go-Micro微服务框架简介Go-Micro类似Java中的SpringCloud,虽然生态上有一些区别,但是可以类比比较。官当Github地址为 https://github.com/micro/go-micro,下载安装依赖命令:go get -u github.com/micro/go-micro2.创建Web服务Golang本身提供了丰富的http包,并且Gin等Web框架实现一个Web服务,但是为了贴合Go-Micro框架的统一规范,所以需要通过使用Go-Micro的github.

2020-12-09 23:54:42 1051

原创 Go-Micro客户端请求报500错误的解决方法

1.服务端package mainimport ( "github.com/gin-gonic/gin" "github.com/micro/go-micro/registry" "github.com/micro/go-micro/web" "github.com/micro/go-plugins/registry/consul" "net/http")func main() { consulReg := consul.NewRegistry(registry.Addrs(":85

2020-12-09 23:12:44 3172 2

原创 Golang中log日志包的使用

文章目录1.前言2.log包介绍3.log包的使用3.1 日志输出方法3.2 自定义创建日志对象3.3 封装自定义日志包3.4 log包进一步解析1.前言作为后端开发人员,日志文件记录了发生在操作系统或其他软件运行时的事件或状态。技术人员可以通过日志记录进而判断系统的运行状态,寻找导致系统出错、崩溃的成因等。这是我们分析程序问题常用的手段。2.log包介绍在Golang中记录日志非常方便,Golang提供了一个简单的日志记录包log,包中定义了一个结构体类型 Logger,是整个包的基础部分,包中的

2020-12-01 11:02:26 3297

原创 Golang获取命令行参数的方式

1.介绍当我们希望通过命令行启动Golang程序,获取输入的各种形式参数时,该如何处理呢?2.os.Argsos.Args是一个string的切片,用来存储所有的命令行参数,包括go run main.go这部分,整体编译后实际是生成和运行的main.exe文件,所以第一个参数是main.exe。示例如下:func main() { for i ,v := range os.Args { fmt.Println(i, v) }}命令行携带参数启动:go run main.go -nam

2020-11-27 23:53:46 1894

原创 Go-Micro启动依赖报错解决方法

启动报错# github.com/coreos/etcd/clientv3/balancer/pickerD:\GoPath\pkg\mod\github.com\coreos\etcd@v3.3.25+incompatible\clientv3\balancer\picker\err.go:37:44: undefined: balancer.PickOptionsD:\GoPath\pkg\mod\github.com\coreos\etcd@v3.3.25+incompatible\client

2020-11-26 14:19:07 1134

原创 Golang依赖下载安装失败解决方法

在已经搭建golang和git环境后,并在挂了VPN的情况下,cmd中运行命令:go get github.com/astaxie/beego #下载依赖成功go get -u github.com/beego/bee #安装bee脚手架失败在安装bee脚手架时,要么是卡住,要么是如下的报错:原因还是因为被墙了,解决方法是更改golang的配置,主要修改环境变量和设置代理:set GO111MODULE=onset GOPROXY=https://goproxy.io然后重新执行安装命令

2020-10-09 15:02:03 4205 1

职工管理系统C语言源程序代码.c

C语言大一工程实践职工管理系统,花里胡哨,贼棒~

2020-01-02

数据库SQL Server学习PDF

压缩包中包含数据库SQL Server学习PDF,涉及基本的增删查改,游标、存储器等内容。

2019-03-05

空空如也

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

TA关注的人

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