自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dear_xq 的博客

个人笔记博客~

  • 博客(31)
  • 收藏
  • 关注

原创 hyperf实现Rpc服务(docker+consul)

在开始搭建hyperf的rpc环境之前,需要准备两台服务器,配置好php与swoole的环境,并且在其中一台服务器中部署好consul服务,其中php的环境配置与consul的搭建,可以在小编的其他篇章的文章中获取,基本环境如下。

2022-11-03 10:59:49 830 1

原创 laravel使用rabbitmq

生产者在把消息推送到laravel的事件监听中,初始化生产者配置,创建rabbitmq的所需要绑定的交换机,路由,队列,并且进行绑定。并且监听消费者,当有消息消费时,则从rabbitmq的队列中获取消息,消费成功进行ack。两个消费者消费消息,并不是轮询的,而是看谁空闲,则由谁来消费,如果都空闲,则随机,如果消费者处理不过来,可以增加多几台服务器,一起进行消息的消费。注为何能在其他服务器监听到别的服务器监听到laravel发布的消息?因为在监听队列的时候,指定了rabbitmq为驱动。......

2022-08-01 11:08:12 4214 10

原创 基于laravel探索rabbitmq的高级特性

Pro发送消息到MQ,MQ接收到消息后,产生回响应给Pro,Pro中有一个ConfirmListener异步监听响应应答消息的确认Pro投递消息后,如果MQ收到消息,则会给Pro一个应答Pro接收应答用来确定这条消息是否正常地发送到MQ,该法也是消息可靠性投递的核心保障!用户对于同一操作发起的一次请求或者多次请求的结果是一致的—ReturnListener用于处理一些不可路由的消息。也是生产段添加的一个监听。...

2022-07-30 11:31:31 758 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 870 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 2518 3

原创 Logstash从mysql同步数据到es

Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。Logstash 是一个功能强大的工具,可与各种部署集成。 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据。 如果你的数据需要 Beats 中没有的其他处理,则需要将 Logstash 添加到部署中。logstash安装部署1 . 拉取logstash镜像 (需要与es版本对应)2 . 构建logstash容器3 . 进入logstash容器内部安装

2022-06-28 10:51:54 2646 2

原创 es的基本操作

查看索引列表查看索引的全部内容普通查询布尔查询,多条件查询其中bool代表此查询为布尔查询,也就是多条件查询,而must则是and的意思,就是后面集合里的所有条件都要满足:OR查询:(should)Where Not 查询:(must_not)过滤查询查询name带有Book或者price等于8888,并筛选出1000.........

2022-06-23 15:27:49 195

原创 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 1883 2

原创 基于Docker的ELK部署

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。1 . docker获取es的镜像2

2022-06-21 17:05:03 3868

原创 基于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 1515

原创 consul-KV配置中心与template模板

consul-kv,template

2022-05-05 21:53:25 801 1

原创 基于swoole实现配置中心

基于swoole实现配置中心简介:应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期 ,微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余 。而配置中心将配置从各应用中剥离出来,对配置进行统一管理配置中心的服务流程如下:1、管理员在配置中心更新配置信息。2、服务A和服务B及时得到配置更新通知,从配置中心获取配置。总得来说,配置中心就是一种统一管理各

2022-05-01 16:57:01 788 1

原创 基于swoole(rpc),consul实现服务的注册与发现

使用原生的swoole实现rpc的调度,并通过consul进行服务的注册与发现

2022-04-27 10:39:19 1322 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 3283

原创 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 1459

原创 基于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 1120

原创 基于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 3112 2

原创 基于laravel、swoole的redis连接池

基于swoole的redis连接池适合场景​ 连接池仅在超大型应用中才有价值,连接池并没有提高redis的查询速度,连接池是用来保护数据库的,限制连接数,为了避免连接过多导致数据库崩溃,不是用来提升性能的redis连接池redisPool 封装目录结构├─Provider --------- 服务提供者│ ├─AppServiceProvider.php ------ 注册服务提供者├─pool --------- 主目录│ ├─Core│ │ ├─CoRedis.php ------

2022-04-20 10:00:06 838

原创 基于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 1374

原创 Keepalived + Haproxy + mysql集群高可用

Keepalived-mysql高可用Keepalived介绍​ Keepalived的作用是检测服务器的状态,如果有一台服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其它服务器代替该服务器的工作,当服务器工作 正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。应用场景​ keepalived 针对 集群A和集群B,当集群A的管理节点宕机后,让集群B的管理节点上位

2022-04-20 09:51:24 1436

原创 Mysql + Hproxy负载均衡

Hproxy负载均衡(主要针对读)haproxy介绍​ HAProxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于 TCP 和 HTTP 的应用程序代理。​ 相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项,更精细的控制,更多的健康状态检测机制和负载均衡算法。haproxy 的配置文件由两部分组成:全局设定(global settings)全局设定global settings:主要用于定义 haproxy 进程管理

2022-04-20 09:43:32 585

原创 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 1413

原创 mysql-MMM 双主故障切换

mysql-MMM 双主故障切换MMM简介MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。主要用来监控和管理Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。由于MMM无法完全的保

2022-04-20 09:33:47 245

原创 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 349

原创 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 397

原创 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 1348

原创 Redis集群节点管理(cluster)

Redis集群节点管理(cluster)

2022-04-11 22:11:12 3849

原创 Redis集群(cluster)

redis集群(cluster)

2022-04-11 21:52:23 2352

原创 Redis哨兵(sentinel)

Redis哨兵(sentinel)

2022-04-11 21:37:22 2016 1

原创 Redis主从复制

Redis主从复制

2022-04-11 20:47:42 996

原创 Redis持久化

Redis持久化

2022-04-11 20:06:50 109

空空如也

空空如也

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

TA关注的人

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