开发小笔记
君君要上天
每天学习一点点,每天提升一点点。
展开
-
gradle替换国内源
去下载合适的gradle版本,可以替换成国内源。如果用gradle wrapper,会自动从。原创 2024-01-12 15:09:28 · 2451 阅读 · 0 评论 -
sealos一键部署K8S环境
sealos一键部署K8S环境原创 2022-06-12 10:05:56 · 2015 阅读 · 2 评论 -
统信服务器版k8s网络不通
这是一个比较坑的问题,使用iptables -nvL查看规则,发现chain forward的策略是drop,只要改成accept就ok了:sudo iptables -P FORWARD ACCEPT但机器重启后就恢复成drop了,因此需要执行以下步骤:sudo vim /etc/systemd/system/docker.service[Service]下加一行:ExecStartPost=/sbin/iptables -P FORWARD ACCEPT参考文档:https://blo原创 2022-05-05 11:00:53 · 803 阅读 · 0 评论 -
ansible密码转义
今天踩了一个坑,ansible密码中含有特殊字符的,需要加\进行转义才行。目前我知道的需要转义的字符有#和$。原创 2022-04-08 16:40:54 · 998 阅读 · 0 评论 -
shell read line保留空格
假设有一个yaml文件:groups: - name: xxxx rules:使用以下代码读取之后格式丢失:cat xxxx.yaml | while read linedo echo $linedone想要保留空格,只需要设置IFS=''即刻。完整代码如下:IFS=''cat xxxx.yaml | while read linedo echo $linedone...原创 2022-03-25 20:07:33 · 3633 阅读 · 0 评论 -
k8s部署nginx自动更新域名及解除后端依赖
问题在k8s中使用nginx作为后端接口反向代理,大概配置如下: location /api { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://api-server-svc:8原创 2022-03-04 14:01:22 · 8821 阅读 · 2 评论 -
alpine镜像跑go报standard_init_linux.go:211: exec user process caused no such file or directory
参考:https://blog.csdn.net/u013235478/article/details/105852353解决build时加参数-tags netgo:go build -tags netgo xxxxx原创 2022-02-24 17:32:57 · 783 阅读 · 0 评论 -
zsh 在 git 目录下变得卡顿的问题
问题有个两三G的git工程,cd进入目录都非常卡顿,执行ls等命令也是。原因是zsh自动执行git status获取一些git的信息解决关闭检查:git config --add oh-my-zsh.hide-dirty 1如果要开启:git config --add oh-my-zsh.hide-dirty 0...原创 2022-01-25 10:07:36 · 1345 阅读 · 0 评论 -
解决antd表单中上传组件传值问题
问题在使用antd的表单时,如果表单中有Upload组件,那么在提交表单时,该字段的值是一个File数组,大致如下图所示:希望它传的是图片id解决方法在提交表单时,需要对该字段做一个转换。比如我上传图片时服务端返回的response是:{ "image": "/path/to/image"}那么提交表单时需要做如下转换:// 表单验证通过时formRef.current?.validateFieldsReturnFormatValue?.().then((values) =>原创 2021-12-05 10:52:04 · 1663 阅读 · 0 评论 -
解决m1芯片打的docker镜像无法在x86架构linux下执行的问题
最近刚入手了m1 pro芯片的mbp,打了一个docker镜像,传到linux下运行时出错了,后来排查到是cpu架构差异的问题解决方案是使用docker buildx 来指定平台示例如下:docker buildx build -t imageName --platform=linux/amd64 .值得一提的是,buildx这玩意儿是在docker版本19.03之后才有。如果是旧版本,可以手动安装buildx插件参考:https://cloud.tencent.com/developer/a原创 2021-11-24 13:10:22 · 6332 阅读 · 0 评论 -
IDEA JVM class文件查看插件
jclasslib Bytecode Viewer,安装好后,选中一个类文件,点击view->show bytecode with jclasslib 即可查看class文件信息如果发现提示class root not found,只需要执行一下main方法,让代码编译一下即可。原创 2021-11-18 09:56:39 · 906 阅读 · 0 评论 -
使用nvm管理node版本
使用brew安装nvm:brew install nvm按照提示修改配置:常用命令nvm install stable 安装最新稳定版 nodenvm install <version> 安装指定版本,如:安装v4.4.0,nvm install v4.4.0nvm uninstall <version> 删除已安装的指定版本,语法与install类似nvm use <version> 切换使用指定的版本nodenvm ls 列出所有安装的版原创 2021-06-29 15:58:39 · 255 阅读 · 0 评论 -
Spring读取resources目录下的文件
试了很多种方法,很多方法都是在IDE运行时可以读到,打成jar包就读不到了。最后,完美解决方案:import org.springframework.core.io.ClassPathResource;InputStream is = new ClassPathResource("data.json").getInputStream();...原创 2021-03-30 13:56:46 · 269 阅读 · 0 评论 -
IDEA插件GenProtobuf编译proto文件
安装protocprotoc是proto编译器,从这里下载:https://github.com/protocolbuffers/protobuf/releases/我使用的是mac系统,安装方法如下:tar zxvf protobuf-all-xxx.tar.gzcd protobuf-all-xxx.tar.gz./configuremakemake checkmake install#查看是否安装成功protoc --version#如果出现libprotoc 2.4.1或者l原创 2021-03-09 14:40:01 · 3809 阅读 · 1 评论 -
macOS Chrome无法访问自签名https页面问题的解决办法
问题描述:macOS Chrome无法访问自签名https页面,以往版本可以选择跳过,继续访问,但是新版本Chrome不允许继续,并显示ERR_CERT_INVALID;解决办法:在Chrome该页面上,直接键盘敲入这11个字符:thisisunsafe;注意不是地址栏,而是页面内直接盲打。...转载 2021-03-03 10:13:21 · 1876 阅读 · 0 评论 -
mac修改idea jvm参数
方法一:在idea界面点击help->Edit Custom VM Options方法二:很多帖子都说修改/Applications/IntelliJ\ IDEA.app/Contents/bin/idea.vmoptions,亲测不管用。需要修改:~/Library/Application\ Support/JetBrains/IntelliJIdea2020.1/idea.vmoptions...原创 2021-01-29 10:01:38 · 1313 阅读 · 0 评论 -
kvm GPU透传进虚拟机
最近给服务器装了kvm虚拟机,服务器上有多张显卡,想透传给虚拟机使用我的环境是ubuntu16.01IOMMUdmesg | grep -i -e DMAR -e IOMMU发现缺少IOMMU:[ 0.000000] ACPI: DMAR 0x000000003B7C7000 000100 (v01 INSYDE HSW-LPT 00000001 ACPI 00040000)[ 0.072640] DMAR: Host address width 46[ 0.072642原创 2020-08-08 16:29:10 · 2867 阅读 · 0 评论 -
ubuntu16.04安装kvm虚拟机
之前一直用vmware workstation,但这玩意儿收费,且无法透传GPU,最终改用KVM。安装sudo apt install qemu-kvm qemu virt-manager libvirt-bin bridge-utils 网桥配置如果用nat模式,那就不需要配置网桥了。sudo vim /etc/NetworkManager/NetworkManager.confmanaged=false改为managed=true修改网卡配置:sudo vim /etc/networ原创 2020-08-08 13:57:59 · 934 阅读 · 0 评论 -
vmware克隆虚拟机提示The specified virtual disk needs repair
这是由于vmware没有正常关闭导致的,使用vmware-vdiskmanager工具修复一下vmdk即可。vmware-vdiskmanager在装了vm后就自带的了,我的系统是ubuntu,因此使用如下命令修复:sudo vmware-vdiskmanager -R /xxxx/xxxx-disk1-cl1.vmdk/xxxx/xxxx-disk1-cl1.vmdk替换成你要clone的虚拟机的vmdk在window下也是一样的方法修复,vmware-vdiskmanager换成vmware.原创 2020-08-01 15:34:33 · 1814 阅读 · 0 评论 -
ubuntu下使用Telepresence本地开发调试k8s微服务
安装kubectl参考官方文档:https://kubernetes.io/zh/docs/tasks/tools/install-kubectl/我本地环境是ubuntu,使用apt方式安装:sudo apt-get update && sudo apt-get install -y apt-transport-httpscurl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add原创 2020-07-29 19:23:31 · 1828 阅读 · 0 评论 -
五分钟了解什么是零拷贝
系统调用了解零拷贝之前,你需要先了解什么是系统调用。以下以linux为例。在linux中,系统分为内核空间和用户空间,我们所运行的JAVA等应用程序是运行在用户空间的,而用户空间是无法直接操作硬盘,网卡等硬件设备的。因此需要通过系统调用来让内核帮我们读写硬件上的数据。而所谓的系统调用,其实就是内核给我们提供的一些方法,例如read方法,你可以在linux中使用man 2 read 看到该方法的声明:读一个文件时发生了什么当我们用户空间的应用要读一个硬盘上的文件时,将发生以下步骤:用户空间发原创 2020-07-19 16:10:39 · 648 阅读 · 0 评论 -
基于Redis实现查找附近的人
之前分享过一篇《使用geohash实现查找附近的人》,其实redis在3.2版本之后也提供了地理位置的能力。geoadd命令该命令是添加地理位置信息,基本格式是:基于Redis实现查找附近的人key:键名longitude:经度latitude:纬度member:该位置名字举个例子,我现在要添加福州的软件园的地理位置。首先我通过某歌地图搜索到软件园,右键地点,点击“这儿有什么”,就会弹出经纬度小卡片,如图:基于Redis实现查找附近的人redis中执行,如图:基于Redis实现查找附原创 2020-05-11 17:28:54 · 1027 阅读 · 0 评论 -
IDEA中代码无故报红解决方法
方法一:maven reimport方法二:file->invalidate caches /restart方法三:gradle项目,把build.gradle依赖项任意一项删掉再恢复,让gradle重新导入方法四:删除.idea,重新建立工程...原创 2020-02-25 10:06:29 · 18449 阅读 · 1 评论 -
解决IDEA gradle项目执行main方法时自动运行gradle task问题
使用IDEA创建gradle项目后,执行main方法时会自动运行gradle的一些build task,导致启动很慢,如下图:解决方法:打开设置页面,进行如下修改:原创 2019-12-03 17:49:41 · 9480 阅读 · 4 评论 -
Linux将大文件打包后拆分成小文件,再合并解压
拆分成小文件假设要拆分的大文件是abc.tar(70G),拆成每个7Gcat abc.tar | split -b 7G - ./pathto/abc.tar.gz.执行成功后结果如下:-rw-rw-r-- 1 yituadmin yituadmin 7516192768 Dec 3 09:55 abc.tar.gz.aa-rw-rw-r-- 1 yituadmin yituadmi...原创 2019-12-03 10:48:57 · 1957 阅读 · 0 评论 -
使用HandlerMethodArgumentResolver实现Controller注入当前用户信息
实现 HandlerMethodArgumentResolver 接口@Componentpublic class CurrentUserArgumentResolver implements HandlerMethodArgumentResolver { @Override public boolean supportsParameter(MethodParameter p...原创 2019-12-02 19:14:02 · 604 阅读 · 0 评论 -
IDEA 2019 不支持lombok插件问题解决方案
IDEA升级到2019.1版本,发现lombok插件提示不兼容。解决方法:用压缩工具打开用户目录下 .IdeaC2019.1->config->plugins->lombok-plugin/lib/lombok-plugin-xxxx.jar ,编辑META-INF/plugin.xml 文件第6行,将idea-version改成你当前idea版本号:查看IDEA版本号方...原创 2019-04-11 14:42:34 · 27256 阅读 · 5 评论 -
什么是zookeeper?
感谢 https://my.oschina.net/u/3777556/blog/3037221前言只有光头才能变强。一、什么是ZooKeeper从上面我们也可以发现,好像哪都有ZooKeeper的身影,那什么是ZooKeeper呢?我们先去官网看看介绍:官网还有另一段话:ZooKeeper: A Distributed Coordination Service for Dis...转载 2019-04-16 13:35:40 · 552 阅读 · 0 评论 -
crypto-js进行AES加解密
最近做react项目用到AES加解密,使用到了crypto-js这个库,但在网上找了不少相关帖子,花样百出,没几个是对的。折腾了很久才搞定,在此记录一下。const CryptoJS = require("crypto-js");//aes加密export function aesEncrypt(data, secretKey) { const result = CryptoJS.AES...原创 2019-06-13 14:02:00 · 5049 阅读 · 1 评论 -
AOP切面导致获取不到注解
在spring中可以使用 class.isAnnotationPresent 或者 class.getAnnotation 获取类的注解,但是使用AOP代理了这个类后你会发现获取不到注解了。解决方法:使用工具方法获取:AnnotationUtils.findAnnotation...原创 2019-08-08 17:13:43 · 2465 阅读 · 0 评论 -
密码正则判断,有字母、数字、符号最少两种组合
验证密码,至少为字母、数字、符号两种组成,不包含空格,不能输入中文re.match(r'(?!^\d+$)(?!^[A-Za-z]+$)(?!^[^A-Za-z0-9]+$)(?!^.*[\u4E00-\u9FA5].*$)^\S{6,20}$', password)或re.match(r'((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]))(...转载 2019-08-22 10:04:32 · 6348 阅读 · 1 评论 -
由于DOCKER默认虚拟网卡IP地址段导致的网络访问异常问题
在我们使用的阿里云MongoDB服务时,因为阿里提供给我们的连接地址都是域名形式,在服务器上解析成ip地址为 172.17.x.x ,我们在使用的过程中一直没有任何问题。然而就在有一天,someone在生产服务器上装上了docker并且启动了,于是docker自己创建了虚拟网卡docker0,IP为172.17.0.1,这就出现问题了,用户不断报告服务访问异常,经过我们自己复现异常确实存在,于...转载 2019-09-11 17:45:04 · 4837 阅读 · 0 评论 -
PHP的bc数学函数计算精度的坑
PHP中的bc函数用于数学计算,主要有以下方法:但是实际使用的时候发现如下问题:$a = bcsub(59.9,58);echo $a;这段代码我们期望得到的值是1.9,但是实际多次运行结果有时候是1,有时候是1.9(大多数情况都是1),本人一脸懵逼。虽然不知道什么原因导致多次结果不同,但是很显然是计算精度问题。有两种方式解决:1.计算时指定精度$a = bcsu...原创 2018-05-03 12:00:38 · 2916 阅读 · 0 评论 -
Unable to make the module: related gradle configuration was not found. Please, re-import the Gradle
原文地址:https://www.cnblogs.com/zhangchiblog/p/8117241.html到stack overflow找到的答案,老外还是专业I also had a similar problem, Go to : View -> Tool Windows -> Gradle.Then press in Refresh Icon...转载 2019-01-29 10:11:00 · 3396 阅读 · 0 评论 -
Ubuntu wine 安装qq,微信
安装deepin-wine下载或git clone : https://github.com/wszqkzqk/deepin-wine-ubuntu,进入该目录,执行 sudo sh ./install.sh安装deb包下载deb包:QQ:http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.qq.im/TIM:http:...原创 2019-01-18 11:39:00 · 5499 阅读 · 1 评论 -
Rsync文件同步
Rsync是Linux下的数据同步工具,常用于数据备份,代码发布等场景。Rsync安装Rsync分为服务端和客户端,两端的安装方式完全一样。我们使用源码安装wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gztar -zxvf rsync-3.1.2.tar.gzcd rsync-3.1.2./configure --pref原创 2017-04-26 20:32:46 · 514 阅读 · 0 评论 -
Jquery无限滚动加载插件
$(document).endlessScroll({ fireOnce: false, fireDelay: false, loader: "<div class="loading"><div>", callback: function(p){ alert("test"); }});插件地址:http://www.jq22.com/jque原创 2017-04-26 20:21:32 · 5295 阅读 · 0 评论 -
解决phpstorm编辑html卡顿问题
编辑phpstorm.vmoptions加入以下两行代码-Dawt.usesystemAAFontSettings=lcd -Dawt.java2d.opengl=true原创 2017-04-26 20:15:35 · 3100 阅读 · 0 评论 -
mac禁SIP
有时候我们需要对一些重要目录进行操作,例如安装php扩展时,需要/usr/lib/extensions的权限,但是mac电脑禁止我们操作。即便是使用root权限也不行这时候需要禁用SIP: 1. 重启系统 2. 安装Command + R 3. 菜单“实用工具”,“终端”,输入csrutil disable 4. 重启系统如果要恢复SIP,使用csrutil enable原创 2016-10-25 21:14:01 · 452 阅读 · 0 评论 -
jquery实现表格字段统计功能
在使用html的table时,经常会需要统计某个字段,下面分享一个本人封装好的方法,快速实现统计功能主要使用方法是:在要统计的字段的th中加上class="get-sum"即可 注意:table中有无thead和tbody,autoSum略有不同。下面给出了两种方法,分别支持有thead和tbody或没有。效果如下:有thead和tbody<html><head></head><body原创 2016-11-03 16:07:55 · 2745 阅读 · 1 评论