- 博客(64)
- 资源 (3)
- 收藏
- 关注
原创 kafka为何不支持主从同步的文章
主从同步是一种常见的数据复制方式,其中一个节点作为主节点,负责写操作,并将写入的数据同步到所有从节点上。从节点只能读取数据,无法写入任何数据。这种方式通常用于关系型数据库系统中,以提高数据可用性和防止单点故障。但是,对于Kafka而言,主从同步并不适合其设计目标和应用场景。因为Kafka的核心特性是分布式多副本复制机制,其中每个副本都可以独立地读写数据,而不必通过主节点进行同步。这种方式可以大大提高数据的可用性和可靠性,因为即使某个节点宕机,其他副本仍然可以接管其工作,保证数据的正常传输。
2023-04-02 09:50:30 207
原创 docker启动kafka
使用docker-compse编排,启动zookeeper、kafka、kafka-manager三个容器,并分享php代码测试kafka生产和消费。
2022-02-26 11:56:58 2672
原创 在python循环字典中总是产生不同的结果
示例如下#!/usr/bin/env python# _*_ coding: utf-8 _*_all_people = {"zhangsan", 'lisi', 'wangwu'}# 以上人员根据入职先后依次存入的,想要实现根据入职时间,依次打印处理# 实现方法如下for people in all_people: print(people)下图是两次输入从输出结果就能看出,结果并不是想想当中的一样,重点:请使用正确的数据格式存储用户集合,应该用列表而不是字典,如果要
2021-11-11 09:34:11 243
原创 nginx配置https
密钥文件将从腾讯云下载的密钥文件放到服务器上,可放到如下目录/etc/ssl/certs/nginx配置文件如下 http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access
2021-11-10 09:57:51 115
原创 由于redis导致的系统奔溃
背景上一篇说到,由于用户激增,已将redis改为集群redis,但是遇到了新的问题,忽然db链接数爆了,报警信息不断,cpu爆了,应用打不开了。
2021-11-02 09:14:23 535
原创 redis升级集群
背景由于用户不断增加,业务功能不断积累,redis的使用也变的越多,单机扩展内存已不是最优解,采用了升级redis集群的方案。官方地址redis集群兼容说明兼容改动1.keys 命令不再允许使用,可改用基于游标的迭代器来完成 scan,最后我会列举使用示例。2.exists 命令也不再允许使用,可通过ttl判断时间来替代,时间复杂度为O(1),或者根据hash,set等类型长度来替代。3.multi事务中,需要增加watch。这也暗藏着一个bug。主要修改的是这三个命令。scan示例cl
2021-11-01 09:55:56 833
原创 php中include与require的差别
问题1:include和require的区别1.两个函数导入存在的文件时,效果是相同的2.当导入不存在的文件时,include会有一个警告,但是程序还需继续执行,而require则会触发致命错误停止程序的执行回答2的结果如图;先上测试代码<?phptry{ include 'test1.php'; echo "progress is here\n"; die;}catch (Exception $e) { echo 'this is ca.
2021-11-01 09:07:03 118
原创 centos上基于yum安装lnmp
场景基于centos 7,初始化系统进行如下步骤安装nginx安装yum install nginx -y安装完成后,开启nginx服务systemctl start nginx.servicechown nginx.nginx /usr/share/nginx/html/ -R安装mysql数据库yum install mariadb-devel mariadb mariadb-server安装完成后,开启mysql服务systemctl start mariadb.servic
2021-10-28 09:49:25 211
原创 redis 并发导致list重复问题
//模拟并发list重复问题 public function test() { $r = new r('api'); $r_key = 'test_zp'; //增加锁key $r_key_lock = $r_key . '_lock'; echo 'start' . time(); if (!$r->EXISTS($r_key)) { //todo 模拟执行sql $data = [1 ,2,3]; echo 'sleep' . time(); sl
2021-06-09 16:53:08 1469
原创 打包时遇到的问题 module ‘moviepy.audio.fx.all‘ has no attribute ‘audio_fadein
大象装冰箱需要几部?两部第一部找到\moviepy这个包的所在位置,进入audio或者video打开fx/all/__init__.py这个文件夹第二部将exec命令替换为print("from moviepy.video.fx import %s" % (name))然后执行程序,会输出具体的如下最后将打印结果放入文件内,如下。另一个__int__文件同上。...
2020-10-30 17:00:42 1368 1
原创 什么是依赖注入?
什么是依赖注入?就是把有依赖关系的类放到容器中,然后解析出这些类的实例,就是依赖注入。目的是实现类的解耦。控制反转就是面向对象编程中的一种设计原则,用来减低代码之间的耦合度。其中最常见的方式叫做依赖注入。举例:a依赖b,但a不控制b的创建和销毁,只能使用b,那么b的控制权交给a之外处理,这叫控制反转(IOC),而a要依赖b,必然要使用b的instance如下:通过a的接口,把b传入; 通过a的构造,把b传入; 通过设置a的属性,把b传入;这个过程叫依赖注入。那么依赖方式又有哪些
2020-10-29 15:20:48 2328
转载 接口和抽象类有什么区别?
接口和抽象类都是继承树的上层,他们的共同点如下:1) 都是上层的抽象层。2) 都不能被实例化3) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。他们的区别如下:1) 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。2) 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。Java语言中类的继承是单继承原因是:当子类重写父类方法的时候,或者隐藏
2020-10-29 14:44:37 227
原创 python多进程间通信-使用队列
背景随着业务需求的提升,程序需要多进程进行,多进程里面不得不提到的就是多进程通信,因为不仅仅是两个进程,所以使用到的是队列方式来解决。先直接上代码。代码# -*- coding=utf-8 -*-import timeimport sys,osimport randomimport multiprocessingfrom multiprocessing import Pool,Managerclass Spider(multiprocessing.Process):
2020-10-27 11:42:05 588
转载 简述TCP的三次握手和四次挥手过程
(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。(3)第三次握手:Client收到确认后,检查ack是否为J+1,AC...
2020-10-23 15:45:34 244
转载 PHP设计模式之注册模式
单例模式保证了一个类中只有一个实例被全局访问,当你有一组全局对象被全局访问时可能就需要用到注册者模式 (registry),它提供了在程序中有条理的存放并管理对象 (object)一种解决方案。一个“注册模式”应该提供get() 和 set()方法来存储和取得对象(用一些属性key)而且也应该提供一个isValid()方法来确定一个给定的属性是否已经设置。 注册模式通过单一的全局的对象来获取对其它对象的引用//注册模式class Registry { protected stati
2020-10-22 10:22:01 155
转载 Redis中的rdb和aof两种持久化方式
Redis其实就是一个用C语言写的一个程序,这个程序用来存储 key-value数据,数据先放在内存,然后写入磁盘指定位置。这么理解十分肤浅,但tm好像就是这样啊。下面我们梳理一下Redis存储两种方式: RDB和AOF第一种方式:RDB(Redis DataBase)RDB是将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。在Redis中,默认开启RDB方式进行数据存储,redis.conf中的具体配置参数如下;#dbfilename:持.
2020-10-21 15:52:12 180
原创 再不死记硬背的事务隔离
前言了解mysql都会I知道的事务的四大特性,原子性、隔离性、一致性、持久性。隔离性又分了好几个级别,隔离性中又有三个问题,四个隔离级别就是为了解决这三个问题的。四个隔离级别读未提交(Read uncommitted)读已提交(Read committed),默认值可重复读(Repeatable Read)串行(Serializable)三个问题脏读:就是两个事务,如果a中的修改未提交,b读取了,但是a遇到问题回滚了。事务b读到的数据就是脏数据。为了解决脏读问题,可是使用
2020-10-20 15:36:56 165
原创 重装系统后usb失效如何处理
背景今天同事遇到一个问题,就是在重装系统后USB驱动坏掉了,导致键盘鼠标都不能用了,U盘也没用了。解决思路首先是确定是否是没有驱动,还是BIOS设置的问题。进入BIOS然后将USB启动,都设置为Enable重启后发现,还是不行,确定是驱动问题又一问题U盘连不上,网也连不上。不支持usb但是可以使用ps/2接口,就是原来的圆头的键鼠接头。最后解决方案直接进入pe,在PE中将带有网卡驱动的万能驱动安装包放到磁盘上。重点就是进入PE操作即可。推荐使用
2020-10-13 16:05:28 7070
转载 PHP闭包的三种方式
PHP闭包的三种方式匿名函数PHP的闭包就是依赖于匿名函数1. 声明一个匿名函数$func = function(){ }2. 使用匿名函数$func = function($param){ echo $param;} $function('调用匿名函数'); 连接闭包和外界变量的关键字:USE function getMoney(){ $rmb = 1; $func = function() us
2020-10-10 09:35:48 491
原创 php试题网试题-2
1.javascript中,Math函数floor,round,ceil的区别round四舍五入floor往小取整ceil往大取整2.echo count('abc');输出结果是13.运算符优先级的坑$bA = true;$bB = false;$b1 = $bA and $bB;$b2 = $bA && $bB;var_dump($b1);var_dump($b2);var_dump($bA and $bB);var_dump($bA &
2020-09-22 08:29:43 163
原创 去除PHP试题网中的收款二维码 - 谷歌浏览器插件
背景再看php试题网中的试题时,总会出现收款码,特别烦。所以写了这个小东西。就两个文件,放到一个目录内,安装使用即可。代码manifest.json{ "manifest_version": 2, "name" : "Collection code ", "description" : "remove Collection code ", "version": "1.0", "content_scripts" :[ { "matches" : ["*
2020-09-17 14:36:44 288
原创 php试题网试题-1
1.查看僵尸进程ps aux|grep Z查看一下进程stat的参数有哪些,仅查看一下前十条的结果。详细介绍一下STAT参数的含义S休眠状态进程s主进程包含子进程<优先级高的进程N优先级较低的进程l多进程的2....
2020-09-17 13:28:26 428
原创 linux中查看日志的某几条记录
背景在nginx中,我们总需要查看日志,并且有时候会仅仅是查看指定的几条而已,下面介绍三种查看方式功能第一种使用catcat 26.log |tail -n +190|head -n 5结果如图:第二种使用sedsed -n '190,195p' 26.log结果如图:第三种还是catcat 26.log |head -n +190|tail -n 5...
2020-09-17 08:36:08 1071
原创 使用php进行http的base认证
背景在初期使用svn的时候都会直接用浏览器打开,会有认证的窗口。想着是否能用php来实现这个功能。直接上代码代码<?phpif (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="登录一下"');}else{ echo $_SERVER['PHP_AUTH_USER'] ; echo $_SERVER['PHP_AUTH_PW']; die();}
2020-09-16 09:02:19 774
原创 navicat报错 1055 - Expression #1 of SELECT list is not in GROUP BY
背景在把代码部署到另一台服务器时,测试站没有问题的情况下,忽然sql爆了错,还是很吓人滴。具体完整的错误提示如下:1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'zmw_jr1.360_imgs.id' which is not functionally dependent on columns in GROUP BY clause; this is in
2020-09-11 08:28:33 866
原创 python函数默认值这个坑
背景最近在写爬虫,程序总是不对,第一次循环没问题,第二次就不行。各种打断点,最后猜到是不是函数默认值同php语法不同?百度了一番,用本篇记录一下这个坑。示例写了个示例代码,这是一段两次调用相同方法的示例,按照php的逻辑会是每次调用没传值,会使用默认值,而且python并不如此,默认值相当于一个静态变量。def test(max_num, list=[]): print('start list:', list) for i in range(1, max_num):
2020-09-11 08:28:21 260
原创 Lost connection to MySQL server during query ([WinError 10053] 您的主机中的软件中止了一个已建立的连接
背景在测试站上并没有问题,放到线上就会报错。如下:(2013, 'Lost connection to MySQL server during query ([WinError 10053] 您的主机中的软件中止了一个已建立的连接。)')分析分析了一下主要会有以下三个方面的原因mysql服务器宕机了 执行的sql过长被杀死了 服务器连接超时了解决根据以上分析原因依次确认,mysql还可以打开并执行排除了第一种,哈哈测试了线上需要执行的时间很快,排除第二种所以嘛,也就
2020-09-09 17:32:06 3393
原创 php7部分改变(2)
简介介绍部分php7的新增特性和define和const的差别标量类型声明function sumOfArgs(string ...$args){ return array_sum($args);}var_dump(sumOfArgs(2, '3', 4.1));//int 类型返回的是9//string 类型返回的是9.1结果如下:返回值类型声明function testReturnType(string ...$args): string{
2020-08-29 06:40:57 95
原创 pyautogui操作记录
背景因需要解决重复的操作其他软件的需求,并且需要数据库的配合,所以选择了pyautoGUI,以下主要简介pyautoGUI的基本操作,和遇到的问题。1.xy到点从哪里开始?切记,切记,这是在第四象限。这样x,y的其实点就知道了吧,如图2.为什么输入“hellow word”可以,而“我是一张白纸”不可以?这是因为输入了中文,中文需要借用pyperclip来解决,就是pyperclip来复制,然后通过hotkey来粘贴即可,需要说明的是pyperclip提供了paste()方法,但是.
2020-08-29 06:40:44 375
原创 php7部分改变(1)
1.间接使用方法的不同$foo = 'name';$name = [];$name['test']['name'] = 'yzbz'; //php7的结果echo $$foo['test']['name']; //输出结果是 'yzbz'$foo['test']['name'] = 'yzbz';$yzbz = 'php5_v5alue'; //php5的结果echo $$foo['test']['name']; //输出结果是 'php5_v5alue'结论php7是从左到右
2020-08-19 23:20:21 120
原创 百度小程序开发遇到的问题(一)
简述说一下以下两个问题引入阿里图库图标不显示问题 百度下程序下拉留白问题关于引入阿里图库不显示问题正常引入是如下图,再开发工具中没有问题,发布到体验版不显示图标了。解决方案就是因为没有在百度小程序后台没有允许方法阿里地址导致的。2.百度下程序下拉留白问题下拉后效果如下,需要进行如下修改,就能解决这个问题。 onPullDownRefresh() { console.log('下拉了') swan.stopPul.
2020-08-12 22:58:43 594
原创 wordpress新增一个列表页
背景新安装的wordpress,想着新增一个功能分类,功能体现就是首页菜单增加一个菜单,然后菜单链接进入是一个列表页,列表也是一堆文章,然后可以点击进入详情页查看文章。就这样的一个需求。解决方案1.使用了这个插件 Simple Post Series,先要安装并启用,如下图2.安装完成后会在左侧文章菜单下多出两个二级菜单,专题和专题文章编辑,如下图3.然后进入专题,先新增一个专题,如下图4.然后节奴专题文章编辑页面,将已编辑完成的文章,拖动到指定专题,如下图5.然后进
2020-08-05 19:22:38 1480
转载 Navicat 报错:MySQL server has gone away With statement
利用navicat premium 拷贝数据库时,报错MySQL server has gone away With statement:,造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入)。解决办法:修改或添加my.ini/my.conf文件里 max_allowed_packed属性,例如max_allowed_packed
2020-08-03 14:20:28 396
原创 sqlalchemy不等于怎么写?(4)
背景首先记录一下如果实现,新手刚接触百度不到。发现月预估量很大所以试试,sqlalchemy不等于怎么写?解决方案上代码session.query(User).filter(User.name != '').all()只有在filter中才能使用 !=...
2020-07-31 12:45:52 2203
原创 使用logrotate分割遇到的问题
安装使用apt直接安装即可apt-get install -y logrotate下图是按照完成,配置给一个nginx按天分割,并压缩的示例/var/log/*.log { daily missingok rotate 14 compress copytruncate delaycompress dateext notifempty #cre
2020-07-30 09:03:29 2138 1
原创 mysql 1267错误处理方法
[Err] 1267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf32_bin,IMPLICIT) for operation '='SELECT kw.*FROM stpc_keywords_rank_kw kwWHERE kw.last_time = 1AND kw.keyword NOT IN ( SELECT rank.keywords FROM stpc_keywords.
2020-07-28 08:10:42 2244
2020年最新的收据模板-房租收据
2020-10-13
最全的地级市集合.txt
2020-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人