- 博客(149)
- 收藏
- 关注
原创 ElementU表格组件Table高度自适应
如果你在构建管理后台,菜单栏横向摆放到整个View的顶部,下方是搜索框一些组件,然后最下面是表格来呈现数据,那么,当缩放浏览器窗口的时候,需要实现表格组件Table的高度自适应。你可以通过如下方法实现:setTimeout(() => { this.customTableHeight = window.innerHeight - this.$refs.table.$el.of...
2020-10-01 22:54:39
989
原创 Vue中使用axios调用后端接口的坑
问题场景:Vue.js工程中使用axios调用后端接口(SpringBoot构建)出现后端接口无法获得数据的情况,因此总结了如下场景:@RequestParam用来处理application/x-www-form-urlencoded编码(HTTP协议请求头中不指定Content-Type默认就是application/x-www-form-urlencoded)。@RequestParam...
2020-09-28 03:17:50
2612
原创 使用Go基于WebSocket构建千万级视频直播弹幕系统
(1)业务复杂度介绍开门见山,假设一个直播间同时500W人在线,那么1秒钟1000条弹幕,那么弹幕系统的推送频率就是:500W * 1000条/秒=50亿条/秒,想想B站2019跨年晚会那次弹幕系统得是多么的NB,况且一个大型网站不可能只有一个直播间!使用Go做WebSocket开发无非就是三种情况:使用Go原生自带的库,也就是golang.org/x/net,但是这个官方库真是出了奇B...
2020-07-06 17:26:14
1806
原创 打造超级舒适的Go开发环境之VIM配置
最近博主已经从VIM迁移到了EMACS作为主要生产工具,目的是为了学习Lisp和体验EMACS操作系统之美,哈哈,不要被我弄的技术焦虑,没错,我就是换了个吃饭的盘子。写下这篇博客也是为了纪念我顺利的“从VIM毕业了”。在阅读本文之前,你需要:准备一个UNIX like的操作系统一个可以跨过山和大海的代-理话不多说,开始吧~(1)下载必要的Go工具链go get -v github....
2020-07-05 01:09:06
2123
原创 细说MongoDB
这篇文章很长,也很复杂,不要打开就关掉,收藏了等于会,耐下心来,认真阅读!一、概述(1)版本历程0.x 起步节点1.x 支持复制集和分片2.x 更加丰富的数据库功能3.x 合并了一家专门做数据库引擎的Wired Tiger公司,更加完善的周边生态环境4.x 支持分布式事务MongoDB的正式版本都是偶数版本,x.x.x,主要版本(x.x)大约每年升级一次,小版本主要是修复问...
2020-06-07 17:39:40
685
原创 Shell 实现计算器
话不多说,上代码:#!/bin/env sh# Author: BlueMiaomiao# E-mail: xv2017@outlook.com# GitHub: bluemiaomiao.github.io# Desc : Simple Computer DesignFIR_NUM=`echo $1 | awk -F '+|-|*|/' '{print $1}'`SEC_NU...
2020-05-25 20:25:52
948
原创 解决VSCode添加Go工具链下载慢的问题
建议收藏,以备不时之需~首先安装Go的扩展直接搜索Go点击第一个安装即可,它是微软官方发布的Go支持模块。这个模块依赖于一些开源工具,在这里有介绍:https://github.com/Microsoft/vscode-go/wiki/Go-tools-that-the-Go-extension-depends-on学习Golang之前,最好是有一个国外的代理,即使golang.org/x/ ...
2020-04-24 16:07:08
929
原创 ElasticSearch请求锁住内存失败
具体错误信息:[2020-04-18T21:40:31,571][ERROR][o.e.b.Bootstrap ] [node-1] node validation exception[1] bootstrap checks failed[1]: memory locking requested for elasticsearch process but memory is...
2020-04-18 22:29:46
1707
原创 Win7安装VisualStdio2015提示组件包损坏解决办法
最近编译Electron项目,由于用到了JavaScript调用原生C++能力,在Windows7 SP1上需要安装Visual Studio2015,遇到了总是提示组件包丢失或者损坏的提示。解决办法如下:(1)开始-运行-MMC(2)文件-添加/删除管理单元(3)证书-计算机账户(4)证书-受信任的根证书颁发架构-证书(5)右键菜单-所有任务-导入(6)选择证书:2010和2011的根证书导...
2020-04-05 08:36:08
1159
原创 一些关于KVM和VMware虚拟化原理的总结
感慨一下:VMware的官方文档详细到感人,足以见得VMware公司对技术的尊重!一、KVM(1)概述KVM 全称是基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个Hypervisor。(1)它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购。(2)它支持 x...
2020-04-03 02:32:52
3758
原创 Kubernetes从小白到CKA系列
本文大部分是原理,后期打算开个专栏,咱也玩玩知识付费~一、发展史在云计算领域有几个很常见的词汇:IaaS、PaaS、SaaS。IaaS就是基础平台即服务,国内有阿里云等;PaaS是平台即服务,在早些时候新浪云SAE较为有名;SaaS就是软件即服务,最大的Office厂商MS的Office365就是一个很好的代表。在最开始的时候PaaS基本就是人肉运维,慢慢的又出现了一系列的自动化工具,再后来专...
2020-04-03 02:25:22
578
原创 总结Docker的存储和网络相关
一、Docker概述LXC所实现的隔离性主要是来自kernel的namespace, 其中pid, net, ipc, mnt, uts 等namespace将container的进程, 网络, 消息, 文件系统和hostname 隔离开。cgroups 实现了对资源的配额和度量。 cgroups 的使用非常简单,提供类似文件的接口,在 /cgroup目录下新建一个文件夹即可新建一个grou...
2020-04-03 02:15:32
509
原创 大话Chrome浏览器原理
一、一个页面为什么4个进程?(1)主要原因进程中的任何一个线程崩溃都会导致整个进程崩溃。线程之间的数据时共享的,多页面使用多线程有安全性问题。当一个进程关闭后资源的回收时候操作系统控制的,不易出现内存泄漏。插件的崩溃会导致Chrome的不稳定。所有模块都在一个进程导致Chrome不流畅。(2)目前Chrome的进程架构浏览器进程:主要负责用户界面显示、交互、子进程管理、存储。...
2020-04-03 02:12:22
561
原创 一文详细讲解一致性常见算法Paxos、Raft、Zab
一、一致性模型现阶段工业上有两种一致性模型:弱一致性和强一致性。弱一致性中最主要的是最终一致性,对于最终一致性最好的体现是DNS和Gossip通信协议。强一致性主要有:同步(主从同步)、Paxos、Raft、Zab、多数派机制。二、PaxosPaxos共识机制有多个版本,常见的有Basic、Multi、Fast。(1)Basic Paxos系统角色如下:Client:系统外部角色,请...
2020-04-03 02:07:46
1505
原创 手写Spring AOP实现
一、概述Spring的最根本的使命就是简化开发。体现在:基于POJO的轻量级和最小侵入性编程,通过DI和面向接口实现松耦合,基于切面和惯性声明式编程,通过切面和模板减少样板代码。Spring是面向Bean进行编程的,Spring提供了IOC容器通过配置文件或者注解的方式来管理对象之间关系。Spring的注入方式:Setter、构造方法、强制赋值。控制反转的两种方式是依赖注入和依赖查找,最早...
2020-04-03 02:04:29
513
原创 Ansible自动化运维工具
一、概述Ansible是2013年推出的通用自动化工具,可用于配置管理和流程管理。Ansible使用Python编写,它使用SSH在不同的机器上执行命令,Ansible是无代理的,使用声明式YAML编写Playbook。(1)其他开源项目Ansible Galaxy:用于查找、共享使用Ansible Role的在线社区Ansible Container:实现了构建、部署、管理容器应用的全...
2020-04-03 02:01:54
351
原创 和我一起学习Redis
一、数据类型(1)简单动态字符串分为三个部分:length,长度free,剩余空间buf,字符数组,用来保存真正的字符串SDS与C字符串的区别:获取字符串长度,SDS是O(n)级别的。C获取字符串长度需要遍历。SDS有效杜绝了缓冲区溢出问题,C在拷贝字符串的时候默认空间够用,不自动检测空间大小。SDS降低了内存重新分配次数,体现在空间预分配和惰性释放上。SDS是二进制安全...
2020-04-03 01:59:14
278
原创 MySQL高手进阶指南
一、后台线程(1)Master Thread负责刷新内存池中的数据,保证缓冲池中的内存缓存是最近的数据。该线程具备最高的优先级,会根据数据库的运行状态在loop、background loop、flush loop、suspend loop之间切换。loop的主要是进行每秒钟的日志buffer刷盘,合并插入buffer,刷新脏页等,以及每十秒钟进行一次删除无用的undo页。backgro...
2020-04-03 01:56:08
1019
原创 大话LVS负载均衡
LVS是Linux Virtual Server的简称,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,实现了四层交换。LVS的工作模式有:NAT模式,TUN模式,DR模式,FULL-NAT模式,ENAT模式。其他基于四层实现负载均衡的还有HAProxy和Nginx。(1)常见的术语CIP:C...
2020-04-03 01:48:51
158
原创 计算机网络超级详细的总结(2)
一、概述网络协议三要素:语义、语法、顺序。DHCP运行机制:Client使用0.0.0.0 向 255.255.255.255发送UDP请求(原先是BOOTP请求,UDP是更高级的封装),当DHCP服务器捕获到请求之后回复ACK表示成功接收请求。PXE协议解析过程:服务器启动的时候BIOS或者UEFI加载烧写在网卡ROM中的PXE程序,然后去DHCP服务器请求一个IP地址和一个pxelin...
2020-04-03 01:45:37
4040
原创 计算机网络超级详细的总结(1)
一、概述(1)常用概念处理时延:用于检查分组的头部信息决定将这个分组转发到何处所耗费的时间。排队时延:分组在链路上等待传输的时间。传输时延、存储转发时延:分组长度/链路速率,表示将分组推送到链路上所需要的时延。传播时延:两个路由器之间的数据传输的耗时,距离/传播速度。流量强度:分组到达队列的平均速度 * 分组长度 / 传播速度,设计系统时流量强度不应该超过1。丢包:在实际应用中,流...
2020-04-03 01:34:48
1703
原创 大话Electron应用自动更新
一、Windows下更新特有的问题软件更新在Linux和macOS还好说,但是在Windows上可能会遇到UAC问题,常用的方法是:Windows计划任务、Windows Service,本质上这两种方式还是提权,Windows Service 与 Windows计划任务相比最大的特点就是可以与应用交互,Windows的更新就是使用Windows Update服务,即使在macOS的Edge浏...
2020-04-01 20:50:15
1736
原创 解决Java POI导出海量Excel数据内存溢出
使用POI导出Excel数据的时候有两个方法可以创建WorkBook:HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xlsXSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx当数据量超出65536条后,在使用HSSFWorkbook或XSSFWorkbook,程序会报OutOfMemoryError:Javaheap sp...
2020-04-01 17:44:50
4173
原创 配置Spring项目输出JSON到LogStash或者使用FileBeat收集上传到ELK
一、使用LogStash在项目中添加Gradle依赖,然后Sync项目:"net.logstash.logback:logstash-logback-encoder:4.11",或者使用Maven:<!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->&...
2020-04-01 17:27:58
628
原创 RabbitMQ MQTT插件源码级性能优化
最近在搞物联网平台,海量级别的消息Push导致MQ处理速度下降,对MQ进行单队列性能压测,结果很不如意啊!下游设备是通过NB模块和ESP进行双链路数据采集,由于场景就是抄表,但是下游设备太多,老板也没给多少银子买云服务,所以只能自己研究一波儿了~抄表也就意味着单Topic,进行测试的时候单个Topic消费端TPS到1.7w/s,大量的消息处于unconfirmed未确认状态,达到了TPS上限,然...
2020-03-05 19:36:18
1037
原创 MongoDB高手进阶指南
一、概述(1)版本历程0.x 起步节点1.x 支持复制集和分片2.x 更加丰富的数据库功能3.x 合并了一家专门做数据库引擎的Wired Tiger公司,更加完善的周边生态环境4.x 支持分布式事务MongoDB的正式版本都是偶数版本,x.x.x,主要版本(x.x)大约每年升级一次,小版本主要是修复问题,通常1-2个月发布一次。MongoDB支持原生高可用:Applica...
2020-02-26 11:17:50
1516
原创 DISM部署Windows系统
```bashdiskpartlist diskselect disk 0clean convert gptcreate partition efi size=300format quick fs=fat32 label="System" assign letter="S" create partition msr size=128 create partition prima...
2020-02-21 19:00:27
487
原创 项目已被 macOS 使用,不能打开
创建脚本/usr/local/bin/fix-xattr,内容如下:#!/bin/bashfor i in ./*do xattr -d com.apple.FinderInfo "$i" && echo "正在处理: $i"done添加可执行权限:chmod +x /usr/local/bin/fix-xattr然后通过终端进入无法打开的文件所在的目录,执行...
2020-01-29 06:02:44
3147
1
原创 Mac启动台显示白色问号图标
遇到了问题,Mac启动台中显示一个白色图标,然后上边有个灰色问号。尝试重装这个App再删除未果,然后进行了一下操作就好了:defaults write com.apple.dock ResetLaunchPad -bool TRUEkillall Dock这两个命令是是重置Mac启动台,并且重启桌面。...
2020-01-28 16:34:17
10719
6
原创 Electron 7.1.10 迷之安装失败
最近遇到一个问题。那就是macOS插上NTFS格式的移动硬盘无法读写,然后发现有的文件系统提示被macOS占用无法打开,每次要执行命令手动挂载...然后对于懒癌的我是无法接受的,因此萌生了用Electron开发一个小工具,由于之前用的electron-vuw,内置的是Electron 2.x的版本,不支持macOS黑暗模式,准备尝试使用Electron 7.x,发现是各种安装不上了啊!!>...
2020-01-26 21:09:36
1883
原创 macOS用iTerm2打造超高B格终端
一、什么是iTerm2?iTerm2是Terminal的替代品,是iTerm的后继产品。它适用于MacOS 10.12或更高版本的Mac。iTerm2将终端带入了您从未想过一直想要的功能,使其进入了现代时代。二、最终美化结果三、美化步骤(1)General(1.1)Startup(1.2)Closing(1.3)Magic(1.4)Services(1.5)Select...
2020-01-25 20:13:30
627
原创 Vue项目使用Webpack打包体积优化
使用Vue开发的项目在用Webpack打包之后vender和app这两个js文件可能很大,而且有很多的map文件,其体积也不小,那么如何优化打包后体积呢?引入CDN在webpack.base.conf.js文件中添加打包排除项:externals: { 'vue': 'Vue', 'echarts': 'echarts', 'axios': 'axios', ...
2020-01-19 18:44:57
490
原创 NPM全局安装依赖权限报错Error: EACCES: permission denied
最近在安装electron-forge的时候报错如下:➜ ~ sudo npm install -g electron-forgenpm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues....
2020-01-07 10:39:12
4825
原创 如何在使用Vue的情况下实现Electron打开文件保存对话框?
一、问题场景最近是在使用Electron+Vue构建一个基于modbus rtu协议的上位机应用,使用ipcMain和ipcRenderer实现点击Vue组件后打开对话框,获取到文件路径并写入数据,完成后通知。但是出现ipcRenderer.on() 调用多次的错误情况。那么,使用Electron+Vue实现文件保存的正确姿势是什么呢?二、具体实现在electron的src/main/in...
2019-12-03 20:55:56
2334
1
原创 DIV完美等分的CSS样式实现
一、问题场景传统使用width属性配合float总是最右边出现间隙,需要实现任意个DIV的完美等分,包括横向和纵向二、实现父元素样式/*盒模型*/display: -webkit-box;display: -moz-box;display: box;/*横向or纵向*/-webkit-box-orient: horizontal; /* 垂直是vertical */-m...
2019-12-02 21:06:42
647
原创 FastDFS的HA架构多Group多Storage多Tracker结合SpringBoot
FastDFS前奏在开始之前,这篇文章并不是初级入门的文章,在该文章发布之前已经有两篇文章讲述了FastDFS和SpringBoot相关的知识,请参阅:《Java高级架构之FastDFS分布式文件集群》:https://blog.51cto.com/xvjunjie/2377669《SpringBoot集成FastDFS+Nginx整合基于Token的防盗链》:https://blog...
2019-10-27 11:46:03
2410
原创 Vue、SprinBoot开发运维的一些坑和知识集锦
一、完美解决Vue2.0+Axios开发生产环境跨域问题由于博主主要是做后端开发和自动化运维的,因此,前端基本面向同学和搜索引擎编程...这次彻底搞出了一个简洁优雅的Vue和Axios配合的跨域方案,适合开发环境和生产环境!(1)在config/index.js中配置开发环境跨域proxyTable: { '/api': { target: 'https://21...
2019-10-09 21:25:04
209
原创 Redis如何实现高并发分布式锁?
众所周知,分布式锁在微服务架构中是重头戏,尤其是在互联网公司,基本上企业内部都会有自己的一套分布式锁开发框架。本文主要介绍使用Redis如何构建高并发分布式锁。假设 存在一个SpringBoot的控制器,其扣减库存的业务逻辑如下:@Autowiredprivate StringRedisTemplate stringRedisTemplate;@RequestMapping(valu...
2019-08-11 19:17:24
456
原创 使用Gitee和Hexo创建自己的博客
一、安装Git与Node(一) 安装Git在Windows下安装Git: 在Windows上安装Git较为简单,因此不过多叙述。在Linux下安装Git:使用Linux包管理工具进行安装,例如Yum,sudo yum install git。在Mac下安装Git:Git在Mac下既可以通过GUI的方式来安装也可以通过Command的方式来安装,使用Homebrew进行安装...
2019-07-28 00:37:32
350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人