起因 其实平时的项目需要自己手动虚拟化的场景还是比较少的,对于互联网型项目基本采用云厂商服务方案,估计现在很少会有公司自己建机房了吧,除非公司本身涉足到了IDC云服务领域。对于公司内部服务器基本只在购买时配置一次,一次会使用N年。 这不由于前些天的发现原有windows服务器的异常问题才引出这个事情,现在线下业务中心在四五年前采购的服务器,型号基本统一为RH2288v3,CPUE52620 V4,内存32G,针对于每个业务中心每天接待几百人的业务量还是绰绰有余的,并且还有些浪费。 鉴于此于此次跟项目组一起前往各业务中心进行相关系统迁移、虚拟化工作。 RH2288v3安装ESXI6.7过程 根据官网的兼容性列表可知,RH2288v3服务器与ESXI6.7是完全兼容的,并且性能表现也是非常不错。 首先通过下载华为服务器的KVM工具,通过管理端口远程安装。 重新启动后,由于原先已经配置好RAID5,直接按F11,选择挂载的虚拟光驱,开始我们的ESXI安装过程。
天翼云弹性负载均衡设置注意事项
近期公司某个项目要上线,公司明确要求采购天翼云服务器,由于第一次使用,过程中也碰到不少问题,相对于阿里云、华为云、腾讯云而言,天翼云需要提升的空间还是蛮大的。 使用天翼云负载均衡注意事项: 在创建负载均衡时,一定要在安全组手动添加白名单 10.125.0.0/16(该提示仅会出现一次,错过之后不会再有任何提示),否则会导致负载均衡全部监听失败。 在创建后端服务器组后,配置健康监测时,一定要注意,不论你配置是否正确,此时显示的全部为状态“异常”,在后端服务器组跟前端监听端口绑定后才会真正检测其是否有效,在这之前默认显示“异常”。这块儿卡住了很久,因为当时无论怎样检查配置都完全正常没有问题,系统却显示异常,杯了个具啊。 另外非常重要的一点,如果之前你的域名、服务器都备过案了,而你新开通了一个负载均衡并绑定了新的弹性IP时,这时你需要重新变更备案将新的IP添加进去,否则你的80、443端口是无法使用的。这一点是与阿里云很大的区别,此处又成功将项目正式上线时间顺利推迟了将近一个月。
记一次Mysql 数据库诡异锁表解决过程
Mysql锁表现象 1、目前线下业务中心N个,每一个线下业务中心,拥有独立的内网服务器,用于线下业务,部分中心务偶尔性的出现业保存时卡住无法进行的情况一旦卡住则无法使用,时间不确定、周期不确定,部分中心周期短的时候1周一次,时间长的可能一两个月一次,而实际业务量基本保持稳定增长,没有大变化 。 2、同样的代码仅在部分中心出现该问题。 3、表引擎为innodb 4、 mysql版本为5.6.x 5、 服务器基本为windows server 2008R2、windows server 2012。 原因分析查找 1、show open tables where in_use >=1; 执行时发现某一张表 in_use达到100次之多,直接影响业务的正常进行。(https://dev.mysql.com/doc/refman/5.6/en/show-open-tables.html) 2.、查询当前锁定的事务为空、等待锁的事务也为空,没有锁的事务??但表N多in_use状态 3、每次锁的表不固定,随机锁表(难道是系统整体事务有问题?也不可能,有的中心长期运行无任务问题,同样的代码)。 解决过程 事情比较诡异,当然首先想到的是事务处理有问题,而经过确认研究,事务写法、配置均正确。 1、暂时没解决之前,只能先临时重启mysql处理,另行查找原因。 2、查找源代码,发现锁表的很多是非常简单的业务比如整个系统中只涉及到一个insert 语句而已,无复杂业务,确认源代码无问题。 mysql> show variables like ‘innodb_autoinc_lock_mode’;+————————–+——-+| Variable_name | Value |+————————–+——-+| innodb_autoinc_lock_mode | 1 |+————————–+——-+ 发现自增表锁模式为:连续模式,每次也是单记录写入。 查找mysql错误日志,发现没有死锁日志。 最终解决办法 怀疑跟操作系统有关,不同批次的服务器供应商安装的操作系统有异,将服务器重装为Linux之后,观察运行情况,重装之后至今(几个月了)但凡装过Linux系统的业务中心均再未出现该现象。 update 2020年4月30日 目前已经运行近4个月100%正常。 结论 但凡不是自己安装的系统,或者不确定是正版系统的情况下系统出现莫名其妙的问题, 初步排查程序没有问题时,可以优先考虑操作系统的问题。
久酷博客低调回归
暮然回首,转眼间博客到现在已经十余年时间,中间断断续续,特别是最近五六年博客更新更是没几篇,最近几年精力主要放在工作上,接下来可能会恢复更新,是可能哦^_^ 可能是手有点痒了吧,哈哈 以后可能会更新一些工作当中相关的心得体会,技术基础相关内容,希望对入行的新人朋友能有一些帮助吧。
Linux环境下端口映射
前言 端口映射工具的使用场景: 由于某些场景系统必须部署某内网环境,只有对外的某一台服务器可与外网连接,要管理数据库、缓存等服务,需要进行端口映射外加防火墙白名单方式保证维护的便利与安全性。 之前系统的端口映射一直是使用的为rinetd工具,不过该工具官方已经不维护,官方亦无法打开,故而转用新的端口映射工具。 系统环境 centos7.x socat (官网地址: http://www.dest-unreach.org/socat/) 安装部署 wget http://www.dest-unreach.org/socat/download/socat-1.7.3.4.tar.gz tar -zxvf socat-1.7.3.4.tar.gz cd socat-1.7.3.4 ./configure && make && make install 进行端口映射 nohup socat -d -d -lf /home/logs/socat.log TCP4-LISTEN:3306,reuseaddr,fork TCP4:192.168.0.59:3306 >/dev/null 2>&1 & 表达的意义为: 将在内网192.168.0.59的3306端口,在本服务器上映射到3306端口。 映射完成后在防火墙上将常用的维护IP添加即可。
HBuilder dcloud uniapp开发 推送的用户别名绑定方法
问题 之前的产品推送方面,APP一般是用原生的代码代码开发,并不存在该问题。近期一产品采用dcloud开发,可以一端开发多端使用。 dcloud推送方面unipush产品集成了个推的VIP产品。 dcloud api中并未集成原生的用户别名、标签管理等功能。 解决办法 第一种方法,直接调用个推的原生APP代码进行bind即可,相对麻烦些。 第二种方法,将clientId上传到服务端,通过服务端api 进行clientId、userId的关系绑定,以及标签绑定处理。全部通过服务端APIhttp://docs.getui.com/getui/server/java/usermanage/