- 博客(194)
- 收藏
- 关注
原创 vscode去除斜体注释
在设置里面打开setting.json文件在大括号后面追加下面的代码// 去除斜体注释"editor.tokenColorCustomizations": { "textMateRules": [ { "name": "Comment", "scope": [ "comment", "comment.block", "...
2023-06-04 19:36:00 398
原创 Koa.js笔记
一、路由可以使用router的库koa没有路由处理,需要自己去找库二、静态资源处理npm i koa-static如果路径想使用别名,需要引入另一个包npm i koa-mount路由重定向router.get('/bar', ctx => { ctx.redirect('/foo')})三、中间件执行栈结构洋葱模型先进后出如果没有next()就不会往下走co...
2023-05-27 03:28:00 150
原创 MongoDB笔记
一、业务应用场景三高需求:高并发读写需求海量数据的高效率存储和访问的需求对数据库的高扩展性和高可用性的需求应用场景:社交场景,使用MongoDB存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,地点等功能游戏场景:方便查询、高效率存储和访问物流场景:使用MongoDB存储订单信息物联网场景:存入智能设备信息视频直播:存储用户点赞、互动信息等共同的...
2023-05-23 18:39:00 130
原创 linux基础 | 组、任务调度、磁盘、进程、服务管理、包管理
1、Linux组基本介绍每一个用户必须属于一个组,Linux里面有所有者,所在组,其他组的概念文件属于用户,用户属于组一般来说谁创建了这个文件,这个文件就属于谁文件/目录 所有者查看文件的所有者指令:ls -ahl修改文件所有者指令:chown 用户名 文件名案例:使用root创建一个apple.txt,然后将其所有者修改成tomtouch apple.txtchown t...
2023-05-14 23:03:00 98
原创 MySQL-运维
1、日志错误日志:错误日志是MySQL中最重要的日志之一,它记录了当mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志该日志默认是开启的,默认存放目录/var/log/,默认的日志文件名为mysqld.log。查看日志位置:show variables like '%log_error%'二进制日志...
2023-04-30 03:53:00 45
原创 Go的GC回收机制
一、GoV1.3的标记清除法原理:第一步,暂停程序业务逻辑,找出不可达的对象和可达对象第二步,开始标记,程序找出它所有可达的对象,并做上标记第三部,标记完了之后,然后开始清除未标记的对象第四步,停止暂停,让程序继续跑,然后循环重复这个过程,知道process程序生命周期结束缺点:STW:stop the world 让程序暂停,程序出现卡顿标记需要扫描整个stop清除数据...
2023-04-26 03:06:00 52
原创 proto文件详解
一、message介绍message:protobuf中定义一个消息类型是通过关键字message字段指定的。消息就算需要传输的数据格式的定义。message关键字类似于C++中的class,Java中的Class,go中的struct例如:message User{ string username=1; int32 age=2;}在消息中承载的数据分别对应于每一个字段。其中每个...
2023-04-22 15:23:00 378
原创 使用protobuf的原因以及它和JSON和XML的区别
Protobuf和JSON和XML的区别对于 JSON、XML,为了便于数据传输时的可阅读性,会保留数据的结构化信息,举个 JSON 例子,如下:{ "name": "laomiao", "age": 18}当发送该信息时,接受方收到后就会明白,这是个 “key/value” 形式的数据,并且"name" 后是姓名,"age" 后是年龄。那如何压缩该数据呢?我们可以删除 “花...
2023-04-22 00:55:00 84
原创 protobuf导出go时调整默认tag的方法
问题概述在protobuf导出到golang的时候,生成的.go文件里的struct的tag是没办法灵活设置的,以下面这个message为例test.protosyntax=proto3;package test;option go_package = ".;test";message MyMessage { int64 Code = 1;}执行protoc --pr...
2023-04-22 00:43:00 159
原创 protobuf简介
简介习惯用Json,XML数据储存格式的程序员,大多都没听说过Protocol Buffer(ProtoBuf go初体验博客)Protocol Buffer其实是Google出品的一种轻量&高效的结构化数据储存格式,性能比Json,XML真的强太多protobuf经历了protobuf2和protobuf3,pb3比pb2简化了很多,目前主流的版本是pb3protobuf优...
2023-04-20 21:55:00 56
原创 Go中使用JWT
原文链接:https://blog.csdn.net/m0_58121644/article/details/129643351JWT (JSON Web Tokens) 是一种基于 JSON 格式的轻量级身份验证和授权方案。在 Go 项目中使用 JWT,一般需要完成以下步骤:1. 安装 JWT 库在 Go 项目中使用 JWT 需要先安装 JWT 库,可以使用以下命令安装:go ge...
2023-04-20 17:20:00 213
原创 Gin学习笔记-A
fresh包可以实现预加载预定义函数预定义的全局函数,用在html文件中and函数返回它的第一个empty参数或者最后一个参数就是说"and x y"等价于"if x then y else x":所有参数都会执行or返回第一个非empty参数或者最后一个参数亦"or x y"等价于"if x then x else y":所有参数都会执行not返回它的单个参...
2023-04-19 23:27:00 82
原创 Golang的GMP模型
一、调度器的由来和分析单进程时代的两个问题:单一执行流程、计算机只能一个任务一个任务处理进程阻塞所代理的CPU浪费时间多进程和多线程的问题:多进程/多线程解决了阻塞问题但是引入了新的问题进程/线程的数量越多,切换成本就越大,也就越浪费多线程随着同步竞争(如锁、竞争资源冲突等)开发设计变得越来越复杂老的调度器的几个缺点:创建、销毁、调度G都需要每个M获取锁,这就形成了...
2023-04-13 15:54:00 191
原创 K8S入门
原文链接:https://k8s.easydoc.net/docs/dRiQjyTY/28366845/6GiNOzyZ/9EX8Cp45一、简介为容器化应用提供集群部署和管理的开源工具,Google开发主要特性:高可用,不宕机,自动灾难恢复灰度更新,不影响业务正常运转一键回滚到历史版本方便的伸缩扩展(应用伸缩,机器加减)、提供负载均衡有一个完善的生态需要熟悉docke...
2023-04-10 19:48:00 94
原创 docker推送镜像到腾讯云仓库
原文链接:https://blog.csdn.net/jialiuyang/article/details/986269111、添加容器打开腾讯云控制台,在上方菜单栏 加号图标 选择容器服务,如图:这样上方菜单就会显示出容器服务。2、开通镜像服务选择容器服务,浏览器左侧菜单会显示与容器服务相关的导航菜单,点击“镜像仓库”下面的“我的镜像”,会提示开通镜像服务,根据提示输入仓库密码...
2023-04-10 07:38:00 184
原创 本地打包docker镜像
原文链接:https://blog.csdn.net/feifeiwud/article/details/126636051什么是Docker?Dockers是基于Go语言开发的虚拟容器技术。以前我们部署应用通常是将源代码打包成一个jar包运行,这样就会受到运行环境、配置环境的限制,而且程序也不能跨服务器运行。Docker基于Linux容器技术,将Java源代码、运行环境像MySQL、...
2023-04-10 07:22:00 51
原创 k8s集群搭建及相关问题解决
原文链接:https://juejin.cn/post/7011425524790591519环境准备三台机器:master:192.168.0.1node1:192.168.0.2node2:192.168.0.3基础环境设置[1] 设置3台机器hostname基于主机名通信:/etc/hosts; 每台机器设置对应hostnamesudo hostnamectl ...
2023-04-10 00:28:00 54
原创 go的反射reflect和文件操作
1.反射Go语言的变量分两部分,类型信息和值信息在Go的反射机制中,任何接口值都是由一个具体类型和具体类型的值两部分组成reflect.TypeOf和reflect.ValueOf两个重要的函数来获取任意对象的type和valuev:=reflect.TypeOf(x)v.Name() // 类型名称v.Kind() // 类型种类指针类型的类型名称为空,类型种类为pt...
2023-04-09 02:58:00 69
原创 reflect获取结构体方法时遇到的小问题
文章部分引用:https://blog.csdn.net/qq_35423190/article/details/123554837在使用reflect包获取函数,并调用时,总出现这个报错:panic: reflect: call of reflect.Value.Call on zero Value然后测试发现,只有公有函数(首字母大写的函数)可以通过reflect.MethodB...
2023-04-07 23:24:00 168
原创 win下go使用虚拟机docker中RabbitMQ案例
一、查找rabbitmq镜像docker search rabbitmq二、拉取rabbitmq镜像docker pull rabbitmq三、启动容器-d 表示后台运行-p 表示端口映射docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:latest四、装载可...
2023-03-19 00:35:00 86
原创 gRPC学习
单体架构的缺点一旦某个服务宕机,会引起整个应用不可用,隔离性差只能整体应用进行伸缩,浪费资源,可伸缩性差代码耦合在一起,可维护性差不同的服务访问量不一样微服务架构负载均衡 -> 网关 -> 各个拆分的服务(隔离性比较好,有单独的对应服务的数据库)上述架构,解决了单体架构的弊端但是引入了新的问题:代码冗余服务和服务之间存在调用关系代码冗余问题:服务未拆分...
2023-03-09 23:32:00 49
原创 Docker笔记
一、Docker概述:为什么会出现:开发--运维。问题:在我的电脑上可以运行!版本更新,导致服务不可用,对于运维来说考验就非常大配置环境是十分的了麻烦,每个机器都要部署环境(集群Redis、ES、Hadoop......)费事费力发布一个项目能不能都带上环境打包传统:开发和运维分开,各做各的现在:开发打包部署上线,一套流程做完Docker对以上的问题提供了解决方案:java --...
2023-02-28 11:09:00 69
原创 Redis笔记
一、NoSQL概述早些年的MyISAM:表锁,十分影响效率,高并发下会出现严重的锁问题转战InnoDB,行锁Not Only SQL(不仅是sql),泛指非关系型数据库,随着web2.0,传统的关系型数据库很难对付web2.0时代,尤其是超大规模的高并发社区。比如个人信息,社交网络,地理位置,这类数据的存储不需要一个固定的格式,不需要多月的操作就可以横向扩展NoSQL特点:解耦...
2023-02-27 19:59:00 35
原创 Go的日志库Logrus
一 logrus介绍文章转载于:https://www.cnblogs.com/liuqingzheng/p/16244545.html1.1 log标准库优缺点优点Go标准库的log日志库非常简单可以便设置任何io.Writer作为日志输出位置缺点1 仅仅提供了print,panic和fatal三个函数,不支持info/debug等多个级别2 记录错误有Fatal和P...
2023-02-23 23:04:00 275
原创 Go基础-下
一、面向对象:抽象:把一类事物的共有属性(字段)和行为(方法)抽取出来,形成一个物理模型(模板),这种研究问题的方法称为抽象1、面向对象的三大特性:继承、封装和多态封装:就是把抽象出的字段和对字段的操作封装在一起,程序被保护在内部,程序的其他包只能通过被授权的操作(方法),才能对字段进行操作封装的好处:隐藏实现细节可以对数据就进行验证,保证安全合理如何体现封装:对结构体...
2023-02-19 10:47:00 28
原创 Gorm笔记
转载于:https://www.mszlu.com/go/gorm/01/01.html#_1-入门一、快速入门gorm地址:https://github.com/go-gorm/gorm对开发者友好的gorm库,目前使用最广的go orm库之一1. 入门数据库以目前使用最多的mysql为例。//安装MySQL驱动go get -u gorm.io/driver/mysql/...
2023-02-13 17:37:00 80
原创 Gin笔记
一、环境搭建:Gin是一个很受欢迎的Go web框架下载前在Goland最好配置一下代理GOPROXY=https://goproxy.cn,direct在Goland中创建Go项目之后,下载Gin的依赖go get -u github.com/gin-gonic/gin安装postman修改ip为内网iprouter.Run("0.0.0.0:8080")二、响应响应jso...
2023-02-13 09:19:00 65
原创 MySQL-进阶
1、存储引擎MySQL体系结构:连接层最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SOL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如 过程、函数等引擎层存储引擎真正的负责...
2023-02-12 00:43:00 68
原创 MySQL-基础
1、MySQL概述数据库:数据存储的仓库,数据是有组织进行存储数据库管理系统:操纵和管理数据库的大型软件SQL:是关系型数据库的编程语言,定义了一套操作关系型数据库统一标准MySQL社区版安装完成之后,启动win+r services.msc 找到MySQL80启动cmd 管理员身份运行启动:net start mysql80停止:net stop mysql80...
2023-01-28 22:16:00 35
原创 Go基础-中
函数:为完成某一功能的程序指令(语句)的集合,称为函数在Go中函数分为自定义函数、系统函数基本语法:func 函数名 (形参列表) (返回值类型列表) { 执行语句... return 返回值列表}形参列表:表示函数的输入函数中的语句:表示为了实现某一功能代码块函数可以有返回值,也可以没有包:utils.go //专门用于定义函数,让其它文件来调用db....
2023-01-14 22:44:00 33
原创 Go基础-上
1、搭建Go开发环境下载SDK下载地址:https://golang.google.cn/dl/darwin是mac下的sdkpkg是图形化安装包tar.gz是解压就可以使用freebsd是unix下的sdklinux如果是32位系统:386.tar.gz 如果是64位系统,选择amd.tar.gsrc.tar.gz是源码包windows .msi双击安装 .z...
2022-12-25 16:46:00 43
原创 react-router6笔记
1、概述React Router以三个不同的包发布到npm上,它们分别为:react-router 路由的核心库,提供了很多的:组件、钩子react-router-dom 包含react-router所以内容,并添加一些专门用于DOM的组件,例如、<BrowserRouter>等react-router-native 包括react-router所以内容,并添加一...
2022-12-11 00:40:00 23
原创 react-扩展内容
1、setState 状态的更新是异步的setState(stateChange, [callback]) --- 对象式setStatestateChange为状态改变对象(该对象可以体现出状态的更改)callback是可选的回调函数,它在状态更新完毕、界面也更新后(render调用后)才被调用setState(updater,[callback]) ---- 函数...
2022-12-10 14:43:00 52
原创 React笔记-基础
Redirect的使用一般写在所有路由注册的最下方,当所有路由都无法匹配的时候,跳转到Redirect指定的路由具体编码:<Switch> <Route path='./xxx' component={xxx}/> <Route path='./xxx' component={xxx}/> <Redirect to="/x...
2022-12-08 14:54:00 23
原创 linux基础 | 基础介绍、目录、操作系统命令、用户管理、常用指令
1、Linux目录知识Linux在根目录下有很多目录都是规定好的,比如etc里面是配置信息,boot是启动时用到的文件Linux会把计算机的硬件映射成一个文件来管理在Linux里面一切皆是文件/bin 存放着最经常使用的指令/sbin (s是super User的意思) 存放着系统管理员使用的系统管理程序/home 普通用户的主目录,在Linux里面每一个用户都有自己的目录,一...
2022-11-24 19:30:00 41
原创 nginx配置http服务简单入门
nginx是用的最多的web服务器java和python可以写nginx服务,为什么还需要nginx是因为nginx是纯粹的做http实现的服务,并没有业务逻辑,做http代理1.需要安装nginxnginx.org主要涉及nginx的代理和缓存功能2.配置nginx基础代理nginx目录下面有一个conf/nginx.cpnf // nginx的配置主文件通过include ...
2022-11-02 18:13:00 121
原创 HTTP协议学习(补充)
1.HTTP长连接每次http请求需要创建tcp连接,需要三次握手chrome一次支持6个并发连接创建长连接可以在请求头里面加上Connection: Keep-Alive一个TCP连接可以发送多个HTTP请求,但是在HTTP1.1里面http请求在tcp连接上发送是有先后顺序的,但是在HTTP2上面可以并发的发送http请求2.数据协商客户端发送给服务端请求的时候,客户端会声明希望...
2022-10-31 23:24:00 29
原创 vue3笔记
1.toRefs可以把对象变成响应式对象2.生命周期vue2里面的beforeDestory --> beforeUnmount destoryed --> unmounted3.侦测变化-watchwatch()第一个参数是要检测变化的值,可以是数组形式同时检测多个如果想要检测对象中的某一个属性,参数可以写成函数watch([()=>dat...
2022-10-31 12:42:00 29
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人