自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (14)
  • 问答 (2)
  • 收藏
  • 关注

原创 python提供web服务获取数据

我们游戏项目中基本都需要获取在线人数(ccu),可以通过python自带的web服务快速实现

2022-07-06 19:17:41 537 1

原创 定时清理elasticsearch索引和数据

业务中由于索引是按照时间自动创建的,所以需要定时任务来清理这些索引和数据#!/bin/bashclean_log="/data/elk/tools/es_index.log"pre_deltime=5live_deltime=30#不同环境索引关键字不一样pre_indexs=`curl --user test:test123 -s "10.0.0.1:9200/_cat/indices?v" |awk '{print $3}' |grep "pre"`live_indexs=`curl

2022-05-14 11:41:46 2413

原创 rocketmq 集群部署

架构图部署环境hostnameip备注mqnamesrv110.0.0.1namesrvmqnamesrv210.0.0.2namesrvmqbroker310.0.0.3broker-master-amqbroker410.0.0.4broker-master-bmqbroker510.0.0.5broker-slave-amqbroker610.0.0.6broker-slave-b系统初始化内核参数、防火墙等进行

2022-05-11 11:19:56 2972 2

原创 kubernetes高可用集群部署

架构图部署环境hostname | ip |rolecluster-vip | 10.0.0.250 | vipk8s-master001 | 10.0.0.12 | kubernetes masterk8s-master002 | 10.0.0.13 | kubernetes masterk8s-master003 | 10.0.0.14 | kubernetes masterk8s-node001 | 10.0.0.15 | first woker node部署方案centos7

2022-04-21 12:05:42 539

转载 NodePort vs LoadBalancer vs Ingress

前言在上一篇《Kubernetes网络三部曲~Service网络》中,介绍了K8s的4层网络栈中的第2层Service网路。有了Service网络,K8s集群内的应用可以通过服务名/ClusterIP进行统一寻址和访问,而不需要关心应用集群中到底有多少个Pods,Pod的IP是什么,会不会变化,以及如何以负载均衡方式去访问等问题。但是,K8s的Service网络只是一个集群内部网络,集群外部是无法直接访问的。而我们发布的应用,有些是需要暴露出去,要让外网甚至公网能够访问的,这样才能对外输出业务价值。K8s

2022-04-03 23:15:03 857

原创 kubernetes深入理解

2022-02-23 17:45:37 190

原创 Redis6.2安装部署

redis编译安装,以6.2.2版本为例#redis6.2.2 in centos 7.2wget http://download.redis.io/releases/redis-6.2.2.tar.gztar -xvf redis-6.2.2.tar.gz && cd redis-6.2.2make distcleanyum install tcl -yyum install systemd-devel -ymake USE_SYSTEMD=yesmake testg.

2022-02-18 10:37:18 1086

原创 Elasticsearch报错out of range of long完整解决流程

定位问题业务侧的数据类型是uint64位,通过filebeat传输到logstash,然后输出到elasticsearch。运营QA等人员在kibana上查数据发现会有丢失查不到的情况发现es的日志有大量的报错如下:Caused by: com.fasterxml.jackson.core.JsonParseException: Numeric value (18446744073709551615) out of range of long (-9223372036854775808 - 92

2022-01-21 16:09:17 2870

原创 docker防火墙管理

docker环境容器业务,新增docker网卡,所以防护策略有所变化(1,执行iptables-save > /etc/sysconfig/iptables保存现有的防护规则(2,增删改查规则直接在/etc/sysconfig/iptables进行调整,然后iptables-restore < /etc/sysconfig/iptables加载到现网(3,在rc.local启动配置里面添加iptables-restore < /etc/sysconfig/iptables,这样服务

2021-11-30 14:02:50 1449

转载 直播网站是怎么实现的

音频、视频采用 FFmpeg 将流媒体切片(编码),类似 m3u8 作为目录,切成多个视频 ts 文件再根据不同清晰度编码多个版本,来应对用户再不同网络环境情况直播动态 m3u8 文件,不断编码写入目录,并上传内容,再由流媒体服务器分发传输通常视频文件较大,所以传输需要压缩,播放需要解码一个直播网站通常会有下面 5 个部分组成:录制端:负责录制直播视频,用流的形式上传。计算集群:专门负责编码上传的流数据,然后进行压缩、转码、切片等工作。对象存储:存储原始视频和转码后的视频(相当于

2021-10-27 18:49:09 466

转载 网络长连接和短连接

什么是长连接和短连接左边是短连接,右边是长连接。我们会看到短连接为每一次的数据传输准备了一个传输通道,比如客户端向服务端要传送数据的时候,它会先建立连接,然后传递数据,最后关闭连接。当要传递第 2 份数据的时候,又要重复这个过程。所以短连接就是在每一次传输数据前,建立一次连接的通道。长连接则是建立了一条可以连接通道,并一直保持,每一次传输数据时会复用同一条连接通道。建立长连接的前提第 1 个是客户端使用长连接方式请求第 2 个是服务端需要支持长连接。keepalive_timeout 控制着

2021-09-30 15:25:54 3603

原创 python快速启动一个web服务

紧急情况下,需要远程访问或者下载某些文件和目录的时候,可以使用python自动的轻量级web来快速实现功能。1.在服务端相关目录下启动一个http server,绑定端口2.在客户端可以访问对应根目录以及根目录下的文件和子目录,下载和访问都没问题3.不想使用的时候,直接杀掉对应的进程终止提供服务,随用随启,非常方便,推荐给大家。...

2021-09-24 17:37:45 2140

原创 python快速实现一个接口服务

在我们的业务中,需要启动一个daemon进程,提供相关的数据给远程来访问获取。这个例子中是用python来启动一个web服务,获取某个文件下的数据,然后提供远程实时调用,代码如下:#!/usr/bin/env python import json,os,time##这几个模块都是python自带的,不需要重新安装from urlparse import parse_qsfrom wsgiref.simple_server import make_server # 定义函数,参数是函数的两个

2021-09-24 17:20:51 1990

原创 Python检测UDP端口是否正常通信

通过python脚本构建客户端,向服务器发送hello的UDP包,然后在跑客户端的机器上tcpdump抓包查看是否能正常收到UDP回包,即可判断UDP服务是否正常。# -*- coding:utf-8 -*-#!/usr/bin/pythonimport sysimport osimport socketimport threadingfrom threading import _Timerimport datetimeimport timeimport selecttotal.

2021-08-25 15:26:41 2405

原创 centos6给dmesg内核日志增加时间

在centos6中,dmesg日志默认是不带时间戳的,这样系统出现了一些故障,很难去根据故障日志来判断发生的时间点,所以有必要给dmesg配置上时间戳。dmesg增加时间戳和转化时间戳的脚本centos_ver=$(rpm --eval '%{centos_ver}')if [[ ${centos_ver} == "6" ]]then#enable dmesg timestamp echo 1 > /sys/module/printk/parameters/time ..

2021-06-22 10:34:25 983

原创 Centos7安装和配置supervisor

我们在服务器上经常会使用到supervisor来管理进程。supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。安装yum install -y python-setuptoolseasy_install supervisorecho_supervisord_conf > /etc/supervisord.confmkdir /etc/supervisor echo -e "[inclu

2021-04-22 16:41:59 194

原创 企业微信API&群机器人配置

我们公司用的企业微信,会把相关开发或者运维拉到一个群里,然后配置上一个群机器人,这样的话就可以用企业微信API来配置群机器人接收消息,把一些日常的服务器或者日志告警发送到对应的群。以下介绍两种常用的消息发送类型:文本类型和文件类型发送文本类型的消息文本消息示例{ "msgtype": "text", "text": { "content": "广州今日天气:29度,大部分多云,降雨概率:60%", "mentioned_list":["wangqi

2021-03-12 10:39:54 5272 3

原创 Centos下利用lm_sensors监控服务器CPU温度

centos6.5下添加lm_sensor监控cpu温度关于服务器基础监控这块,需要加上对CPU温度的监控,这样可以在机房温度有异常或者是服务器CPU负载较高温度上升的情况下,可以及早发现问题。因为centos官方对6.5的yum源不做支持,所以采用腾讯的进行更新和安装#如果是centos7就不用这一步更新yum源了wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos6_bas

2020-12-21 15:46:49 1951

原创 kubeadm部署安装k8s集群

Kubernetes组件介绍k8s master包含的三大组件kube-apiserver,是整个 Kubernetes 集群的“灵魂”,是信息的汇聚中枢,提供了所有内部和外部的 API 请求操作的唯一入口。同时也负责整个集群的认证、授权、访问控制、服务发现等能力。Kube-Controller-Manager,负责维护整个 Kubernetes 集群的状态,比如多副本创建、滚动更新等。Kube-controller-manager 并不是一个单一组件,内部包含了一组资源控制器,在启动的时候,会通过

2020-12-18 10:57:29 2630 1

原创 Docker监控:cAdvisor的安装和使用

Docker容器的监控方案有很多,除了Docker自带的docker stats命令,还有其他的开源解决方案,例如sysdig、cAdvisor、Prometheus等,都是常用的监控工具。这里主要介绍一下cAdvisor的安装和使用。cAdvisor是谷歌开源的一款通用容器监控工具。它不仅可以采集机器上所有运行的容器信息,还提供了基础的查询界面和HTTP接口,更方便与外部系统结合。所以cAdvisor很快成了容器指标监控的最常用组件,并且Kubernetes也集成了cAdvisor作为容器监控指标的.

2020-11-20 14:42:05 1636 3

原创 Linux网卡速率监控脚本

在运维工作中,要对每一台服务器的网卡速率进行监控。但是如果项目很多,网卡取名规则不统一,就会导致不管zabbix还是其他的监控系统,对网卡的抓取都不能很精准和方便。所以自己写了一个获取网卡脚本,并且对速率进行监控。#!/bin/bashnets=()results=()#get the network cardfor dir in `cd /sys/class/net/ && ls`;do if [ `grep "up" /sys/class/net/$dir/oper

2020-11-18 14:13:42 546

原创 磁盘测试和带宽测试工具

磁盘测试工具安装工具和测试脚本yum -y install fio iperf3echo "随机写"fio -filename=/data/testfile -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=2G -group_reporting -name=mytestecho "顺序写"fio -filename=/data/testfile -direct=1 -iodepth 1 -thre

2020-11-05 15:35:34 285 2

原创 Linux查看Buffer&Cache被哪些进程占用

Buffer和CacheBuffer 是缓冲区,而 Cache 是缓存,两者都是数据在内存中的临时存储。Buffer 是对磁盘数据的缓存,而 Cache 是文件数据的缓存,它们既会用在读请求中,也会用在写请求中。从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处,应用程序可以在数据真正落盘前,就返回去做其他工作。从读的角度来说,既可以加速读取那些需要频繁访问的数据,也降低了频繁 I/O 对磁盘的压力。如何查看Buffer&Cache使用率高的进程有哪些推荐一个工具hc

2020-10-14 17:16:14 19008

转载 linux 系统 UDP 丢包问题分析思路

序言最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程。首先网络报文通过物理网线发送到网卡网络驱动程序会把网络中的报文读出来放到 ring buffer 中,这个过程使用 DMA(Direct Memory Access),不需要 CPU 参与内核从 ring buffer 中读取报文进行处理,执行 IP 和 TCP/UDP 层的逻辑,最后把报文放到应用程序的 socket

2020-10-13 11:13:15 1163

原创 系统内存还有很多的情况下为何swap使用很高了

Swap是什么Swap就是把一块磁盘空间或者一个本地文件,当成内存来使用。换出,就是把进程暂时不用的内存数据存储到磁盘中换入,就是在进程再次访问这些内存的时候,从磁盘中读取到内存Swap其实是把系统的可用内存变大了,这样即使服务器的内存不足,也可以腾出空间来运行大内存的应用程序。既然Swap是为了回收内存,那么Linux会在什么时候需要回收内存呢?它又是怎么来衡量内存是不是紧张或者压力大呢?内存回收是什么?内存回收是子系统释放掉可以回收的内存缓存和缓冲区,他们在内存管理中,叫做文件页

2020-10-10 16:46:46 6666 2

原创 CMDB批量操作给Linux服务器改hostname

现在的服务器维护,大部分是用CMDB操作了,在使用CMDB批量改名的过程中,需要找到对应服务器的ip和相对应的hostname,然后进行hostname设置,以下是我经常使用的一个小脚本:#!/usr/bin/env python#-*- codinig: UTF-8 -*-import osimport subprocessimport socketips = '''10.0....

2020-04-20 15:26:52 227

原创 influxdb+grafana监控网络情况

日常的服务器监控中,网络监控是必不可少的,而influxdb+grafana是我在工作中经常用到的,接下来做个部署流程记录,以下服务器基于centos7:1.安装influxdb下载安装包进行yum本地安装#wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.2.x86_64.rpm #yum localinstal...

2019-11-19 16:54:33 2135

原创 python脚本-mysql监控指标

python写的监控mysql各项指标的脚本:#!/usr/bin/env python#! coding:utf-8import pymysqlimport socketmyname = socket.getfqdn(socket.gethostname())class DBMonitor(): def __init__(self, db_host, db_user, ...

2019-08-16 15:40:23 657

原创 一款新游戏上线流程中,运维需要注意的事项

一款新游戏上线流程中,运维需要做的事情往大了讲,其实没有多少,无非就是前期和开发讨论合适的架构,准备测试环境和正式环境各种资源等,后期为游戏的稳定运行保驾护航。但是往小了看,事情其实复杂繁多,这里做一个简单的记录。IDC需要关注的地方:服务器和网络设备机房和带宽网络设备监控服务器部署需要关注的地方:ulimit虚拟内存日志切割服务开机自启动服务器的基础监控事项:CP...

2019-08-16 15:32:19 1716

原创 CentOS7 真正的Failed to start LSB: Bring up/down解决方法

安装完centos7之后,配置好网络,重启网卡有报错:解决办法:systemctl stop NetworkManagersystemctl disable NetworkManager网卡配置中NM_CONTROLLED=nosystemctl restart network结果还是提示上面截图报错,因为服务器只配置了内网ip,于是打算使用ifdown和ifup来手动重启内网网...

2019-08-15 20:50:13 17939 3

转载 ELK部署安装以及配置

发现了一篇不错的关于ELK安装部署的文章,这里做个记录。一、什么是ELKELK是Elasticsearch + Logstash + Kibana 这种架构的简写。这是一种日志分平台析的架构。从前我们用shell三剑客(grep, sed, awk)来分析日志, 虽然也能对付大多数场景,但当日志量大,分析频繁,并且使用者可能不会shell三剑客的情况下, 配置方便,使用简单,并且分析结果更加直...

2019-07-30 17:00:17 9371

原创 nginx根据post请求参数做转发

在工作中遇到了根据post请求做转发的需求,决定使用nginx来完成。1.源码安装nginx,带上form-input-nginx模块wget http://nginx.org/download/nginx-1.16.0.tar.gztar -zxvf nginx-1.16.0.tar.gz cd nginx-1.16.0/git clone http://github.com/simp...

2019-07-23 09:16:22 16619

转载 mysql 配置文件设置最大链接数 max_connections不生效

mysql5.71、临时设置最大链接数为1000,重启mysql后 会变成默认值151.mysql -uuser -ppassword(命令行登录MySQL)mysql>show variables like ‘max_connections’;(查可以看当前的最大连接数)msyql>set global max_connections=1000;(设置最大连接数为1000,可...

2019-06-19 12:41:01 7184 1

原创 redis sentinel主从切换

sentinel(哨兵)进程是用来监控master redis的,如果主master出现故障,并且符合sentinel设定的切换条件,那么sentinel就会自动的切换主从关系。老的主从配置master redis配置bind 0.0.0.0 //绑定IP地址,可以通过ifconfig 获取Ip地址protected-mode yesport 6379tcp-backlog 511...

2019-05-24 16:50:49 1575

原创 Mysql主从切换为从主

mysql主从关系中,如果master宕机了,则要提升slave为主,等原来的主库恢复之后,则要把老的主库变为从库,这样才能尽最大可能的保证应用层面的业务高可用性和数据的完整性。## mysql主从切换为从主:从库变主库old slave: show processlist;# 确保Slave has read all relay log;STOP SLAVE IO_T...

2019-03-27 16:17:01 2994

原创 Django告警功能页面升级版

本页面主要是实现以下功能:获取数据库中的实时人数,根据各个项目个性化的设置参数进行告警,包括发送告警对象、告警方式、告警阀值等等。页面样式如下:点击提交,进行确认:提交更高之后,会收到服务器返回的数据展示:视图函数如下:import osfrom django.http import HttpResponsefrom django.shortcuts import rende...

2019-03-14 18:39:04 1198

原创 Django实践之告警参数设置功能

效果如下:路由参数:from websocket.views import alert_page,boke_view,index_viewurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^alert_page/$', alert_page.alertpage),]视图参数:#数据都可以改为从数据库读取...

2019-03-11 19:03:54 684

转载 centos6系统HAproxy编译安装

一. Linux编译安装haproxy部署前说明:(1)系统版本: centos 6.6(64位)(2)相关中间件信息haproxy版本信息: haproxy-1.5.15编译安装haproxy1.1 到haproxy官网下载haproxy源码包如下cd ~wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.15.tar...

2019-02-21 14:26:07 815

转载 CentOS6.x 安装 Docker 和 Docker Compose

本来,对于 CentOS 系列,Docker 官方要求要 CentOS7.0 及以上系统版本,但是有时候迫不得已,还是要在已有的 CentOS6.x 的系统上安装。比如我遇到的:要在一台已有的 CentOS6.5 的服务器上部署一个 Java 应用,该 Java 应用基于 Java8 和 Mysql5.6 开发,都用到了相应的特性。但是,已有的 CentOS6.5 上已经在跑着几个 PHP 和 ...

2018-11-19 18:47:46 464

原创 python多线程批量过滤文件关键字

基于上一篇博客中的问题,我尝试用python改成多进程运行:https://blog.csdn.net/linxi7/article/details/81317704#!/usr/bin/env pythonimport time, datetimeimport os, sys, commandsimport socketimport threadingOSS_DIR="/da...

2018-08-10 14:28:03 1002

rocketmq console安装包

rocketmq console安装包,用于部署rocketmq消息队列控制台

2022-05-11

云原生课程完整资源,有需求的可以下载

云原生课程完整资源,有需求的可以下载

2022-01-28

k201-master.zip

k8s集群部署和容器编排技术文档,知识点丰富,从入门到进阶,可实操,也可用来参考

2019-07-23

Django-1.11.6.tar.gz

这个是Django-1.11.6稳定版,已经在实践环境中部署使用。

2018-04-04

Python-3.6.0.tar.gz

新版本的Python.3.6稳定版,本人测试有效果,真实有效。

2018-04-04

口袋新闻App

这是我博客中提到的口袋新闻App的客户端,欢迎大家试用和反馈。博客里面有讲到实现方式和代码,欢迎阅读并指正!

2016-08-10

Android微信通讯录效果

android自定义view,实现微信通讯录一模一样的效果

2016-08-07

Android快速索引:实现微信通讯录效果

自定义View实现Android快速索引,模仿微信的通讯录效果。右侧的快速索引条按下时候没有变成灰色,但是我设置了selector,不知道为什么没有生效,请知道原因的朋友告诉我一下,感激了。

2016-08-07

ViewPager+RadioGroup实现微信UI界面

实现微信UI界面框架,然后可以再进行扩展相应的功能

2016-07-07

Android项目中的欢迎界面和引导页:动画和ViewPager

android每个应用都有欢迎页面和引导页,这个小Demo可以达到一个可扩展的效果。

2016-05-13

优化过后的滑动页面Demo

对先前的Demo做了一些优化,增加了自定义滑动的动画效果

2016-04-12

利用GestureDetector实现页面滑动Demo

利用GestureDetector实现页面滑动Demo

2016-04-11

测试qq号运气的app

这是一款带导航和动画的界面功能简单的qq测试运气的app,是用聚合数据接口开发的,适合初学者使用。工具类里面的appKey要使用你自己的去替换,否则会获取不到查询结果。后续会更高价完善

2016-03-05

自己实现的QQ测运气小app

这是一款小而美的qq测试运气的app,是用聚合数据提供的接口完成的,用ViewPager做的导航页,目前功能界面都很简单,适合初学者学习使用。

2016-03-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除