自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴小佳的博客

如果能力支撑不起梦想,那就脚踏实地努力

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

原创 redo log -- 事务持久性的保证

什么是redo log简单来说,就是Indodb事务在执行写操作的时候,会维护一份自己的引擎层日志(不同于binlog),目的主要是主要有两个:1 通过redo日志,将写操作持久化2 与binlog配合,完成宕机后的数据恢复工作redo log 是怎么工作的我们先来看一下,在一次更新操作的过程中,都发生了什么,都有哪些角色在参与可以发现,更新操作的数据并没有直接写入磁盘,而且写入内存的buffer pool ,数据的持久化操作,是通过redo log 来完成的这里我们介绍一下redo log

2021-12-15 02:08:19 614

原创 Keepalived双机热备实现nginx高可用

在我们的架构体系中,后端服务器经常会前置一台Nginx服务器做反向代理,把请求分发到后端服务器,也就是常见的负载均衡,如下但是这里存在一个单点故障的问题,如果前置的Nginx挂掉了,请求便无法到达后端服务器,整个后端服务便不可用了我们的解决思路是加多一台前置的nginx(nginx-2)来做负载均衡,在平时不对外提供服务。当nginx-1不可用的时,nginx-2 瞬间把nginx-1的任务接管过来,保证对外的服务不间断那在这里我们遇到了两个问题Q1 : nginx-1 和 nginx-2都有

2020-12-29 15:48:57 2136 5

原创 mysql主从同步的三种模式

mysql 主从同步三种模式:异步复制、半同步复制、全同步复制今天我们就来看下这三种同步模式的优势和劣势异步复制异步复制是mysql 默认的同步方式在master为slave开通账号密码、ip授权之后,slave 可以从master进行数据同步,主要依赖的是master的binlog日志slave会启动两个线程,IO Thread 和 SQL ThreadIO Thread 负责从master拉取binlog 日志,并写入relay中继日志SQL Thread 负责将relay中继日志中的

2021-12-15 22:47:02 9433 1

原创 MVCC -- 多版本并发控制

在了解MVVC之前,我们先来了解一下两个概念:当前读和快照读当前读:当前读就是要读取数据行的当前最新的状态,防止其他线程对数据行进行变更,在读取的时候会对数据行进行加锁,是加锁阻塞读快照读:快照读没有要求读到的数据一定要是最新的版本,不会对数据行进行加锁,是一种解决并发读写冲突的方式,是不加锁非阻塞读,拥有更好的并发性能。我们平时一般的读取用到的都是快照读什么是MVVCmvvc就是决定快照读返回数据行的哪个版本的底层控制逻辑MVVC的工作原理mvvc 就是为数据行挑选一个合适的版本每一行

2021-12-15 16:47:58 450

原创 rabbitMq 保证消息可靠性

rabbitmq作为我们系统之间沟通的桥梁,消息的可靠性就显得格外重要。假如rabbitmq crash掉之后重新启动,原本的交换机、队列、消息都会消失,如果我们队列中存在一些很重要的消息的时候,我们并不愿意这样的事情发生,这就需要借助rabbitmq的持久化机制。rabbitmq的持久化交换机、队列设置可以为持久化,消息的投递模式也可以选择持久化(三个持久化)。持久化的消息在进入持久化队列之后会写入到rabbitmq的持久性日志文件中,消息被消费掉后,会把持久性日志文件中该消息标记为等待垃圾收集

2020-12-29 17:24:35 990 1

原创 rabbitmq信道

为什么需要信道channel ?当应用有多个线程进行消息的生产或者消费时,如果没有信道,每个线程都会反复地进行TCP连接,而TCP连接对系统而言是很大的开销,容易达到性能的瓶颈。而信道则是将TCP连接复用,每个线程把持一个信道,保证了线程之间的独立和安全性,也减少了系统的开销,信道和TCP连接之间的关系相当于光纤和电缆在信息量不是很大的时候,复用同一个TCP连接可以有效地节省资源,但是如果信息量很大,则需要开辟多个TCP连接来均摊这些信道,具体的数量可以根据实际情况来进行设定...

2020-12-29 17:23:23 453

原创 rabbitmq 交换器、绑定和队列

一条消息是怎么到达队列中的?消息并不是直接通过指定队列名称到达队列中的,队列在创建的时候会跟交换机进行绑定(可能是通过routing key进行绑定,也可能是直接绑定)。消息发送的时候是直接发给交换机去路由,通过指定交换机名称(可能也会指定routing key),由交换机决定消息的去向如果消息经过交换机后没有匹配到合适的队列,消息将被丢弃(非持久化)交换机有哪些类型,有什么区别direct交换机、fanout交换机、topic交换机、Headers交换机(很少用,不讨论)direct交换

2020-12-29 17:22:05 1552

原创 windows rabbitMq 安装

安装1 下载erlanghttps://www.erlang.org/downloads2 下载rabbitmq(windows)https://www.rabbitmq.com/install-windows.html#installer3配置环境变量(windows)1 添加ERLANG_HOME环境变量2 系统变量Path添加erlang的bin路径4 安装rabbitmq_management插件4.1 进入rabbitmq的sbin目录cd /d/Program Fil

2020-12-29 17:18:26 189

原创 centos 7 开启ssh登录

centos 7 开启ssh登录1 确保是否安装了openssh-server``` yum list installed | grep openssh-server```没有的话先给安装上,```yum install openssh-server```2 修改ssh 配置文件```cd /etc/ssh```编辑配置文件``` vi sshd.config```打开以下几项配置:# 端口Port 22# 监听地址ListenAddress 0...

2020-12-24 14:09:24 604

原创 实例演示单点登录SSO

好久没更博文了,刚好有点时间写点东西。最近刚给公司的几个项目整合了单点登录功能,给很多没做过的小伙伴提供点思路,说不定啥时候就用上了是吧什么是单点登录?一个企业可能有多个站点,在其中某个站点登录后,访问其他站点的隐私信息的时候,不需要再次登录即可访问,避免多个项目多次登录,提升用户体验,这就是单点登录做单点登录要面对哪些问题基于web应用,我们实现客户端和服务端交互的时候...

2019-08-01 23:22:19 503

原创 Redis分布式锁 + 队列 + crontab 实现高并发下的抢购流程

首先,想象一个场景,商品A预售量1000件,早上10点准时开抢,10W个人一起来抢,在正式开始之后,我们将面对两个问题1 大批的数据库请求和大量的订单创建,数据库压力巨大,有可能宕机2 商品可能出现超卖的情况解决方案如下:这里我们先看商品超卖的问题最原始的下单流程无非就是: 判断商品库存是否足够 -> 足够则下单这种处理方式在没什么并发的情况下不会出现问题,但...

2019-04-18 16:27:25 6470 11

原创 数据库中间件 oneproxy 教程 ——实现mysql数据库读写分离

一个系统随着业务量的爬升,最初的系统设计往往已经不能满足当前的业务需求,而且大多数的瓶颈都在数据库,作为一个后端开发者,我们有义务了解该怎么应对处理日益渐增的数据库压力,今天我们就来引入一个数据库的中间件:oneproxyoneproxy 能做什么?我相信有一些同学不太了解这个东西是干吗用的,这里我给大家几个场景1 读写分离。假如现在公司已经的数据库已经做好了主从,现在需要你将...

2018-12-19 17:39:38 640

原创 docker使用镜像构建多台mysql容器

也许有小伙伴还不太清楚docker 是什么东西,那么可以先去了解一下,传送门:docker入门由于最近要做mysql的集群,那么需要提前做一些测试,可是手头并没有那么多的服务器,只有一台自己的阿里云服务器,windows下的虚拟机又不想用,在了解了docker之后,决定使用docker来快速部署几台服务器的环境,快速搭建几个mysql环境,理由是体积更小,占用资源更少。安装EPELr...

2018-12-18 10:30:08 1372

原创 基于php的mongodb类库

第一次使用mongo的时候给我的感觉就是文档对象处理起来麻烦,查询语法拼接不够平滑好记,因为处理惯了数组,所以这里基于尝试着以tp的方式封装了一个类库,方便使用调用方式都在最下面已经注释掉的部分,快来试试吧<?php /** * mongodb驱动类 */class MongoDriver{    private static $db;    private sta...

2018-11-19 11:17:25 464

原创 初探mongodb

linux 下安装mongodb:http://www.runoob.com/mongodb/mongodb-linux-install.html这里记录下php对于mongodb扩展版本的选择这次类库的封装和测试基于mongo 1.6.1版本的驱动,php版本 5.6.1(不能是php7)下载 cd /usr/localwget  https://pecl.php.net...

2018-11-19 11:08:51 109

原创 linux 下搭建SVN

1 安装SVNyum -y install subversion2 创建版本库目录 mkdir /usr/svn3 创建版本库svnadmin create /usr/svn/tp3创建成功后 进入版本库目录查看,生成如下文件4 修改配置文件cd  /usr/svn/tp3/confvi authz (修改账号权限为可读写)格式:[\]账户名...

2018-10-13 15:56:19 168

原创 Redis数据类型以及应用场景解析

 前方高能,前排预警,大量图文!!! 手机看帖的小伙子请注意你的流量套餐!!!好了,切入正题。在关系型数据库一统天下的时候,有一个意大利人开发出了一种非关系型数据库 Redis,用来解决关系型数据库在面对大流量高并发产生的数据库巨大读写压力,Redis以高效的读写效率闻名,比起memcache, Redis拥有更多的数据类型,在面对复杂的应用场景时,有着更多更合适的类型选择。所以为什么...

2018-08-30 14:42:36 702 8

原创 深入浅出剖析COOKIE与SESSION(基于PHP)

很多刚入门的小伙伴,可能对于cookie跟session都不会陌生,但是觉得这两个东西很相似,但不知道该如何去区分跟使用,虽然两者有很多相似之处,但是两者又有不少区别,这里给小伙伴们讲解一下,供大家学习分享,少走弯路。转帖请注明,侵删。共同点:session跟cookie都是服务器用于持久化用户信息的工具。不同点:二者的存储方式和应用场景又有很大的不同session:session...

2018-08-16 11:18:56 204

原创 PHP7安装

如果是替换php版本需要先停止php-fpm服务service php-fpm stop1、首先yum编译必备的包yum -y install libxml2 libxml2-devel curl-devel libpng-devel freetype-devel libmcrypt-devel libjpeg-devel2、下载php7cd /usr/local/srcwge...

2018-07-20 23:52:16 942

转载 CentOS环境下Nginx实现3台虚拟机负载均衡

A服务器IP :192.168.0.219 (主)B服务器IP :192.168.0.119C服务器IP :192.168.0.109部署思路A服务器做为主服务器,域名直接解析到A服务器(192.168.0.219)上,由A服务器负载均衡到B服务器(192.168.0.119)与C服务器(192.168.0.109)上。在A服务器上,upstream指令——分配负载vi /e...

2018-07-18 22:58:58 1413 1

原创 Mysql数据库导入导出

linux下导出:一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1、导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql#/usr/local/mysql/bin/mysqldump  -uroot  -p  abc > 1.sql敲回车后会提示输入密码,然后文件会保存在当前所在目录2、只导出表结构mysqld...

2018-07-13 23:18:03 221

原创 linux下安装phpmyadmin

http://www.phpmyadmin.net/进入之后有download按钮,点击导航栏的Download链接,进入下载界面,这里下载最新版的4.5.5.1    下载下来上传到服务器上,然后执行下面命令解压:tar -xvzf phpMyAdmin-4.5.5.1-all-languages.tar.gz  移动到网站可访问地址下mv phpMyAdmin-4.5.5.1-all-lang...

2018-07-13 23:05:13 13170 2

原创 Redis应用场景解析

Redis特性:读写性能优异(缓存)持久化(两种,RDB和AOF)数据类型丰富(5种)单线程数据自动过期高性能适合当做缓存缓存是Redis最常见的应用场景,之所有这么使用,主要是因为Redis读写性能优异。而且逐渐有取代memcached,成为首选服务端缓存的组件。而且,Redis内部是支持事务的,在使用时候能有效保证数据的一致性各个数据类型及应用场景列举:string——适合最简单的k-v存储,...

2018-06-19 13:56:40 209

原创 mysql实现主从

1 登录主机,进入MYSQL赋予从机权限:GRANT REPLICATION SLAVE ON *.* TO 'mysql用户名'@'IP地址' IDENTIFIED BY '123123';主机会在MYSQL数据库中创建允许从机连接的账户密码以及连接主机2、 打开主机A的my.cnf,输入##日志配置binlog_format           = MIXEDexpire_logs_days ...

2018-04-25 16:30:05 192

原创 Mysql 在linux下开放权限允许远程登录

1 授权登录mysqlmysql-uroot-puse mysql ;UPDATE user SEThost='%'WHEREuser='root'; (%允许所有主机连接)flush privileges进行刷新,不然还是无法进行远程登录2 开放mysql 3306端口打开防火墙配置文件:vi/etc/sysconfig/iptabl...

2018-04-24 15:50:23 293

原创 虚拟机联网配置

首先虚拟机选择桥接模式找到网卡配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0编辑或添加(让虚拟机的IP地址与主机地址位于同一个段内,其余信息如子网掩码、网关等信息与主机相同即可。)NETMASK=255.255.255.0IPADDR=192.168.0.104GATEWAY=192.168.0.1 (网关)BROADCAST=192.168.0.2...

2018-04-24 11:56:38 908

原创 lnmp环境搭建

软件源代码包存放位置:/usr/local/src源码包编译安装位置:/usr/local/软件名字下载软件包1.下载nginx http://nginx.org/download/nginx-1.8.0.tar.gz2、下载pcre  (支持nginx伪静态)ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39...

2018-04-23 12:59:04 299 1

空空如也

空空如也

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

TA关注的人

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