- 博客(31)
- 收藏
- 关注
原创 hyperf实现Rpc服务(docker+consul)
在开始搭建hyperf的rpc环境之前,需要准备两台服务器,配置好php与swoole的环境,并且在其中一台服务器中部署好consul服务,其中php的环境配置与consul的搭建,可以在小编的其他篇章的文章中获取,基本环境如下。
2022-11-03 10:59:49
1026
1
原创 laravel使用rabbitmq
生产者在把消息推送到laravel的事件监听中,初始化生产者配置,创建rabbitmq的所需要绑定的交换机,路由,队列,并且进行绑定。并且监听消费者,当有消息消费时,则从rabbitmq的队列中获取消息,消费成功进行ack。两个消费者消费消息,并不是轮询的,而是看谁空闲,则由谁来消费,如果都空闲,则随机,如果消费者处理不过来,可以增加多几台服务器,一起进行消息的消费。注为何能在其他服务器监听到别的服务器监听到laravel发布的消息?因为在监听队列的时候,指定了rabbitmq为驱动。......
2022-08-01 11:08:12
4443
11
原创 基于laravel探索rabbitmq的高级特性
Pro发送消息到MQ,MQ接收到消息后,产生回响应给Pro,Pro中有一个ConfirmListener异步监听响应应答消息的确认Pro投递消息后,如果MQ收到消息,则会给Pro一个应答Pro接收应答用来确定这条消息是否正常地发送到MQ,该法也是消息可靠性投递的核心保障!用户对于同一操作发起的一次请求或者多次请求的结果是一致的—ReturnListener用于处理一些不可路由的消息。也是生产段添加的一个监听。...
2022-07-30 11:31:31
835
1
原创 基于swoole打造laravel的rpc框架
为了深入了解swoole是如何对框架进行加速与提供php服务的功能,以及了解rpc微服务的原理,在基于composer的psr-4规则下,搭建一套简单的类似laravel的框架,起名为swostar,swostar框架中以IOC容器与Provider为核心,对所有的服务进行单利绑定(bind)与服务解析(make),Provider加载要提供的服务。其中提供的主要核心功能有路由解析,控制器的加载,event事件注册,rpc服务提供,consul服务提供。............
2022-07-26 15:08:05
1015
1
原创 laravel使用elasticsearch
laravel 配置 esconfig/database.php.env 配置初始化 Elasticsearch 对象,并注入到 Laravel 容器中:App/Providers/AppServiceProvider.php注释:在laravel容器中自定义一个名为es的服务对象,通过ESClientBuilder以及配置文件中的信息连接到es,我们可以通过app(‘es’)->info()查看连接之后的es对象信息。注册完成后,进行测试结果如下:.....................
2022-07-04 17:52:58
2858
3
原创 Logstash从mysql同步数据到es
Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。Logstash 是一个功能强大的工具,可与各种部署集成。 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据。 如果你的数据需要 Beats 中没有的其他处理,则需要将 Logstash 添加到部署中。logstash安装部署1 . 拉取logstash镜像 (需要与es版本对应)2 . 构建logstash容器3 . 进入logstash容器内部安装
2022-06-28 10:51:54
2886
2
原创 es的基本操作
查看索引列表查看索引的全部内容普通查询布尔查询,多条件查询其中bool代表此查询为布尔查询,也就是多条件查询,而must则是and的意思,就是后面集合里的所有条件都要满足:OR查询:(should)Where Not 查询:(must_not)过滤查询查询name带有Book或者price等于8888,并筛选出1000.........
2022-06-23 15:27:49
266
原创 es与mysql数据同步 (go-mysql-es)
go-mysql-elasticsearch是一款开源的高性能的Mysql数据同步ES的工具,其由go语言开发,编译及使用非常简单。go-mysql-elasticsearch的原理很简单,首先使用mysqldump获取当前MySQL的数据,然后在通过此时binlog的name和position获取增量数据,再根据binlog构建restful api写入数据到ES中要同步的mysql数据表必须包含主键,否则直接忽略,这是因为如果数据表没有主键,UPDATE和DELETE操作就会因为在ES中找不到对应的
2022-06-23 10:29:15
2066
2
原创 基于Docker的ELK部署
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。1 . docker获取es的镜像2
2022-06-21 17:05:03
3980
原创 基于Consul,Nginx-UpSync动态负载均衡
基于Consul,Nginx-UpSync动态负载均衡1 . nginx reload的问题问题描述nginx reload是有一定损耗的,如果你使用的是长连接的话,那么当reload nginx时长连接所有的worker进程会进行优雅退出,并当该worker进程上的所有连接都释放时,进程才真正退出。对于社区版nginx目前有三个选择方式:Tengine 的Dyups模块。微博的Upsync+Consul 实现动态负载均衡。OpenResty的balancer_by_lua(又拍云使用其开源
2022-05-06 14:32:48
1588
原创 基于swoole实现配置中心
基于swoole实现配置中心简介:应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期 ,微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余 。而配置中心将配置从各应用中剥离出来,对配置进行统一管理配置中心的服务流程如下:1、管理员在配置中心更新配置信息。2、服务A和服务B及时得到配置更新通知,从配置中心获取配置。总得来说,配置中心就是一种统一管理各
2022-05-01 16:57:01
857
1
原创 基于swoole(rpc),consul实现服务的注册与发现
使用原生的swoole实现rpc的调度,并通过consul进行服务的注册与发现
2022-04-27 10:39:19
1416
1
原创 Docker安装consul
consul注册发现1 . 1 . consul简介? consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与 发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其 他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要 运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以 保证数据安全,同时保证server-lead
2022-04-26 10:49:53
3426
原创 Laravel - JWT登录与验证
Laravel - JWT登录与验证参考文献:https://learnku.com/articles/10885/full-use-of-jwt安装jwt-auth# 建议使用1.0以上版本composer require tymon/jwt-auth 1.*@rc发布配置# 这条命令会在 config 下增加一个 jwt.php 的配置文件php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServ
2022-04-24 17:00:04
1618
原创 基于redis-stream类型实现商品的异步发布
基于redis-stream类型实现商品的异步发布简介 Redis5.0带来了Stream类型。从字面上看是流类型,但其实从功能上看,应该是Redis对消息队列(MQ,Message Queue)的完善实现。用过Redis做消息队列的都了解,基于Reids的消息队列实现有很多种,例如:PUB/SUB,订阅/发布模式基于List的 LPUSH+BRPOP 的实现基于Sorted-Set的实现 Redis5.0中发布的Stream类型,也用来实现典型的消息队列。该Stream类型的出现,
2022-04-20 11:27:54
1183
原创 基于docker部署rabbitMQ,php-amqp扩展
rabbitmq安装1.Docker拉取rabbitmq镜像: docker pull rabbitmq2.构建rabbitmq容器docker run -p 5672:5672 -p 15672:15672 -d --name rabbitmq \-v /docker/rabbitmq:/var/lib/rabbitmq \--privileged=true \--hostname myRabbitmq \-e RABBITMQ_DEFAULT_VHOST=my_vhost -e RAB
2022-04-20 10:34:33
3184
2
原创 基于laravel、swoole的redis连接池
基于swoole的redis连接池适合场景 连接池仅在超大型应用中才有价值,连接池并没有提高redis的查询速度,连接池是用来保护数据库的,限制连接数,为了避免连接过多导致数据库崩溃,不是用来提升性能的redis连接池redisPool 封装目录结构├─Provider --------- 服务提供者│ ├─AppServiceProvider.php ------ 注册服务提供者├─pool --------- 主目录│ ├─Core│ │ ├─CoRedis.php ------
2022-04-20 10:00:06
969
原创 基于laravel、swoole的mysql连接池
基于swoole的mysql连接池基于swoole协程的mysql连接池前言 传统的nginx+FPM模式的PHP程序而言,每次请求FPM的worker都会连接一次mysql,然后请求结束便会断开连接。对于并发小的应用来说这不会有什么问题,但是对于高并发的应用来说,频繁建立连接Connect和销毁连接Close,数据库便会成为瓶颈,相信不少人也遇到过to many connection的mysql报错吧。连接池的优势 连接池采用的是长连接模式,会一直保持与MySQL的连接,用完后会重新放回
2022-04-20 09:56:24
1588
原创 Keepalived + Haproxy + mysql集群高可用
Keepalived-mysql高可用Keepalived介绍 Keepalived的作用是检测服务器的状态,如果有一台服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其它服务器代替该服务器的工作,当服务器工作 正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。应用场景 keepalived 针对 集群A和集群B,当集群A的管理节点宕机后,让集群B的管理节点上位
2022-04-20 09:51:24
1530
原创 Mysql + Hproxy负载均衡
Hproxy负载均衡(主要针对读)haproxy介绍 HAProxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于 TCP 和 HTTP 的应用程序代理。 相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项,更精细的控制,更多的健康状态检测机制和负载均衡算法。haproxy 的配置文件由两部分组成:全局设定(global settings)全局设定global settings:主要用于定义 haproxy 进程管理
2022-04-20 09:43:32
631
原创 mycat分库分表与读写分离
mycat分库分表与读写分离Dockerfile搭建mycat1.创建mycat的配置文件#新建目录mkdir /docker/mycat#切换目录cd /docker/mycat#下载mycat release1.6.7.6到当前目录wget http://dl.mycat.org.cn/1.6.7.6/20201126013625/Mycat-server-1.6.7.6-release-20201126013625-linux.tar.gzmv Mycat-server-1.6
2022-04-20 09:38:50
1468
原创 mysql-MMM 双主故障切换
mysql-MMM 双主故障切换MMM简介MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。主要用来监控和管理Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。由于MMM无法完全的保
2022-04-20 09:33:47
308
原创 mysql主从复制
mysql主从复制1.主服务器配置一个用户名,并且分配权限(非必要)create user `starsky`@`%` identified by "root";grant all on *.* to `starsky`@`%` with grant option;2.主服务器开启binloglog-bin=mysql-binbinlog_format=mixedserver-id = 12.配置主与从的my_docker.cnf,设置不同的server-id3.查看主mysql的bi
2022-04-20 09:25:25
397
原创 Docker中安装 laravel 与 Swoole扩展
laravel与Swoole参考文档https://gitee.com/hhxsv5/laravel-sphp的docker容器中配置swoole1.获取swoole安装包https://pecl.php.net/package/swoole2.解压swoole安装包tar –zxvf swoole-4.6.6.tar3.将解压出来的安装包copy到php容器docker cp /home/swoole php:/usr/src/php/ext/swoole4.安装swoole
2022-04-19 17:55:05
458
原创 docker技术与php环境
docker技术与php环境docker基础1.安装dockeryum install -y docker2.查看配置版本docker version3.docker基础操作systemctl start docker # 启动dockersystemctl stop docker # 停止dockersystemctl status docker # 查看docker状态systemctl restart docker # 重新启动docker4.启动doc
2022-04-19 17:44:15
1489
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人