- 博客(73)
- 收藏
- 关注
原创 mac OS python2 安装 pip
当前python2已经被停止维护了,但是公司的老代码中还存留大量的python2的代码需要进行维护,这就很让人头秃。由于mac中自带的pip3,使用pip3安装的第三方库使用python命令是识别不了的。这是因为安装的第三方库放置在python3的目录下了。于是我们需要安装pip来支持python2的第三方库的安装# 下载脚本$ wget https://bootstrap.pypa.io/pip/2.7/get-pip.py# 使用python2执行$ python --version Py.
2021-11-15 10:59:39
5946
原创 consul+prometheus+grafana监控平台小demo
前言软件运行是带错运行的一个过程,没有人能肯定的说自己的程序永远不会出现问题。那么既然是这样,我们怎么判断我们的系统出现了问题呢?肯定不能让甲方爸爸告知你的系统访问不了了(这样的话这个绩效你背定了,耶稣的留不住你,产品经理说的)。那我们又不可能随时随刻的在电脑面前看有没有问题发生,那么怎么办?我们可以请几个人来轮班看着这个程序,如果有问题了马上解决(其实就是运维老哥)。但是这样不是办法,我们能不能让电脑帮助我们来监控程序呢,一有问题就告诉我们,然后我们第一时间马上解决。这就落到了我们的重点了——监控技术。
2021-11-09 10:23:02
5149
原创 gitlab-runner 三种runner创建和和使用
gitlab-runner 的创建和使用(一)runner使用背景对于我们项目开发来说,为了防止主项目被污染,在多人协作开发的时候,要fork一个子项目到自己的工作目录下,切分支然后进行修改之后,再从当前项目中提一个merge request到主项目中,主项目merge负责人觉得没问题的时候,再进行主项目分支和合并。对于一个开发小组来说,利用gitlab的CI CD帮助我们做代码风格的检查,镜像的打包是一件非常方便的事情。而想通过使用CI CD的话,则需要配置runner。一般来说,我们都会配置一个公
2021-08-23 11:27:48
21657
1
原创 记一次数据库乱码问题
最近在搞项目,但是在数据库初始化这一块老是会出现数据库乱码的情况出现。网上找了很多资料,对于数据库编码这一块有点理解,记录一下问题出现由于之前一直依赖于数据库可视化工具,例如mysql workbench,navicat之类的,这一类书数据库可视化工具一般都有默认的编码,例如mysql workbench使用的编码就是utf8mb4编码。之前一直使用的是mysql workbench初始化sql,由于项目快要完结了,要对项目镜像容器化处理,mysql也作为容器之一(方便部署,实际不会容器化数据库).
2021-08-02 10:36:24
233
原创 kubernetes数据卷挂载成功但是文件不同步
最新在搞k8s的一些东西,在做一个数据持久化也就是数据卷挂载的一些问题。然而突然发现数据卷挂载成功了,但是日志文件没有同步下来这就很神奇了,数据卷挂载之后没有报错,但是日志文件也没有同步下来。为了验证猜想,我在挂载的路径下创建了一个文件,进去容器里面看,果然没有。然后我在容器里面创建一个文件,出来挂载路径看,也还是没有。但是一点报错信息都没有!!然后后来我发现,不管pod怎么重启,之前创建的文件还是存在的。按道理说,如果没有挂载到数据卷的话,重启之后里面应该是空文件才对!!最后在kubectl .
2021-07-29 18:16:40
3375
4
原创 kubernetes pull an Image from a Private Registry
【已解决】使用imagePullSecrets拉取私有仓库镜像拉取失败?
2021-07-29 11:03:33
259
原创 vue在不同平台构建的问题
最近换了mac m1芯片,让原本的项目出现了很多和平台相关的问题,最主要的问题就是m1芯片的cpu架构为arm架构,而Intel芯片cpu架构为amd架构最近在改以前在window系统下写的vue项目,因为要改成mac系统下编译运行,出现了很多问题现在是从 macos到linux (debian)平台下运行,又出现了平台不兼容的问题(真的想打人…)我是要打成docker镜像,然后通过k8s进行部署的,在编译的时候出现了这个错误platform unsupported @vue/cli-servi.
2021-07-19 16:00:11
526
原创 使用正确密码连接docker起的mysql提示连接拒绝?
密码正确却提示,ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
2021-07-13 14:28:47
1529
原创 Macbook apple m1芯片 踩坑过程
记录macbook air apple m1芯片的踩坑过程no matching manifest for linux/arm64/v8 in the manifest list entries
2021-07-12 10:55:21
2157
原创 docker docker-compose volumes数据卷挂载问题
docker数据卷挂载之后,导致no such file or directory....
2021-07-08 14:27:40
3820
原创 GVA数据库迁移到tidb相关问题
register table failed {"err": "Error 8200: Unsupported modify column: length 6 is less than origin 10"}
2021-06-17 16:54:36
988
原创 Kubernetes 部署应用踩坑
从做项目开始的单机应用本地调试,到项目打包放到服务器上运行,再到后来的容器虚拟化技术docker,一路走来都踩了很多坑。最近即将走进社会,在公司实习的时候,要求实习项目需要在使用Kubernetes来使用部署。又踩了很多的坑,现在一一来记录。那些基本的知识这里不再进行赘述了,讲一下项目打包的流程及其具体命令吧。项目打包到Kubernetes 部署发布的全过程:代码编写项目打包镜像打包推送镜像到远程仓库Kubernetes 创建pod 对象的yaml文件使用命令创建pod对相应的pod.
2021-06-15 09:48:15
504
原创 【已解决】vue页面数据绑定之后,数据不显示的问题
我在使用vue前端代码的时候,有一个需求是要根据数据格式展示的方式动态的展示数据:例如:普通的字符串,直接输出json格式,进行json解析,将json字符串解析成为json对象,存储在json对象数组里面渲染展示…但是问题出现了,跟着代码看:我首先调用queryTableStruct()获取到表的结构,然后前端会动态的渲染页面结构。然后会去调用后台接口,获取到数据根据数据的展示格式,如果是json展示的,进行解析存储渲染。由于可能存在一条记录里面存在多个json格式的数据需要展示。.
2021-05-24 10:45:49
10268
原创 GitLab CI/CD配置使用教程
文章目录1、GitLab-runner安装2、GitLab-runner注册3、配置gitlab-ci.yml4、踩坑(1)runner is alive but pipeline is pending完结撒花!因为公司需要我们使用GitLab来提交代码,使用GitLab CI/CD。之前我是没有接触过这个东西的,昨天搞了一天,也是踩了一天的坑,现在记录一下这个是GitLab CI/CD 的官方文档:https://docs.gitlab.com/ee/ci/README.html1、GitLa
2021-04-07 10:18:07
9692
1
原创 debian10 virtualbox 安装增强功能
原文地址:https://zhaokaifeng.com/?p=573本文亲测有效,转载意为为自己日后需要再查看本文中使用的Debian是安装在VirtualBox中的虚拟机,具体参数如下: Debian版本:Linux debian4.9.0-4-amd64 VirtualBox版本:VirtualBox 5.2.6Debian虚拟机安装VirtualBox增强功能的具体步骤如下:1 前期准备打开Debian虚拟机并登陆,依次点击VirtualBox的“设备->安装增强功能”。这
2021-03-29 10:35:59
1352
1
原创 virtualbox debian虚拟机ssh远程连接设置
文章目录前言通过host-only方式访问虚拟机前言自从从学校放假以来,就一直在家里什么都学不进去,一直在打游戏。最近痛定思痛跑去广州公司去实习了,这两天入职的,入职的第一天就是安装环境!!然后装了一天,我心态崩了!!!公司线上用的系统是linuxdebian10然后我使用virtualbox安装得便虚拟机,遇到了一系列的坑。首先就是配置的问题,再来就是网络的问题,还有各种命令和centos都有点不一样,在这里记录一下怎么配置使得宿主机通过xshell或者其他一些软件远程连接debian虚拟的的
2021-03-26 10:28:15
1369
原创 go 框架之Beego学习
写在前面:有那么一段时间没有更新博客了,是因为上一段时间都在准备校招的面试,而上岸了一家游戏公司,所使用的编程语言也从Java改成golang了,所以一些都要从头开始学起,讲真的,golang生态真的没有Java那么好,但是因为golang的天然支持高并发,现在也是一个趋势。在此希望所有的应届毕业生,不要限制自己的发展方向,不管是什么方向什么语言,都要有所尝试,不是你学了Java以后就一定是干Java的,编程学的是思想,不是技术!Beego开发文档https://www.kancloud.cn/
2021-03-24 19:34:59
1110
原创 go:50:13: undefined: strings.Builder
unknown driver "mysql"undefined: strings.Builder
2021-01-12 10:33:31
306
原创 docker: Error response from daemon: driver failed programming external connectivity on endpoint ...
docker: Error response from daemon: driver failed programming external connectivity on endpoint myredis (e3a29619db5b4988c7f4099d7dac03017c21e5a4f7567c5529d65e0fe01e52c1): Bind for 0.0.0.0:6379 failed: port is already allocated.
2021-01-11 14:37:28
491
原创 Docker基本操作
之前在学springboot 的时候学了一下下docker 的一些相关操作,毕竟我们在配置Linux环境的时候还是挺麻烦的,我们不如直接在docker上面拉取相关的镜像,一键部署就好了。由于断断续续的使用docker,导致docker命令很不熟悉,经过三番四次的折磨之后,决定痛定思痛写下docker相关的操作文章目录1、docker启动暂停1、docker启动暂停...
2021-01-11 13:53:17
92
原创 golang fmt.printf( ) 参数使用
本文转至:https://www.cnblogs.com/dasn/articles/5028811.htmlpackage mainimport "fmt"import "os"type point struct { x, y int}func main() {//Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2}/
2020-12-22 16:49:33
1125
原创 go SDK下载及环境变量配置
文章目录SDK下载环境变量配置测试SDK下载下载地址:https://golang.google.cn/dl/更多版本,找到1.9.2我是win10 64位的,我找到这个下载下载之后解压环境变量配置我的电脑 -> 属性 -> 高级系统设置 -> 环境变量GOROOT:新建环境变量GOPATH: 创建一个工作空间存放东西即可新建环境变量path:修改path环境变量测试go version...
2020-12-03 09:46:34
15306
4
原创 Java基础
1、Java基础1.1 面向对象OOP1.1.1 面向对象开发特点:继承、多态、封装多态: 重载:发生在同一类中,要求方法名相同,但是参数列表不同 重写:发生在继承关系种,遵循两同两小一大原则:两同(方法名相同,参数列表相同),两小(如果返回类型是基本类型则要完全一致,如果是对象类型则需要小于父类的返回类型;方法抛出的异常一定要小于父类抛出的异常),一大(访问权限要大于父类) 1.2 面向对象六大基本原则 单一职责原则:一个类只做一件事情 依赖倒置原则:面向接
2020-11-08 09:44:50
127
原创 脱裤子放屁之用两个栈实现队列、用两个队列实现栈
牛客网上有一道很nt的题目,用两个栈实现队列,你直接用队列不好吗?还耗内存,真的是脱裤子放屁,但是骂归骂,题目还是要做的。用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。我们可以用stack1进栈,stack2出栈。这样就可以让先进先出的顺序变成先进后出。如果stack2为空的话,stack1进栈元素进stack2 。stack2再出栈就可以了import java.util.Stack;public class Solution { Stack&l
2020-11-04 11:25:14
140
原创 手把手教你LRU算法思想,从底层开始写LRU实现
在手撕LRU算法之前,我们要先知道LRU算法是什么,思想是什么?所谓的LRU算法,就是Least Recently Used,就是最近最少使用算法。算法的思想就是,当我设置的LRU缓存容量为3的时候,在新加入一个容量之前,如果还有剩余容量,则直接加入,如果已经满了,则去掉最近最少使用的,也就是最远的那个。用队列来说,就是每次我新加入一个对象都是从队头插入的,如果容量充足,则直接加入;如果容量不够了,我就要把一个元素从队尾出队之后,我在将新的元素加入进去。这样就是一个LRU的基本思想。值得注意的是,如果我
2020-11-04 10:33:41
1019
原创 前缀表达式计算、中缀表达式计算、后缀表达式计算
首先要知道什么是前缀表达式,什么是中缀表达式,什么是后缀表达式所谓的中缀表达式就是类似于这种的运算1+((2+3)×4)-5所谓的前缀表达式就是符号在两个操作数的前面- + 1 × + 2 3 4 5所谓的后缀表达式就是两个数在运算符的右边3 4 + 5 × 6 -这样我们就知道了前中后缀表达式所代表的含义是什么,在我们人的脑子看来,这个是一个很简单的运算操作,但是你要把他放在电脑上面,中缀表达式我感觉是比较难的,因为你要考虑运算符的优先级,括号的情况等等,我们可以将其转换成为前缀表达...
2020-11-03 20:43:42
998
原创 简单介绍一下JMM
在讲Java内存模型的时候,我们先来了解一下CPU与硬盘的一个关系。我们都知道CPU是中央处理器,可以非常快速的计算,但是IO却是十分耗费时间的操作。你可以这样理解,我计算1+1可能只要1ms,但是我这个1要在硬盘里面读取的话就需要1s了,那么我这个操作就需要1s(近似)。那么实际上CPU使用情况仅仅使用了1ms,但是反馈给用户的结果却是1s。这是很离谱的操作。为了解决这种情况,计算机有一个高速缓存(Cache),我们先把文件里的1先读到缓存里面,在CPU要用的时候,直接往缓存里面拿数据,那么这样的效率
2020-10-24 21:49:19
598
原创 ThreadPoolExecutor主要参数?
ThreadPoolExecutor3 个最重要的参数:corePoolSize:核心线程数,线程数定义了最小可以同时运行的线程数量。 maximumPoolSize:线程池中允许存在的工作线程的最大数量 workQueue:当新任务来的时候会先判断当前运行的线程数量是否达到核心线程数,如果达到的话,任务就会被存放在队列中。ThreadPoolExecutor其他常见参数:keepAliveTime:线程池中的线程数量大于corePoolSize的时候,如果这时没有新的任务提交,核心...
2020-10-14 15:31:47
802
原创 建立三个线程,A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC
建立三个线程,A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC
2020-10-13 20:50:32
714
原创 x的平方根 && x的n次幂
文章目录1、x的平方根2、x的n次幂1、x的平方根x的平方根这里我们具体探究一下牛顿迭代法:首先我们都知道求a的平方根的公式为x=ax=\sqrt{a}x=a那么我们的平方函数就为(这里的a就是我们要开平方根的数字,我们这里以a=2为例子)f(x)=x2−af(x)=x^2-af(x)=x2−a我们来看这样一张图片假设我们的a为2,也就是求2的平方根。我们不妨大胆做一个假设,我们假设2的平方根的结果等于4(其实这个假设为多少并不重要,等会他会自己让结果收敛)我们来看一下这样一张图a和b
2020-10-11 23:21:43
1536
原创 【一看就懂的图解算法】数据结构与算法——排序算法
因为即将进入实习阶段,然后笔试算法题都是必考的,那么我就想把以前学的数据结构与算法复习一遍:## 快速排序## 冒泡排序## 简单选择排序## 选择排序## 插入排序归并排序希尔排序……...
2020-09-25 22:03:07
203
原创 【一看就懂的图解算法】希尔排序
希尔排序是基于插入排序的改良版本,我们来回顾一下插入排序是怎么样的一个过程:插入排序:从左往右依次选取一个元素,插入到最左边已经排序好的结果集里面。其实希尔排序也是这个原理,和插入排序不同的是,插入排序是在结果集里面依次遍历查找,而希尔排序使用了二分法查找,快速定位到需要插入的问题。...
2020-09-25 22:02:47
513
原创 【一看就懂的图解算法】插入排序
插入排序顾名思义就是将元素插入到他属于的位置上。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。算法思想:1.刚开始结果集只有一个元素2.获取要插入的元素,和结果集相对比,如果比第一个元素大,则...
2020-09-25 22:02:36
443
1
原创 【一看就懂的图解算法】选择排序
选择排序选择排序和冒泡排序时一样的思想,都是把最大的数字排到最后面,不同的是,冒泡排序是对比相邻元素交换,而选择排序是直接将最大的数字和最后一个数字交换。算法图解:如此类推;java代码:public void selectSort(int [[ nums){ int size = nums.length; for (int i=0;i<size-1...
2020-09-25 22:02:16
143
原创 【一看就懂的图解算法】简单选择排序
简单选择排序冒泡排序是将最大的元素往后面排,简单选择排序是将小的元素往前面排算法思想:1.将第一个元素和其余元素进行对比,如果第一个元素和其他元素相比,第一个元素大,则交换,一轮下来,最小的元素会在第一个2.将第二个元素和其余的元素对比,如果对比结果大,则交换3.重复算法图解:以此类推……Java代码:void simpleSort(int[] a){ int t...
2020-09-25 22:02:06
6674
原创 【一看就懂的图解算法】冒泡排序
冒泡排序冒泡排序就是把一个数组中最大的数字往数组的末端排序:算法思想:1.比较相邻的两个元素,如果第一个元素比第二个元素大,就交换2.对每一对相邻的元素都执行1操作,从开始第一对到最后一对(所以经过一轮之后,最大的数字会被安排到最末尾的位置放着)3.第一轮排序之后,因为最后一个数字是最大的,不论如何位置都不会改变的,那么我们就不管最后一个,排除第一个位置之后,我们执行1,2操作算法...
2020-09-25 22:01:54
178
原创 【一看就懂的图解算法】快速排序
快速排序使用了分治的思想算法步骤:1 从数列中挑出一个元素,称为 “基准”(pivot),2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。3 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。递归的最...
2020-09-25 22:01:42
331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人