自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 记录rsyslog丢日志问题

现象使用rsyslog记录opensips的日志,当访问量大的时候,会出现丢日志的问题在系统日志有以下输入imjournal: 12856 messages lost due to rate-limiting或者Suppressed 6273 messages from /user.slice/user-1085.slice原因在 Linux 中,默认情况下有一些不同的机制可能会限制速率日志记录。这些主要是默认设置的 systemd 日志和 rsyslog 速率限制。为什么限速?日志记录的

2021-08-18 17:12:42 1814

原创 记一次centos7上权限问题Permission Denied

权限在确认了是有访问权限和文件有权限的情况下,可以看下是不是和我一样的情况开启了SELinux或者AppArmor案例在nginx上使用方向代理python程序,nginx一直报502nginx配置测试 curl localhost/getNumbernginx访问日志127.0.0.1 - - [03/Aug/2021:15:46:03 +0800] "GET /getNumber HTTP/1.1" 502 3693 "-" "curl/7.29.0" "-"127

2021-08-03 17:31:52 3588

原创 记一次python cpu100%分析记录

找到进程号 pid比如我这里进程号为3151 ps -ef | grep python root 3151 1 0 15:56 ? 00:00:10 python random-server.py 9999查看进程中线程占用情况top -Hp 3151跟踪进程的执行栈watch pstack 3151跟踪函数的调用strace -f -p 3151查看进程中线程的详细信息cat /proc/3151/task/3151/status..

2021-08-03 17:17:09 1383 1

原创 搭建简易版的k3s

机器规划服务器规划ipk3s-master主节点/mysql/rancherUI172.16.3.2k3s-work工作节点172.16.3.3注意每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主机名,请传递K3S_NODE_NAME环境变量,并为每个节点提供一个有效且唯一的主机名。我就是因为这个问题耽误了很长时间,如果主机名相同,请设置export K3S_NODE_NAME=work搭建mysql在master节点使用docker搭建my

2021-07-06 19:30:42 452

原创 openj9在Docker当中的最佳实践

前言在云原生的时代Java备受新老语言的挑战,在云原生时代对应用的需求有几大类体积更小:对于分布式架构而言,更小的体积意味着更少的下载宽带,更快的分发速度。启动速度更快,对于传统单体应用,启动速度与运行效率相比不是一个关键的指标。原因是,这些应用重启和发布频率相对较低。然而对于需要快速迭代、水平扩展的微服务应用而言,更快的的启动速度就意味着更高的交付效率,和更加快速的回滚。尤其当你需要发布一个有数百个副本的应用时,缓慢的启动速度就是时间杀手。对于Serverless 应用而言,端到端的冷启动速

2021-04-28 17:52:26 2223 2

原创 记录下kurento在内网视频几秒延迟播放

在内网使用kurento的时候会有几秒延迟的情况,经过排查是因为浏览器会默认隐藏内网的IP地址,所以需要设置一些额外的东西才可以将IP地址显示出来Chrome:在Chrome浏览器地址栏中输入:chrome://flags/搜索#enable-webrtc-hide-local-ips-with-mdns 该配置 并将属性改为 disabled之后按照chrome的指示重启一下IP地址就正常了。Firefox:在地址栏中输入:absout:config搜索配置media.peerconnect

2021-04-17 16:04:52 521

原创 记一下Centos6.5 JVM 出现内存异常

输入java -versionCould not create the Java virtual machine查看系统上的内存解决办法:停止机器其他的进程,释放内存oracle 版本的java可以设置环境变量,改变java默认的JVM参数export _JAVA_OPTIONS="-Xmx512m -Xms512m"然后输入java -version 一起正常...

2021-04-17 15:42:29 169

原创 鲲鹏上部署nacos的坑记录

替换base镜像Docker由于nacos的docker镜像只支持x86,所以我们需要自己在arm下打包个nacos替换原来Dockerfile的镜像FROM arm64v8/centos:centos7K8S如果使用k8s,nacos依赖peerfinder插件,该插件官方提供的二进制包是x86的,需要自己打一个镜像由于该插件官方已经废弃了,找不到对应的依赖包,我们这里提供了一个clone 仓库git clone https://github.com/kubernetes-reti

2021-03-24 22:52:05 1458 1

原创 解决gitlab-runner一直处于等待中

在使用gitlab-runner的时候一直处于等待中主要有以下几个原因1.启动用户不是gitlab-runner而是其他用户/usr/local/bin/gitlab-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user root改为/usr/local/bin/gitlab-runner

2021-03-11 19:34:57 14352

原创 docker容器内访问宿主机的资源

我们经常会在容器内访问宿主机的资源比如 nginx容器反向代理其他容器或者宿主机的应用如果nginx在容器内,方向代理宿主机的应用,直接使用127.0.0.1 或者localhost是有问题的,因为宿主机的网络和容器网络不通解决办法在linux下使用docker0网络,把127.0.0.1改为docker0网络172.17.0.1ifconfig2.Docker v 20.10及更高版本在Linux上可以在启动的时候添加–add-host=host.docker.internal:ho

2021-03-09 09:54:04 6893

原创 企业和个人开发者如何获取开源项目的红利

什么是开源「开源」一词对应英文 Open Source,最初起源于软件开发领域,因此也称为「开放源代码」,对应的软件则称为开源软件(Open Source Software)。除了我们熟知的开源软件以外,开源的表现形式还有开源硬件(Open Source Hardware)、开放设计(Open Design)、开放文档(Open Document)开源软件开源软件的定义:开源软件是一种技术和立场中立的使用许可证约束的开放源代码的软件。开源软件需要保持开放的心态,对任何技术和立场都保持客观公正的态度,

2021-02-06 22:55:55 547 2

原创 kubernetes之二进制搭建k8s(1.18.4版本)

yum update && wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo && yum clean all&& yum makecache# 关闭selinux,firewalld,swapsed -i 's/enforcing/disabled/' /etc/selinux/configsystemctl disable fir

2021-01-20 15:03:39 396 1

原创 使用minikube快速搭建k8s环境

需要的环境2核或者更多的cpu2GB或者更多的内存20GB的可用磁盘空间网络连接docker容器非root用户安装macbrew install minikube如果which minikube通过brew安装后失败,则可能必须删除minikube容器并链接二进制文件:brew cask remove minikubebrew link minikube直接下载二进制 curl -LO https://storage.googleapis.com/minikube/r

2020-12-28 19:46:12 469 1

原创 X-Y问题

概括XY问题用一句简单的话来说,就是没有搞清楚问题,所以回答就是错了。如果问题本身就存在问题,那么答案也没有任何意义。举个两个例子:Q) 我怎么用Shell取得一个字符串的后3位字符?A1) 如果这个字符的变量是$foo,你可以这样来 echo ${foo:-3}A2) 为什么你要取后3位?你想干什么?Q) 其实我就想取文件的扩展名A1) 我靠,原来你要干这事,那我的方法不对,文件的扩展名并不保证一定有3位啊。A1) 如果你的文件必然有扩展名的话,你可以这来样来:echo ${foo##*

2020-12-28 11:14:49 239

原创 springcloud config使用ssh方式连接git仓库

前言spring config使用的JGIT操作的Git如果配置文件使用properties格式文件设置如下,每行设置\nspring.cloud.config.server.git.uri=git@xxxspring.cloud.config.server.git.strict-host-key-checking=truespring.cloud.config.server.git.privateKey= -----BEGIN RSA PRIVATE KEY-----\n---- key

2020-12-23 14:46:15 1047

原创 记一次ssh连接失败的问题

前言最近在做ci和cd,cd的时候使用ssh连接到服务器的时候,出现问题ssh read: Connection reset by peer,这是咋回事前几分钟都是ok的,之后就出现这样的问题了解题思路检查服务器是否能ping通ping 192.186.2.33ping是通的,因为ping是底3层网络协议,这只能证明底3层网络协议是ok的,ssh是应用层协议,问题需要往上找查日志用ssh -v连接有问题的服务器,会有详细信息输出到屏幕上,如果是客户端出了问题,在log中会打印,如果l

2020-12-12 10:41:42 977 1

原创 chrome升级到87版本使用webrtc对接freeswitch出现问题

Chrome升级到87版本后,使用webrtc对接freeswitch出现如下问题2020-11-20 14:29:59.401577 [ERR] switch_rtp.c:3185 audio Handshake failure 1这是因为Chrome升级后不在支持TLS1.0.1.1,使用openssl的需要把openssl升级到1.0.2或者使用CA证书或者使用opensips做一层转发...

2020-12-01 21:13:54 3132 7

原创 如何在Dockerfile中clone 私库

前言我们经常会在Dockerfile中使用git clone 仓库FROM maven:3.6.0-jdk-8-alpine AS buildRUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories \ && apk add --no-cache gitRUN git clone https://私库如果仓库是公开的也没有什么问题,如果是私库的话,我们会面临以下

2020-12-01 20:56:28 6750

原创 解决sngrep吃满CPU100%

前言sngrep是抓sip包的利器本人在生成环境使用sngrep进行长时间抓包,业务量高峰期的时候经常发现sngrep进程吃满CPU原因因为sngrep默认会捕获机器上的所有的数据库包甚至SSH解决办法BPF过滤是所有libpcap工具(sngrep,ngrep,tcpdump,sipgrep等)中功能最强大的过滤。sngrep portrange 5000-6000 #捕获这些端口之间的所有内容或者,如果您知道本地RTP端口,则可以跳过它们sngrep portange not 1300

2020-12-01 15:30:03 809

原创 华为鲲鹏Kworker进程占用CPU100解决方案

前言最近用华为鲲鹏跑了一段时间服务后,出现了系统负载40多居高不下的情况,一排查发现是kworker进程占用CPU很高,而且还杀不掉。通过华为的监控发现是磁盘I/O很高,重启服务器后能短暂解决问题,但是过几天负载还是会很高,导致很多进程被系统杀死。但是出现问题的就一台鲲鹏,其他的鲲鹏没有出现,通过比较发现内核版本不一样,执行uname -a输出如下正常的鲲鹏Linux kpv7-pbx-0001 4.18.0-80.7.2.el7.aarch64 #1 SMP Thu Sep 12 16:1

2020-11-28 23:17:03 5657 1

原创 华为鲲鹏上安装rtpengine

前言华为上安装rtpengine,遇到的问题主要有2点安装rtpengine很多的依赖不支持arm,需要源代码编译rtpengine使用内核态运行不了,改为用户态运行安装依赖 yum install pkg-config yum install nasm yum install libgnomeui-devel yum install openssl-devel yum install libevent2-devel yum install pcre-deve

2020-11-23 17:06:29 710

原创 opensips常见问题

/tmp/opensips_fifo dont not 原因是使用opensips-cli 会默认加载/etc/opensips-cli.cfg 里面配置了 fifo路径为/tmp/opensips_fifo,所以要创建这个文件使用以下命令opensips fifo dr_reload

2020-11-23 15:38:58 1169

原创 webrtc之使用opensips和rtpengine出现问题

前言使用opensips做信令转发和理由控制使用rtpengine做媒体转发使用jssip做web库出现的问题现象:外呼的时候可以接通,但是没有音频,查看rtpengine日志发现如下错误SRTP output wanted, but no crypto suite was negotiated 解决办法https://github.com/sipwise/rtpengine/issues/1095使用github上1095分支的代码即可...

2020-11-23 15:37:59 1895

原创 Centos7上使用内核态安装rtpengine

web-to-sip 没有音频的问题SRTP output wanted, but no crypto suite was negotiated解决问题https://github.com/sipwise/rtpengine/issues/1095还需要在offer当中设置https://kb.smartvox.co.uk/opensips/webrtc-using-opensips-and-rtpengine/安装rtpenginehttps://blog.kolmisoft.com/rtp

2020-11-23 15:29:35 2781

原创 opensips2.48上使用postgres出现的问题

~/.pgpass does not exist, please create this file and support proper credentials for user postgres缺少这个文件创建方法pg_dump -U someuser -h localhost somedb > ~/.pgpass先用这个方式看下什么错https://www.opensips.org/Documentation/Install-DBDeployment-2-4ERROR: could n

2020-11-14 19:20:14 801

原创 使用GDB调试opensip的core dump

前言如果linux机器上没有gdb的话可以参照这个连接上安装鲲鹏上升级gcc版本安装GDB如何验证机器上gdb有没有默认安装gdb -versionC 或者 C++ 程序运行过程中常常会因为各种异常或者 Bug 而崩溃,比如内存访问越界(例如数组下标越界、输出字符串时该字符串没有 \0 结束符等)、非法使用空指针等,此时就需要调试程序。值得一提的是,在 Linux 操作系统中,当程序执行发生异常崩溃时,系统可以将发生崩溃时的内存数据、调用堆栈情况等信息自动记录下载,并存储到一个文件中,该文件通

2020-11-03 23:19:42 293

原创 鲲鹏上升级gcc版本安装GDB

前言鲲鹏上的Centos版本的gcc默认是4.8.5,安装RTPengie的时候要求GCC的版本需要是GCC5+,所以需要升级下配置编译环境安装wget工具。yum install wget -y获取源码获取“gcc-7.3.0”源码包。cd /usr/local/srcwget https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz编译和安装解压软件包。tar -zxvf gcc-7.3.0.tar.gz

2020-11-03 23:01:37 596

原创 华为鲲鹏-使用docker构建多平台镜像

前言最近在玩鲲鹏,由于鲲鹏的处理器是arm的,很多开源软件如redis最新版本都没有arm的镜像,所以在鲲鹏上运行这些开源软件会有问题解决办法也很简单,把redis源代码拉下来,使用原本的Dockerfile在arm的基础上在打包镜像就好了arm和x86的区别ARM和X86的区别ARM属于精简指令集(RISC)和X86属于复杂指令集(CISC)精简指令集(RISC)和 复杂指令集(CISC)的区别打个比方:比如说我们要命令一个人吃饭,那么我们应该怎么命令呢?我们可以直接对他下达

2020-10-25 12:09:15 2465 1

原创 使用docker搭建opensips3.1

前言使用docker搭建opensips没有什么难的,主要有两个问题docker网络NAT问题opensips3.1 docker版本官方还未更新的问题步奏先安装好dockerclone我fork的仓库git clone https://github.com/daxiondi/docker-opensips.gitcd docker-opensips打包镜像(速度有点慢,耐心等待)make build-3.1安装好后会在本地生成docker image,使用命令查看他

2020-10-25 10:26:12 3882 4

原创 华为鲲鹏服务器安装docker-compose一路坑分享

安装dockerdocker直接按照官网的安装就行安装docker-compose安装docker-compose有两种方式通过github下载,但是看了下都是X86的所以鲲鹏用不了通过pip3方式安装安装Python3要使用pip3首先需要安装Python3,默认机器上安装的是python2.7的,注意不能直接卸载python2.7因为yum就是使用python2X编写的下载Python3wget https://www.python.org/ftp/python/3.6.1/

2020-10-13 20:17:03 576 2

原创 通过docker实现nsq高可用

准备工作准备2台机器192.168.1.21 A机器192.168.1.22 B机器概念nsqlookupd 相当于服务发现,我们不同的机器上的nsqd需要注册到服务发现,并带上nsqd的ip地址,端口默认使用的4150,通过这样实现负载和高可用#启动注意nsqd的端口最好保持默认端口一台机器上启动nsqlookupd,和nsqdversion: '3'services: nsqlookupd: container_name: nsqlookupd image:

2020-10-13 18:49:22 664

原创 WebRTC之Jitsi-meet实现语音转文字

前言Jigasi为我们提供了调用谷歌的api进行语音转文字(transcribe)的功能该功能十分强大,由于默认是实现谷歌的API,国庆访问可能会有问题。大家也可以手动编写代码改成国内云厂商的API。准备工作先搭建稳定的Jitsi服务准备谷歌账号,开启speech-to-text的API(没有的可以找我)下载json文件放入服务器安装谷歌sdk根据官网文档来没啥好说的安装jigasisudo apt install jigasi如果你不使用sip要求你输入的sip账号和密码可以随便填

2020-09-26 23:12:38 1205

原创 Mac下查看已安装的jdk版本及其安装目录

1、打开终端,输入:/usr/libexec/java_home -V 注意:输入命令参数区分大小写(-v是不对的,必须是-V)

2020-09-23 13:54:07 98

原创 使用kurento视频在几秒后卡死记录

使用kurento进行视频通话的时候,手机端的视频会在几秒后卡主。错误日志如下2020-09-17 20:02:38,622262 28868 [0x00007f9902ffd700] debug rtpjitterbuffer gstrtpjitterbuffer.c:1510 gst_rtp_jitter_buffer_src_event() <rtpjitterbuffer0> received custom-upstream2020-09-17 20:02

2020-09-20 23:56:04 577

原创 如何在Linux Shell中读取WebSocket响应

curl “wss://ws-feed.gdax.com”curl: (1) Protocol “wss” not supported or disabled in libcurl推荐使用# installnpm install -g wscat# usewscat -c "wss://ws-feed.gdax.com"

2020-09-20 23:19:54 2303

原创 git常见问题记录

fatal: refusing to merge unrelated historiesgit merge origin/druidfatal: refusing to merge unrelated histories这里的问题的关键在于:fatal: refusing to merge unrelated histories你可能会在git pull或者git push中都有可能会遇到,这是因为两个分支没有取得关系。那么怎么解决呢?在你操作命令后面加–allow-unrelated-hist

2020-09-14 14:37:24 476

原创 webm进度条和修复问题

问题我们使用getUserMedia、MediaRecorder等API生成的webm视频时,会发现视频的进度条无法拖动,等视频播放完一次后,这个进度条就可以拖动了解决办法1.转码为其他视频格式文件2.以上问题的原因是在Chrome独有的,火狐是没有这个问题的。详情问题的原因可以查看以下连接,描述的很清楚,这里不再重复。https://zhuanlan.zhihu.com/p/66503782https://stackoverflow.com/questions/38443084/how-ca

2020-09-07 19:34:56 4153

原创 Jitsi设置websocket访问

Jitsi默认使用XMPP协议的BOSH和http进行绑定也可以使用websocket进行和服务器的绑定jitsi-meet下的config.js设置如下ar config = { hosts: { domain: 'meet.example.loc', focus: 'focus.meet.example.loc', muc: 'conference.meet.example.loc' }, // BOSH URL. FIXM

2020-08-12 18:41:54 2224

原创 mac上设定prosody 用户

prosody需要prosody用户来执行mac上创建用户的命令sudo dscl . -create /Users/prosodysudo dscl . -create /Users/prosody UserShell /bin/bashsudo dscl . -create /Users/prosody RealName "prosody"sudo dscl . -create /Users/prosody UniqueID "1010"sudo dscl . -create /Users/

2020-08-12 18:40:48 199

原创 Prosody如何查询已经注册的用户

WebRTC中文社区是一个为大家解决在使用WebRTC当中遇到问题所建立的社区,欢迎更多学习和使用WebRTC的人加入进来,一起建设。在之前的一篇文章中我们介绍了prosody如何创建用户但是有的时候我们需要查询已经注册的prosody用户,来确保用户已经注册上了查了官方文档后没有发现直接相关的命令具体查看如下ls -l /var/lib/prosody/*/accounts/*如果想使用prosodyctl命令查下,需要下载相关module一般的prosody的modules的路径在/us

2020-08-08 10:11:10 782

空空如也

空空如也

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

TA关注的人

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