linux 安装go

普通 cd /usr/local wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz tar -xvzf go1.17.2.linux-amd64.tar.gz #环境变量 vi /etc/profile export GOROOT=/usr/local/go #你的go语言包的位置 export PATH=$PATH:/usr/local/go/bin #添加go语言包的bin到path变量里 export GOPATH=/root/gopath #go的项目存放地址,以后你的go项目需要放在哪里,这个你自己随意设置,重要的...

基于docker的php开发环境,多容器

之前写过一篇 vagrant + virtualbox搭建一个可移动的开发环境,现在有了更好的选择,基于docker的php开发环境 拥有前者所有的优点 https://github.com/chudaozhe/dev-environment-php

Supervisor进程守护监控

应用场景 工作中可能要写一些cli脚本,需要后台运行,一般会用 nohup command & nohup /usr/bin/php /www/test.php >> /var/log/test.log 2>&1 & 但这样会有一些问题,不能监控进程状态,异常退出时不能自动重启,这时候 supervisor 是更好的选择 注意:像nginx, mysql, php-fpm等,还是推荐系统级的systemctl 安装 #centos/redhat/fedora yum install supervisor #Debian/Ubuntu可通过apt安装 apt-get install su...

RabbitMQ通过websocket与前端通信

本文主要介绍的是RabbitMQ的一个插件 —— STOMP,还有一个MQTT插件,也是不错的选择,详见:RabbitMQ插件之MQTT 如何安装rabbitmq,请移步:http://www.cuiwei.net/p/1371869141 启用stomp插件 vi enabled_plugins [...,rabbitmq_stomp,rabbitmq_web_stomp]. 重启rabbitmq后,访问 RabbitMQ Management 可以看到 http/web-stomp服务(ws)已经启动了,在15674端口上了 https/web-stomp服务(wss)已经启动了,在...

使用 Beanstalk 实现微信支付的异步通知

Beanstalk介绍 Beanstalk是一个基于内存的(binlog持久化到硬盘),事件驱动(libevent),简单、快速的任务队列,支持大部分编程语言,将前台的任务转为后台异步处理,为web开发提供更高弹性。它可以支持多个server(客户端支持),一个任务只会被投递到一台server,一个任务只会被一个消费者获取(Reverse)。 使用Beanstalk任务队列提升PHP异步处理能力,降低程序耦合度,使前台更专注,后台处理耗时、扩展性任务(也可以使用其他语言开发),使得web架构更具扩展性。 相比RabbitMQ,Beanstalk作为一个任务队列,设计比较简单,支持以下特性: ...

Redis 中的订阅消息转发到 WebSocket 客户端

WebSocketTest.php <?php class WebSocketTest { public \Swoole\WebSocket\Server $server; public function __construct() { $this->server = new Swoole\WebSocket\Server("0.0.0.0", 9502); $this->server->on('open', function (Swoole\WebSocket\Server $server, $request) { e...

使用puppeteer爬取spa单页(vue/react)

docker 部署 puppeteer 官方提供的Dockerfile1️⃣ FROM node:12-slim # Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others) # Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer # installs, wo...

在k8s上部署一个前后端分离的项目

4台虚拟机 |节点|系统|IP|备注| |-|-|-|-|-| |master|CentOS-8|192.168.10.90|主节点| |node1|CentOS-8|192.168.10.91|节点1| |node2|CentOS-8|192.168.10.92|节点2| |NFS|CentOS-8|192.168.10.99|文件系统,用于存储项目文件及日志| 准备 基于vagrant搭建k8s集群 linux 搭建 nfs 服务 一个前后端分离的项目 用户端(shop-h5):vue + vant 管理员端(shop-admin):vue + element ui 服务端(...

基于docker的 EFK 日志分析系统

EFK 不是一个软件,而是一套解决方案。EFK 是三个开源软件的缩写,Elasticsearch,Fluentd,Kibana。其中 ELasticsearch 负责日志分析和存储,Fluentd 负责日志收集,Kibana 负责界面展示。它们之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志分析系统解决方案。 本文主要基于Fluentd实时读取日志文件的方式获取日志内容,将日志发送至Elasticsearch,并通过Kibana展示。 启动服务 docker-compose -f docker-compose.yml up -d 验证服务是否已正常启动 ...

k8s 持久化存储

为什么需要持久化存储: 1、使得使用资源的pod的生命周期与存储卷的生命周期分开 2、使得使用资源的pod在被重启后仍然能够使用之前的存储卷 3、使得使用资源的pod在被调度到其它节点后仍然能够使用之前的存储卷 Host类型volume 测试用 - 仅适用于单节点k8s apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 1 template: metadata...