
后端其它扩展技术
文章平均质量分 91
后端扩展技术,比如ELK之Elasticsearch、Logstash、Kibana;消息队列 rabbitmq、beanstalkd; 还有物联网协议mqtt中常用的 emqx 等等之类的技术。
林戈的IT生涯
我是林戈!IT技术领域深耕10年+;北京多家名厂闯荡5年+;清华大学硕士;坐标山东从事IT研发和管理工作。之前一直在阿里云运营独立站,2015年起自创技术框架及博客并运营约10年,累计发文1300+篇,2024年3月域名被收购后历经半年多完成将所有博客文章手动迁移至优快云。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
程序采用Jenkins 持续集成部署、发布以及常见问题、解决办法列表
如果不采用工具的话,网站的发布更新是一个简单但麻烦的事情,在这个方面,jenkins是一个很好用的工具。Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括持续的软件版本发布/测试项目。并可监控外部调用执行的工作。今天在本博客平台上部署好了jenkins并实现了一键更新发布。原创 2024-04-24 07:45:00 · 2014 阅读 · 14 评论 -
在Centos7服务器安装使用minio并添加进systemctl启动、Minio 使用 Nginx代理后put文件上传总是返回403问题及Pycharm开发IDE同时可以打开多个项目
然后即可以通过systemctl启动minio,在这中间我曾碰到使用systemctl启动后命令行被阻塞,并且启动一段时间后报超时错误:minio.service start operation timed out. Terminating.Exiting on signal: TERMINATED,failed to start Minio错误,后来偶然通过添加配置:TimeoutStopSec=0后重新start minio成功,但之后去掉这行配置依然不会再出现这样的错误。可能与这配置并无关系。原创 2024-10-21 07:00:00 · 1642 阅读 · 0 评论 -
物联网消息队列Emqx日志配置及日志追踪以及Centos7上的rc.local开机不执行、git提交的小问题
即我们可以将某个用户或某个主题的日志分离出来统计到指定日志文件中,在使用日志追踪功能之前,必须将 primary log level设置为debug,然后可以开始指定日志追踪规则。EMQX 的默认日志级别为 warning,默认在单日志文件超过10MB(log.rotation.size配置)的情况下,滚动日志文件。查询已经开启的日志追踪,可以看到多了两条追踪的逻辑,并且在日志文件中也能看到增加了my_client.log,tail查看其中的内容可以一目了然地看到用户发送接收的指令数据。原创 2024-10-18 19:05:13 · 1606 阅读 · 0 评论 -
Nginx检测漏洞处理:TTP连接持续时间230秒过长的处理、增加MaxClient、MySQL版本漏洞建议更新到8.0.36、8.2.1或更高版本及MySQL8.4的特性了解
MySQL的最新版本已经来到了 8.4。另外可以考虑对一些涉及大文件传输的URL进行单独的 proxy_read_timeout 和 proxy_send_timeout 设置,这样使得整体 proxy_read_timeout 和 proxy_send_timeout 配置合理。要启用它,请使用--mysql native password=ON(在mysql 8.4.0中添加)启动服务器,或者在mysql配置文件的[mysqld]部分包含mysql_native_password=ON。原创 2024-10-22 07:00:00 · 1194 阅读 · 0 评论 -
Ubuntu18.04下列式存储ClickHouse的安装使用以及Clickhouse的客户端可视化工具DBeaver的使用
之前和篇文章介绍ClickHouse的可视化工具Tabix的安装和使用(还未迁移,请在本博客中搜索 可视化工具Tabix 进行查找) ,Tabix是安装在服务器上的工具,访问时使用浏览器访问Tabix工具界面,今天要介绍的另一个可视化工具是一款客户端工具DBeaver。除此之外还有其它几个选项:--ask-password, --port, -C [ --config-file ] arg。--host, -h -– 服务端的host名称, 默认是localhost。--user, -u – 用户名。原创 2024-10-14 13:00:00 · 1157 阅读 · 0 评论 -
代码持续集成jenkins之fabric模块更多功能以及Jenkins发布脚本及逻辑的优化-隐藏发布脚本保护服务器的账号数据
task是fabric需要在远程服务器上执行的函数,在fabric中有3中用方法定义一个task,默认情况下,fabfile中的所有函数对象都是一个task,但是如果我们使用了task装饰器,显示的定义了一个task,那么其他没有通过task装饰器装饰的函数将不会被认为是一个task。3.遍历任务列表,对于每一台服务器分别执行任务,可以将任务列表和服务器列表看作是两个for循环,任务列表是外层循环,服务器列表是内存循环,fabric默认是串行执行的可以通过装饰器或者命令行参数确定任务执行的方式。原创 2024-10-08 07:00:00 · 985 阅读 · 0 评论 -
Elasticsearch7.7设置账号密码时的逻辑矛盾问题和文章相关评论
你去看看你们公司的REDIS服务器,看看有多少设置了密码,至少我公司不相关的部门的业务,他们的REDIS我都能远程登录(因对接关系我知道了redis服务器IP)。好吧,回到Elasticsearch7.7的密码设置问题上来吧,说说我遇到的Elasticsearch设置账号密码时的矛盾问题,很扯蛋。不过也不要上纲上线,因为这问题肯定是可以解决的,但我在写这篇笔记的时候还没有找到方法,而我又想基于此留下点笔记。我也遇到了,各种研究破案了,需要先制作证书,然后在各个节点上添加,集群起来后才能修改,完美解决。原创 2024-09-28 13:00:00 · 1374 阅读 · 0 评论 -
Nginx配置中添加支持WebSocket、Nginx允许多个域名又不使用*号的跨域访问配置以及关于nginx进程模型、事件模型、WEB事件、信号、定时器等nginx运行机制介绍
Nginx自从1.3版就支持WebSocket,也可以为WebSocket应用程序做反向代理和负载均衡。Websocket使用ws或wss作为统一资源标志符,类似于HTTP或HTTPS,默认Websocket的ws协议使用80端口;运行在TLS之上时,其中wss表示在 TLS 之上的 Websocket,相当于HTTPS。wss协议默认使用443端口。wss就是ws基于SSL的安全传输。WebSocket一种在单个TCP连接上进行全双工通讯、允许服务端主动向客户端推送数据的协议。原创 2024-09-27 13:00:00 · 1949 阅读 · 0 评论 -
ELK中的Logstash安装和使用、logstash根据指定的grok规则拆分nginx日志:LogStash::ConfigurationError:message Expected
修复了格式问题之后我再进行了启动LogStash,启动正常且数据也能从filebeat输入LogStash,但仍然出现问题,因为filter设置的规则没有起作用,想分离出来的字段没有看到。通过LogStash终端数据也可以看到tags字段中有提示信息 beats_input_codec_plain_applied,_grokparsefailure,说明filter规则不对,但正如开遍所说,我这些规则在grokdebug中都调试通过了的。另外使用QS会引起错误,我这里改成了使用DATA,简单好用。原创 2024-09-26 13:00:00 · 657 阅读 · 0 评论 -
ELK中日志数据采集器Filebeat的安装和使用、Filebeat结合Logstash进行日志处理入Elasticsearch以及Resource interpreted.. text/plain
Filebeat是Beats中的一种,Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引等。进入logstash目录,增加config下nginxlog.conf配置文件,设置数据input来源的beats端口,以及output设置为elasticsearch的hosts列表,指定index名称。这时Filebeat 就派上用场了,FileBeat提供一种轻量型方法,用于转发和汇总日志与文件。原创 2024-09-26 07:00:00 · 1342 阅读 · 0 评论 -
Elasticsearch7.7修改network.host IP地址 start启动失败及Elasticsearch7的配置项详解
使用的是最新的Elasticsearch7.7版本,启动后默认是绑到127.0.0.1上的,这肯定不是我们需要的,所以修改配置文件将network.host配置选改成我们的服务器局域网IP地址。集群名称,es服务会通过广播方式自动连接在同一网段下的es服务,通过多播方式进行通信,同一网段下可以有多个集群,通过集群名称这个属性来区分不同的集群。gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,hadoop的HDFS,和amazon的s3服务器等。原创 2024-09-25 07:00:00 · 2366 阅读 · 0 评论 -
在已安装的openresty上添加安装upstream模块报错的解决以及使用Consul服务发现时定时变更nginx的upstream的shell脚本
资源足够可以使用dns动态解析,upstream直接配置成域名,通过内部DNS解析随时变换后端的服务IP地址,还有一个比较经济有效的方法,就是改造nginx,比如安装一些如dyups动态upstream的模块来实现。我这里暂时就不去尝试了。add-module添加已经准备好的第三方模块,make安装完之后,build/nginx-1.15.8/objs/目录下的nginx文件即是我们要用的文件,可以再使用nginx -V查看是否已经安装好需要的模块,替换nginx文件后杀掉nginx重启之后即可。原创 2024-09-22 13:00:00 · 1231 阅读 · 0 评论 -
nginx和php-fpm连接超时的相关配置以及Nginx中的try_files以及root、alias的使用
最后上面提到的try_files查找路径的事情,nginx中对路径的指令有root和alias,root会持续继成,在location中匹配后,会将匹配的location中的root路径替换访问url的host从而得到文件的真实地址。在解决服务器超时的问题时,首先按照上面的这些配置项去逐一排查,如果一切没问题,直接请求服务器时理论是OK的了,这时如果再有超时问题,需要排查域名解析到你的服务器的中间环节会不会有超时设置问题,比如CDN上的回源请求超时等待时间以及其它的中间负载均衡出的问题。原创 2024-09-20 07:00:00 · 1849 阅读 · 0 评论 -
jenkins代码发布平台No module...named fabfile、Jenkins提示Access Denied没有全部Read权限问题及python版本导致ImportError
有段时间没有调试jenkins代码发布功能了,今天对线上的业务进行发布功能的调试,jenkins平台之前已搭建,但因为代码一直在调试代码,今天才开始着手发布脚本的处理。碰到了一些报错,不过兵来将挡,水来土掩,有问题一个个解决:1.报错fab: not found,解决办法:未安装fabric模块2.安装fabric模块之后发布报错:Can't find any collection named 'fabfile'。在google上才知道farric2.x版本的改动挺大,不再使用fab -f 而是使用f原创 2024-09-18 13:00:00 · 1999 阅读 · 0 评论 -
Ubuntu下beanstalkd无法绑定局域网IP地址以及消息队列beanstalkd上的error: JOB_TOO_BIG的解决
真是奇怪,难道是防火墙的问题?但telnet通过stats查看仍然没有变化,后看到有DEBIAN用户说在/etc/sysconfig/beanstalkd中添加MAX_JOB_SIZE=-z 524280 选项解决问题,不过我使用的ubuntu,找到/etc/default/beanstalkd配置文件,上篇文章: ubuntu下beanstalkd无法绑定局域网IP地址 刚解决过/etc/default/beanstalkd不生效的问题,在这里添加MAX_JOB_SIZE配置后成功了。原创 2024-09-14 14:15:00 · 1076 阅读 · 0 评论 -
debian服务器上搭建git服务及添加文件提交拉取的操作记录、在Ubuntu上搭建Jenkins服务以及Ubuntu中的PPA源及PPA的安装使用
从上图中能清楚看到使用add和commit提交的文件在另一台服务器上使用pull是拉取不到的,因为这时还没有进入remote远程仓库,而只有再使用了push操作后才能在另外一个中使用pull拉取到。PPA是一个区别于官方软件仓库的另一仓库,每个版本的Ubuntu都有自己的四个官方软件仓库,包括Main - Canonical 支持的自由开源软件、Universe - 社区维护的自由开源软件、Restricted - 设备的专有驱动程序、Multiverse - 受版权或法律问题限制的软件。原创 2024-09-14 07:01:27 · 990 阅读 · 0 评论 -
初始化CentOS6服务器部署Lnmp[php7.1.3+redis+sphinx2.2的全过程及使用fastcgi_finish_request提高页面响应速度提升用户体验
不过在使用fastcgi_finish_request也要注意踩到坑,之前我在用户头像上传的程序中增加一段头像审核功能的开发过程中就遇到一个坑,就是在当前接口服务器端拿到用户上传图片后提前客户端返回已成功提交后,客户端会立即使用用户ID拼接头像地址去访问用户头像,但此时服务器端尚未将头像上传至ftp图片服务器,造成图片差异的问题。在浏览器中的体现是页面上是有问题的,但是在Chrome浏览器里进行代码审核点击图片地址正常,如果一开始没有想到这个fastcgi_finish_request,还真以为见了鬼呢。原创 2024-09-09 09:14:57 · 871 阅读 · 0 评论 -
Nginx配置多核CPU的配置项worker_cpu_affinity使用方法以及代理服务twemproxy的重启文件nutcracker.init配置及测试
我们的服务器只配置了worker_processes,但在进行压测的时候各CPU的使用率会同步上升,worker_processes配置是指定启动多少个nginx进程,linux会自动进行任务分配,所以压力上来后各CPU都会进行负载,所以worker_processes配置肯定是启到了启用多核CPU的作用。#自动绑核 私以为,此作用是将worker进程绑定到CPU核心上,减少CPU切换时缓存失效及上下文的开销,是在极端情况下才会有明显效果的做法,如果qps很低,那开启与否影响不大。原创 2024-09-07 13:00:00 · 1726 阅读 · 0 评论 -
WEB即时通讯-WEB消息推送-服务器推送以及使用goeasy第三方服务快速实现WEB服务器端实时推送
goeasy的实现原理也很简单,我们在WEB端嵌入一段goeasy的JS代码,用户在请求到我们的WEB服务器返回的http结果后执行js代码请求goeasy,这样goeasy就为客户端进行了身份标记并保持了连接(如果关闭浏览器则就会断掉),然后我们的WEB服务器向goeasy发送消息指定推给哪些用户(每个用户都有身份标记,可以是多个用户同一个标记),然后就把工作交给goeasy了,它会负责把这个消息发送给所有未中断的客户端,并在goeasy的后台中有详细的统计数据。如下是html和js代码。原创 2024-09-03 13:00:00 · 815 阅读 · 0 评论 -
php中安装添加自定义的C扩展程序-ext_skel工具及php扩展程序开发中的参数接受及处理-zend_parse_parameters函数及nginx指令、内核参数优化等
publish:May 13, 2019 -Monday 扩展程序就你是PHP内置的程序,和php代码执行不一样,扩展程序在php进程启动时便已自动加载,所以其执行效率和性能比PHP代码高很多。多年前在硬件资源很受限的时代,程序员总是要想尽办法省资源提升代码性能,但现在硬件越来越廉价,对代码性能的极致得升已经变得越来越少考虑的事情了,也许有一些大公司还在使用自己的C扩展吧,对于一般的公司而言,着实没有必要去搞自己的C扩展程序,毕竟使用自定义的C扩展程序维护起来会很麻烦。原创 2024-09-02 13:00:00 · 1286 阅读 · 0 评论 -
sphinx中searchd搜索服务命令的一些有用的选项-io、cpu统计日志及status状态信息及nginx中的worker_connections配置和获取处理请求的机制
那么,我们前面有说过一个客户端连接过来后,多个空闲的进程,会竞争这个连接,很容易看到,这种竞争会导致不公平,如果某个进程得到accept的机会比较多,它的空闲连接很快就用完了,如果不提前做一些控制,当accept到一个新的tcp连接后,因为无法得到空闲连接,而且无法将此连接转交给其它进程,最终会导致此tcp连接得不到处理,就中止掉了。很显然,这是不公平的,有的进程有空余连接,却没有处理机会,有的进程因为没有空余连接,却人为地丢弃连接。最后,nginx或客户端来主动关掉连接,到此,一个连接就寿终正寝了。原创 2024-08-31 13:00:00 · 1936 阅读 · 0 评论 -
openresty出现错误:lua tcp socket read timed out问题以及lua环境开发的一些小点输出header头、关闭lua缓存、模块Etags
在三次握手中,主动关闭的一方发出FIN,同时进入FIN_WAIT1 状态,被动关闭的一方响应ACK,从而使主动关闭的一方迁移至FIN_WAIT2状态,接着被动关闭的一方同样会发出FIN,主动关闭的一方响应ACK,同时迁移至TIME_WAIT状态。D,客户端请求服务端,服务端依然会对请求进行处理并得到要返回的数据,将数据进行计算得出Etag值例如:2a7093b56217da29835efed487332501,和请求端的ETag比较,如果一样就返回304状态,如果不一样就响应200.原创 2024-08-26 07:00:00 · 1199 阅读 · 0 评论 -
linux下试验中间件canal的example示例-binlog日志的实时获取显示以及阿里巴巴中间件canal.kafka将mysql-bin日志直接传入kafka消息队列
canal启动后日志显示examplep repare to find start position just show master status 开始寻找开始点,因为canal的配置中canal.instance.master.position项没有填写,所以这个如果mysql没有数据变化canal会一直停留在这里直到mysql数据库有变化,也即是从启动canal开始认为是数据变化的起始点 publish:October 23, 2018 -Tuesday。如此也算是成功走完了canal的功能流程。原创 2024-08-25 13:00:00 · 1254 阅读 · 0 评论 -
关于thinkPHP3.2中的rewrite不严谨问题会导致网站被注入以及nginx配置中的if多条件判断问题-阿里云阻止指host访问
但这明显是有问题的,那么如果直接请求存在的PHP文件或者其它文件呢?于是我带着程序语言的逻辑认真地检查配置文件的语法,依然没发现哪里有异常,后来才知道nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算,而且不支持if的嵌套语法:nginx通过ngx_http_rewrite_module模块支持url rewritet和if条件判断,但不支持else。#在rewrite中,如果使用小括号(),那么在小括号之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。原创 2024-08-24 07:00:00 · 2121 阅读 · 0 评论 -
阿里巴巴中间件canal的搭建和使用以及linux命令下使用mail发送html格式的邮件
canal是应阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求时开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。不过删除重建的方案可行。后面再找问题并重试吧。其它事项:mysql的日志默认使用的都是UTC,因此会造成显示数字与北京时间相差8个小时,如下示例为下午15:12显示的日志,在MySQL 5.7.2新增了log_timestamps 这个参数,该参数主要是控制 error log、genera log,等等记录日志的显示时间参数。原创 2024-08-23 13:00:00 · 915 阅读 · 0 评论 -
单服务器Centos环境下Kafka (zookeeper)的安装搭建和基本使用
在启动消费者,kafka有版本差异问题,新版本不再使用--zookeeper,而使用--bootstrap-server,所以新版本里如果使用--zookeeper会提示zookeeper是一个不可识别的选项。这样kafka的简易环境就算搭建完成了。安装前的基本环境检查和准备,我这里的服务器系统是CentOS release 6.8 (Final),准备安装Kafka版本:2.0.0,因为kafka需要运行java环境,看了一下我服务器上已经装过了jdk,如果没有安装JDK,直接使用yum安装即可。原创 2024-08-23 07:00:00 · 1332 阅读 · 0 评论 -
简单的mail发送邮件里面的更多东西-postfix-exim MTA试验以及linux下使用mail发送邮件的简单实现
我在测试的时候同时看到在上面的情况下,邮件一直在尝试发送,exim未启动,但是邮件并不会丢弃,如果此时将默认MTA切换至postfix,你会发现之前未发送成功的邮件会全部发送成功。在一篇文章 探讨了邮件发送里MUA与MTA之间的联系,通过mail或者mailx命令调用MTA(postfix,exim甚至sendmail等)执行发送都是可行的方案,但在执行的时候会发现一个情况,那就是发出去的邮件,在收件箱里显示的发件人都是服务器的用户名@主机名,并且使用postfix和exim时这个还不一样。原创 2024-08-22 07:00:00 · 1383 阅读 · 0 评论 -
找到了一款永久免费的https证书并自动续期的产品certbot-auto以及免费https服务certbot-auto的使用注意事项
实现了免费的https证书,但是那只是一个自验证的https证书,在浏览器里会被提示安全性有问题,网上各种云服务器上有很多https服务,但那些都是要花钱的,而且价格不菲,一年上千的都很多,不便宜啊。publish:July 26, 2018 -Thursday 之前使用certbot-auto注册过多个域名,但在使用中也碰到了一些问题,第一是同一个域名注册有限制,因为第一次使用,重复进行了多次activate HTTPS,导致后来再使用时碰到如下提示:即超过了次数限制。这个量对一般的用户已经足够了。原创 2024-08-20 07:00:00 · 1088 阅读 · 0 评论 -
nginx响应504的超时问题及php的慢日志事宜以及php中测试使用beanstalk消息队列的所有可用方法
说明:slowlog = var/log/$pool.slow.log这项直接写成绝对地址更好,我开始用的log/$pool.slow.log这个文件地址,发现PHP在加载的时候去加载PHP安装目录下这个目录,而不是自动去加载var/log/这个目录,而因为安装目录下不存在log目录,导致php重启失败。注:上方的配置中有一个$pool,这个是利用了此配置文件中配置的pool name:,文件名称自动成为www.slow.log。重启PHP后即可在var/log/目录下发现www.slow.log。原创 2024-08-15 13:00:00 · 697 阅读 · 0 评论 -
php连接sphinx的长连接事宜以及sphinx的排除查询以及关于sphinx里使用SetSelect进行复杂的条件过滤或复杂查询
在一台WEB上打开长连接,同时观察着sphinx的连接数据(我这里中间有haproxy作为中转),如果这个长连接能实现php与searchd的长连接,那么改了一台服务器后,因为线上一直有请求,则我的WEB上所有的PHP-FPM进程就应该都能保持一个与sphinx的连接(单台WEB上是60个php进程,理论上应该proxy上的sphinx请求能增加到60左右),而如果真是在php请求结束后就断开sphinx,则不会对proxy上的数据有任何影响。写sphinx的复杂查询就相当于写mysql的where条件。原创 2024-08-15 07:00:00 · 1183 阅读 · 0 评论 -
关于sphinx中的字段field和属性attr及指定字段搜索的实现及对sphinx中的SetGroupBy和SetFilterRange功能的尝试及sphinx批量查询
SPH_MATCH_EXTENDED,扩展匹配模式。可以让用户指定某个字段搜索关键词。SPH_MATCH_EXTENDED不加任何指定字段限制,它就相当于使用SPH_MATCH_ALL, 即匹配所有查询分词,比如搜索“中国铁路”,搜索时会进行分词成“中国”和“铁路”,默认就是必须同时出现这两个词才算结果满足查询条件。但不需考虑顺序(SPH_MATCH_PHRASE则要求中国必须出现在铁路的前面。针对自定义生成的xml文档,我们需要调用xmlpipe流提供者的Shell命令。原创 2024-08-09 07:00:00 · 1156 阅读 · 0 评论 -
haproxy安装报错pcre.h: No such file or directory、MYSQL主从同步及haproxy配置mysql负载时遇到...communication packet问题
就是缺少pcre的devel模块,在centos中执行安装pcre-devel即可。在创建同步账号一定要记录权限问题,mysql的host中要使用匹配时使用%号,而不是使用*。今天开始使用的*号,在进行start slave命令后发现从库的两个值Slave_IO_Running,Slave_SQL_Running:看Slave_SQL_Running的值是Yes,但是Slave_IO_Running的值是Connecting,是一直在连接。原创 2024-08-07 07:00:00 · 976 阅读 · 0 评论 -
关于微信第三方平台开发的完整流程笔记以及 一个实现将文本文件切割成多个文件的shell代码
微信开放平台的第三方平台功能开发,可以理解为运营者实现微信公众号、小程序进行运营的一个第三方工具,让公众号或小程序运营者在面向垂直行业需求时,可以通过一键登录授权给第三方开发者,从而在第三方平台上完成公众号或小程序的运营管理。对于第三方平台需要进行以下三个大步骤1,首先想成为第三方平台,必须通过开发者资质认证,这项必须是以企业来申请。2,创建第三方平台,认证后,在管理中心可以创建第三方平台,同时着手开发第三方平台。3,开发完成后申请全网发布。原创 2024-08-06 13:00:00 · 1022 阅读 · 0 评论 -
关于sphinx搜索进程searchd启动工作进程数及mysql查询方式及coreseek以xml作索引时sphinx/coreseek xmlpipe2 support NOT compiled问题
即sphinx的searchd服务模式可以是多处理模式MPM,如下为启动一个searchd之后,可以看到随即searchd即启动了10个工作进程。这是为什么呢?sphinx的searchd配置中有一项workers配置,这项配置决定了sphinx的searchd工作进程的启动方式和个数。原创 2024-08-05 07:00:00 · 1104 阅读 · 0 评论 -
php生成xml文件的封装类文件-可生成带缩进格式化的xml文件及关于opcache缓存的操作小工具cachetool的使用
可以方便的使用命令行清除opcache的缓存。有一个需求,生成的xml文件格式需要格式化好,xml文件在浏览器里看到的样子,一行一行内容,并且不同级别间有内容的缩进控制。封装的类文件及试验类的下载地址 php生成缩进格式的xml文件的封装类及测试 见本博客中的资源搜索。但是opcache_reset()是php中的函数,需要在php脚本中执行,另外当PHP以PHP-FPM的方式运行的时候,opcache的缓存是无法通过php命令进行清除的,只能通过http或cgi到php-fpm进程的方式来清除缓存。原创 2024-08-04 07:00:00 · 1019 阅读 · 1 评论 -
sphinx索引中关于indexer里的mem_limit配置项的大小限制 及安装coreseek4.1的sphinx时出现undefined reference to libiconv_open错误
以下为sphinx的.conf配置文件里的indexer配置。从报错中可以看到mem_limit=-2097152 kb too low,此值2097152即是2048M。但是配置文件认为这个配置too low,可见这个配置sphinx不认可。官方文档中找到这么一段话,原文和译文如下:索引RAM使用限制。可选的,默认32M。强制内存使用限制后索引器不会超出。可以以字节或千字节(使用K postfix)或兆字节(使用M postfix)这些单位指定这个配置;看到这个例子。原创 2024-08-03 13:28:24 · 885 阅读 · 0 评论 -
coreseek4.1使用sphinx做索引的索引控制shell脚本及逻辑 及 linux安装coreseek4.1的sphinx服务及中文分词mmseg的报错解决方法
sphinx做索引时索引数据来源可以有多种方式,比如数据库mysql,pgsql,mssql,odbc,也可以是python脚本,也可以是xml数据文件,xmlpipe (publish:November 1, 2017 -Wednesday)。原创 2024-08-03 13:27:06 · 1162 阅读 · 0 评论 -
关于cacti监控-如何理解cacti统计图表的数据-cacti流量图怎么看及linux下svn常用管理命令及svn忽略文件目录-设置vimdiff来比较差异
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具,是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。关于Cacti上的图表,对一般的WEB服务器来说,几个重要的数据包括网卡流量监控、CPU、内存使用率监控以及服务器负载。原创 2024-07-31 07:00:00 · 1506 阅读 · 0 评论 -
nginx模块nginx_upstream_check_module可检查后端服务器的健康情况及nginx安装时报错:Embed is required问题
nginx可做反向代理,但nginx并不知道后端的业务是否可用,如果后端服务器宕机的话,nginx自身并不能把这台realserver踢出upstream,这时就需要一个检查后端服务器的机制。nginx第三方模块nginx_upstream_check_module就可以做这样的事:检查后端服务器的健康情况。nginx_upstream_check_module是淘宝技术团队开发的nginx第三方模块,如果后端服务器不可用,则所以的请求将不会转发到这台服务器。原创 2024-07-29 07:00:00 · 788 阅读 · 0 评论 -
xhprof安装了graphviz还报错failed to execute cmd “ dot -Tpng“ 及 beanstalk命令行下操作示例-命令下行如何put数据进tube
使用XHProf我们肯定需要查看它强大的图形统计结果分析图,而xhprof是用dot进行绘图的,在xhprof程序安装包中xhprof_lib/utils/callgraph_utils.php文件中可看到方法function xhprof_generate_image_by_dot()中有接头这个CMD命令。Dot是什么?dot是一个适合程序员使用的绘图工具。让你可以用几行代码就能绘制出一些流程图出来。dot本身是Graphviz工具包中的一个工具。原创 2024-07-24 13:00:00 · 901 阅读 · 2 评论