- 博客(40)
- 收藏
- 关注
原创 重新学习基础: 用C++写了一遍快速排序
/* * 316-quicksort.cpp * * Created on: 2020年5月28日 * Author: panzhengji */#include<string>#include<iostream>using std::cout;using std::endl;void swap(int p_int[], int first , int end){ int tmp = p_int[end]; p_int[end] = p.
2020-05-29 17:10:04 272
原创 关于Git版本回退
最近公司使用了git,之前都使用的是svn,git玩得不是很溜,现在重新学习一下。 今天主要探讨的是回退,因为最近我们分支上有人做了回退操作,我这边pull拉取,发现出了问题,部分文件没有跟着远端版本回退,纳闷了很久,最后通过 执行 git reset <回退版本> 后,重新 commit 解决了。 参考了这些资料,写得还是蛮不错的:先看原理: 三种 rese...
2020-03-31 15:42:17 398 1
转载 更新linux内核及其组件
Docker对Linux内核版本的最低要求是3.10。目前Linux内核已经发布到 5.4,为了更好使用docker和k8s,需要对公司相关CentOS 7内核进行升级。下载公钥# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org安装elrepo reporpm -Uvh http://www.elrepo.o...
2020-01-08 14:24:57 549 1
原创 K8s Namespace无法删除解决办法、思路、原理
情况:Kubectl delete ns XXXX 后, namespace 一直处于 Terminating 状态。使用:kubectl delete ns monitoring --grace-period=0 –force后,也无法删除。原因分析:删除时,报错:warning: Immediate deletion does not wait for con...
2019-12-20 15:45:27 9361 2
转载 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
错误信息:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)出现问题原因:有可能是 my.cnf 配置文件中设置了 [mysqld] 的参数 socket ,而没有设置[client]的参数socketmysql.sock 文件有什么用:mysq...
2019-11-28 14:18:22 487
原创 redis连接偶尔会重置(Mark一个问题,还未彻底解决)
客户端在连接redis推送一次数据成功后,第二次使用相同tcp端口推送时,会发送RST重置。redis中有参数可以设置,避免这种现象吗?第一次正常推送数据:第二次推送数据reset:个人推测是因为 redis 的超时时间与服务器的超时时间不一致导致:服务器tcp超时时间,通过该命令查看为 60 ssysctl -a | grep net.ipv4.tcp_fin_t...
2019-11-27 13:52:10 1747
原创 生产环境k8s偶发超时问题排查及解决
前言: 凡是有明确报错的问题,都是能很快解决的,真正难以解决和排查的,是偶发且笼统报错的问题。 这里记录整个解决的过程,期间有走过弯路,有思维局限,但庆幸最终找到了原因,正常把我们系统上线到 k8s 平台了。问题表现: 生产某套应用访问时,偶尔会报 timed out 。相同的配置在 开发、测试、预生产都能正常运行。排查思路: 1、 首先,因为这个问题是偶发性的...
2019-11-25 15:07:16 10789
原创 封装一个带有tcpdump工具的镜像,在容器中使用tcp抓包
之前的一篇文章:https://blog.csdn.net/Jerry_Pan1990/article/details/102940349也写过这个功能,但是当时因为刚刚接触,因此走了一点弯路,所以在这里再水一篇。之前的文章中,使用的是源码包进行安装,所以两种安装方式在这里都进行一下介绍:方法一(推荐): 使用 apt-get 进行安装(我们的tomcat、nginx等基础镜像都是基于u...
2019-11-25 11:18:43 1448 2
原创 修复由于docker、k8s的引擎不一致导致的报错: 调整为cgroups
k8s版本:1.15docker版本:18.09.7报错信息: W0701 15:05:59.697391 9931 watcher.go:87] Error while processing event ("/sys/fs/cgroup/devices/libcontainer_34389_systemd_test_default.slice": 0x40000100 == ...
2019-11-25 10:35:05 3549
原创 K8s节点重置、加入集群
由于物理机迁移、网络环境发生变更,可能导致集群结构的破坏。1、 确认集群中是否还存在该节点:Kubectl get nodes2、 确认网络环境是否通畅:可以通过 ping 该物理机IP3、 确认物理机是否正常:是否可以登录登录后查看kubelet是否正常启动: systemctl status kubelet查看内存情况: free –h查看磁盘情况: ...
2019-11-25 10:02:07 2012
原创 k8s环境物理机切换DNS后不能立即生效问题解决
今天公司DNS服务器进行地址切换,出现物理机可以解析域名,但是k8s容器内部无法解析相应域名,应用报错: 由于k8s内部的域名解析都是通过coredns进行的,所以使用 describe查看了一下 coredns,发现coredns通过 configmap 挂载了物理机上的 /etc/resolv.conf 解决办法: 重启k8s的 coredns:kube...
2019-11-15 15:34:27 706
转载 kubernetes之network policy
Network policy:设置pod进出网络的策略,k8s本身并不支持,主要靠以下网络插件来支持。calico Romana Weavenetwork policy 策略模型apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: name: test-network-policy namespace:...
2019-11-12 11:00:04 378 2
原创 排查ingress 404报错的方法--附:在容器中使用tcpdump抓包
出现这个问题,一般是由于路由不通导致的,需要进行抓包排查。首先要解决的问题是,如何在 ingress-controller 容器中安装抓包工具。1、由于 ingress-controller 的mandotory.yaml 中安全选项使用的是 33 用户,安装不了程序,因此咱们需要先修改spec.containers.securityContext下的配置securit...
2019-11-06 18:15:33 3516 2
原创 K8s-Ingress高可用IP透传方案
简介: k8s暴露服务的方式有以下几种:Proxy + clusterIP NodePort LoadBalancer IngressProxy + ClusterIP自定义代理 + 集群内存IP有一些场景下,你得使用 Kubernetes 的 proxy 模式来访问你的服务:• 由于某些原因,你需要调试你的服务,或者需要直接通过笔记本电脑去访问...
2019-11-06 18:07:52 4755
转载 获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
分析过程这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的。 一般朋友,都会看到如下通用获取IP地址方法。function getIP() {if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];} elseif (isset($...
2019-10-10 18:19:09 381 1
原创 解决eureka高可用集群在k8s环境无法正常启动的问题
昨天遇到一个问题,原本在非 k8s 环境下可以运行的 eureka 集群,上到 k8s 环境后,就无法运行。 这里记录一下解决问题的过程: kubectl logs -f XXX -n XXX 看日志后,报错:com.netflix.discovery.shared.transport.TransportException: Cannot execute re...
2019-10-10 11:16:53 1455 1
原创 解决 k8s 限制内存后 还出现 OOM 错误的问题:资源整合
如果应用所使用的 java 版本在 8及8以下, JVM 在没有认为设定 Xmx Xms 时, 会根据 宿主机的内存进行 JVM 的参数设置,这样就会导致很大的问题。比如,如果你的宿主机内存在 8G, 你的容器设置为 1G,那么 JVM 根据你的宿主机内存,给到你应用 2G左右的堆内存,此时 JVM 会按照 2G 进行 GC,此时会出现 OOM ,而导致容器被 kill 的情况。这一...
2019-09-30 15:04:51 9031 1
原创 k8s集群服务器宕机重启后,部分应用、监控不可用处理方法
服务器宕机重启后,可能导致部分服务及监控不可用:kubectl top nodes 可以查看kubectl top pod -n XXX 查看具体应用时,会发下部分pod不在metrics-server统计范围下另外还会出现部分内部应用相互不可调用的情况。推测是k8s网络问题导致,可以通过重置集群的方法解决:1 在重启的集群执行: kubeadm reset...
2019-09-23 09:17:03 2060
原创 windows10-pro下使用Minikube一键安装k8s验证环境
首先感谢大神把 Minikube 中国化,之前 google的版本亲测安装过,不太好使,这个安装步骤是基于大神们的成果写的。minikube可以在本机windows上一键安装k8s集群环境,方便大家学习、测试k8s文件,安装教程:Hyper-v安装教程https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-window...
2019-08-30 17:42:03 410 1
原创 mysql 查询脚本导出
一个同事让我帮写的SQL,不一定优质,但应该能用。SELECT t1.TABLE_NAME, t1.TABLE_COMMENT, CONCAT( 'select ', GROUP_CONCAT( CONCAT( t2.COLUMN_NAME, ...
2019-08-19 11:25:18 313
原创 记录k8s使用 configmap 挂载配置文件的一个坑
在使用 configmap 将tomcat 配置文件挂载到容器内部时,出现这么一个情况: kubectl apply -f xxx.yaml 提示: pod 已经创建,但实际使用:kubectl get pod -n XXXX 时并没有这个容器的提示,连容器创建失败的提示都没有。 造成这个问题的原因,以后注意了,大部分是因为yaml 文件写的有问题。 这次的问题比较...
2019-08-08 16:17:41 6235 1
原创 AES加密工具的实现及其基础原理
先贴代码:重要的参数都有注释,自己摸索的,有不对的地方大家指正import java.security.Key;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESedeKeySpec;im...
2019-07-04 19:38:43 1530
原创 关于数据库主键的随笔
随笔 SnowFlake的使用体验: 本次吸取上个项目经验,整个项目的数据库id都采用了 snowFlake,先说一下体验吧,snowFlake的确还是好用的,特别是在一些数据库操作上很方便,不用考虑很多,直接copy就完事了,出了问题修复上也比较方便:体现在如果缺少数据,你从主键上直接搜索就能很快定位缺失的数据,当然这种情况基本都没有出现。如果使用的是自增主键,要定位缺失或...
2019-05-16 15:53:20 176
原创 多表关联group by优化:去除Using temporary; Using filesort
最近因为项目很赶,很久没写博客了,今天算是已经把项目进度超前完成了,写一个今天解决的SQL优化问题。 这次优化花了半小时,但很值得,之前作为一个单纯后端,很少关注SQL效率,但是自从上个项目当上临时DBA后,或多或少的都会关注自己书写的SQL执行计划。 原始第一映像写出的脚本: EXPLAINSELECT service_id,service_name,cou...
2019-03-06 12:35:12 10947 1
原创 如何处理InterruptException
应该算是初级问题吧,但之前的确不知道,解决这个问题的契机,还是因为最近我集成了 Sonar 代码质量管理工具,针对 Tread.sleep() 方法抛出的 InterruptException ,工具要求不能只进行简单的捕获及日志记录。 以此为契机,我了解了 InterruptException 的处理方法,及 多线程 中断的机制。 之前我一直认为 线程A 调用 线程B 的 int...
2019-02-15 15:25:45 940
原创 讨论mysql两种树状结构递归查询的优劣
由于 mysql 本身并没有递归方法,并不像oracle那么方便,所以出现这个需求的时候,很是头疼了一久。 网上查到的有两种办法:一、 使用 @变量 进行迭代二、 使用 存储过程,进行遍历。 //******************************************************************************************...
2018-12-25 16:08:04 881 1
原创 萌新理解区块链
区块链很火,但是之前其实一直有些云里雾里,今天抽时间,认真了解了一下其中的原理。 这个是今天学习的教材,从CSDN首页上摘取的,国外大神写的,认真读完很有收获。 https://mp.weixin.qq.com/s?__biz=MzU2MTE1NDk2Mg==&mid=2247485990&idx=1&sn=d99f22c3b8e6f41b8d06cf9f...
2018-12-12 16:43:45 313
原创 全量备份数据库shell脚本、sftp开启免密连接、使用sftp上传至固定服务器
目标: 将 XX.XX.X.165、 XX.XX.X.164 的数据库全量备份打包,并上传到 XX.XX.X.44 想备指定库的同学可以放开部分注释掉的变量 以 root 用户登录 XX.XX.X.165、XX.XX.X.164操作:使用root权限创建目录:mkdir -p /app/backup/ 拷贝脚本auto_mysql_back.sh到 ...
2018-11-22 19:58:19 735
原创 初次尝试数据库运维: 一个教训及基于binlog的数据恢复。
首先记录一个教训吧,任何数据库的操作,请三思而行,要做到就算领导同事把你催得欲生欲死,你也要想清楚再操作,否则你一个简单的操作,就有可能让你通宵。 这次就是一个教训: 我们本身的数据库集群是 双主互相切换的,今早突然有开发反馈: 数据库无法写入了,生产上已经无法进行出单操作。 哎呀妈呀,我本人之前就是个开发,搭建数据库、数据库运维全靠这三个月业务时间自修的,当时慌得一批,第一个想法就是:...
2018-11-13 20:21:21 267
原创 quartz 组件是否适合数据库集群
这个问题困扰了我很久, 从开发的时候就发现这个组件在我们项目中是个风险点。 虽然我本身不是负责该模块开发的,但是基于一颗好奇心,我找了一份网上基础课程,了解了这个组件的基本原理。 不得不庆幸这个决定,因为上线当天,以及上线后运维期的重大问题,都和这个组件有关,而这些问题都被我暂时处理了。 这个是我的学习笔记:http://note.youdao.com/not...
2018-11-13 16:07:02 503
原创 mysql集群与应用集成中遇到的问题(持续更新)
这个问题,得在后续运行中持续验证了,踩坑后会来这里补充。 坑一: 系统集成测试中发现:有个同学的代码,单机数据库时完全没有问题,使用集群后,会报空指针异常。原因: 他的代码中,在一段逻辑处理中,先将一段数据插入后,从数据库查出。 数据库同步我没有开完全同步,写入时在 A 节点、读取在B 节点,此时,B数据库还未同步。 因此报空指针...
2018-11-07 17:10:00 464
原创 数据库配置性能验证
有这么一篇,主要是因为上线时需要有数据库压测报告,我又顶上了,嗯嗯。 只敢说是性能验证,因为我知道,jmeter我作为一个临时抱佛脚的人,很多牛B的功能没有用到。这里主要是记录一下,通过 jmeter 的压力测试,我对一些参数对数据库性能的影响,有了一个直观的认识。有不正确的地方,路过的大神指正一下。 由于我本机的 java 版本用的 7 ,所以jmeter版本我选择了 3....
2018-11-07 17:01:56 333
原创 Mycat作为中间件搭建Mysql主从复制---从选型到搭建的想法和记录
想了解本人简陋搭建过程的同学,可以忽略下面这一段:**********************************************************************************************************************************************首先,本次搭建的数据库架构没有很复杂,选型了 Mycat ...
2018-11-07 15:45:17 776
原创 Mysql单库搭建
Mysql 版本: 5.6服务器权限 root (1)解压命令: tar –zxvf mysql-5.7.16-linux-glibc2.12-x86_64.tar.gz (2)将解压后的文件放到指定目录下,并重命名:mv ./mysql-5.7.16-linux-glibc2.12-x86_64 /app/mysql (3) 创建mysql用户和用户组gr...
2018-11-07 14:14:30 268
原创 记录实际项目中数据库搭建经历
记录一次完整的数据库搭建经历,本人实际干开发的,数据库方面新人一枚,这次算是逼上梁山的,因为公司整体架构都比较陈旧,周围也没有可以讨论的同事,任务砸下来,只能自己开发之余,利用业余时间,从零开始摸索,因此有不对之处多多包涵,也希望路过的大神指导一下。 Mycat作为中间件搭建Mysql主从复制---从选型到搭建的想法和记录数据库性能验证系统集成中遇到的问题(持续更新) ...
2018-11-07 10:44:27 434
原创 The Auto-extending innodb_system data file './ibdata1' is of a different size 6400 pages (rounded do
Mark一个解决的问题:ibadat1 是 共享表空间文件,在使用数据库时,会自动增大包含:Data dictionary Double write buffer Insert buffer Rollback segments UNDO space Foreign key constraint system tables(前几个东东和innodb引擎写数据、回滚等...
2018-11-01 15:26:34 4911
原创 帮同事优化一个迭代SQL,相同SQL结果集不同
SELECT deptCode, deptCName, upperDeptCode FROM (SELECT * FROM sc_pubcompany WHERE upperDeptCode > 0 ORDER BY upperDeptCode, deptCode) realname_sorted, ...
2018-10-17 15:51:43 277
翻译 分布式应用序列号生成
引用: https://blog.csdn.net/weixin_39433171/article/details/80672312工程中先后考虑了几种业务号生成的方式,最终采用 snowFlake 算法:以下是自己批注的一些东东,mark 一下:相对于 引用的原文, 这里将 SnowFlake 以单例的形式, 注入到 Spring 容器管理。单例 和 加锁,私以为,只有单例 和 ...
2018-07-19 16:25:48 880
原创 mysql小集群
初学者的一些笔记,有不妥的地方,请多多包涵。本人在虚拟机上,用 docker 安装了 四台 mysql : **********************************************************************************************************1、 配置各个 msyql 服务的 my.cnf :两台主机:除常规配置外:ma...
2018-06-25 13:58:37 282
原创 docker安装mysql5.7 并运行、保证容器及外部的通信
docker 初学者的一些随笔:1、下载镜像:sudo docker pull mysql:5.7*********************************************************************************************************************这一步,就是 先虚拟建一个 mysql ,将其中的 mysql 原生...
2018-06-21 09:54:42 2507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人