基础篇1. Docker简介1. Docker概述1. docker是什么假定您在开发一个尚硅谷的谷粒商城,您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。此外,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。请问?
您要如何确保应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复?
答案就是使用容器。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案—–系统平滑移植,容器虚拟化技术。
环境配置相当麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
之前在服务器配置一个应用的运行环境,要安装各种软件,就拿尚硅谷电商项目的环境来 ...
RabbitMQ1. MQ 的基本概念1. MQ 概述MQ全称Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。
小结
MQ,消息队列,存储消息的中间件
分布式系统通信两种方式:直接远程调用和借助第三方完成间接通信
发送方称为生产者,接收方称为消费者
2. MQ 的优势1. 应用解耦
使用MQ 使得应用间解耦,提升容错性和可维护性。
2. 异步提速
用户点击完下单按钮后,只需等待25ms就能得到下单响应(20 + 5 = 25ms)。
提升用户体验和系统吞吐量(单位时间内处理请求的数目)
3. 削峰填谷
使用了MQ 之后,限制消费消息的速度为1000,这样一来,高峰期产生的数据势必会被积压在MQ 中,高峰就被“削”掉了,但是因为消息积压,在高峰期过后的一段时间内,消费消息的速度还是会维持在1000,直到消费完积压的消息,这就叫做“填谷”。使用MQ后,可以提高系统稳定性。
4. 小结
应用解耦:提高系统容错性和可维护性
异步提速:提升用户体验和系统吞吐量
削峰填谷:提高系统稳定性
3. MQ 的劣势
系统 ...
Zookeeper1. 初识 Zookeeper
Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务。
Zookeeper 翻译过来就是 动物园管理员,他是用来管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 猪)的管理员。简称zk
Zookeeper 是一个分布式的、开源的分布式应用程序的协调服务。
Zookeeper 提供的主要功能包括:
配置管理
分布式锁
集群管理
2. 安装与配置Zookeeper官网
1. 下载安装1、环境准备
ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本。
2、上传
将下载的ZooKeeper放到/opt/zookeeper目录下
12345678#打开 opt目录cd /opt#创建zooKeeper目录mkdir zookeeper#将zookeeper安装包移动到 /opt/zooKeepermv apache-zookeeper-3.8.0-bin.tar.gz /opt/zookeeper/
3、解压
将t ...
Dubbo1. 分布式系统中的相关概念1. 大型互联网项目架构目标用户体验
美观、功能、速度、稳定性
衡量一个网站速度是否快:
打开一个新页面一瞬间完成;页面内跳转,一刹那间完成。
根据佛经《僧祇律》记载:一刹那者为一念,二十念为一瞬,二十瞬为一弹指,二十弹指为一罗预,二十罗预为一须臾,一日一夜有三十须臾。
经过周密的计算,一瞬间为0.36 秒,一刹那有 0.018 秒
互联网项目特点:
用户多
流量大,并发高
海量数据
易受攻击
功能繁琐
变更快
衡量网站的性能指标:
响应时间:指执行一个请求从开始到最后收到响应数据所花费的总体时间。
并发数:指系统同时能处理的请求数量。
并发连接数:指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器连接的总TCP数量
请求数:也称为QPS(Query Per Second) 指每秒多少请求.
并发用户数:单位时间内有多少用户
吞吐量:指单位时间内系统能处理的请求数量。
QPS:Query Per Second 每秒查询数。
TPS:Transactions Per Second 每秒事务数。
一个事务 ...
安装DockerDocker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。
Docker CE 分为 stable test 和 nightly 三个更新频道。
官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。
1. CentOS安装DockerDocker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。
1. 卸载(可选)如果之前安装过旧版本的Docker,可以使用下面命令卸载:
1234567891011yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ ...
安装和配置Canal下面我们就开启mysql的主从同步机制,让Canal来模拟salve
1. 开启MySQL主从Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。
这里以之前用Docker运行的mysql为例。
1. 开启binlog打开mysql容器挂载的日志文件,我的在/tmp/mysql/conf目录:
修改文件:
1vi /tmp/mysql/conf/my.cnf
添加内容:
12log-bin=/var/lib/mysql/mysql-binbinlog-do-db=heima
配置解读:
log-bin=/var/lib/mysql/mysql-bin:设置binary log文件的存放地址和文件名,叫做mysql-bin
binlog-do-db=heima:指定对哪个database记录binary log events,这里记录heima这个库
最终效果:
1234567[mysqld]skip-name-resolvecharacter_set_server=utf8datadir=/var/lib/mysqlserv ...
安装OpenResty1. 安装首先你的Linux虚拟机必须联网
1. 安装开发库首先要安装OpenResty的依赖开发库,执行命令:
1yum install -y pcre-devel openssl-devel gcc --skip-broken
2. 安装OpenResty仓库你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum check-update 命令)。运行下面的命令就可以添加我们的仓库:
1yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
如果提示说命令不存在,则运行:
1yum install -y yum-utils
然后再重复上面的命令
3. 安装OpenResty然后就可以像下面这样安装软件包,比如 openresty:
1yum install -y openresty
4. 安装opm工具opm是OpenResty的一个管理工具,可以帮助我们安装一个第三方的 ...
JVM进程缓存案例为了演示多级缓存,我们先导入一个商品管理的案例,其中包含商品的CRUD功能。我们将来会给查询商品添加多级缓存。
1. 安装MySQL后期做数据同步需要用到MySQL的主从功能,所以需要大家在虚拟机中,利用Docker来运行一个MySQL容器。
1. 准备目录为了方便后期配置MySQL,我们先准备两个目录,用于挂载容器的数据和配置文件目录:
123456# 进入/tmp目录cd /tmp# 创建文件夹mkdir mysql# 进入mysql目录cd mysql
2. 运行命令进入mysql目录后,执行下面的Docker命令:
12345678910docker run \ -p 3306:3306 \ --name mysql \ -v $PWD/conf:/etc/mysql/conf.d \ -v $PWD/logs:/logs \ -v $PWD/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123 \ --privileged \ -d \ mysql:5.7.25
3. 修改配置在/tmp ...
Redis集群本章是基于CentOS7下的Redis集群教程,包括:
单机安装Redis
Redis主从
Redis分片集群
1. 单机安装Redis首先需要安装Redis所需要的依赖:
1yum install -y gcc tcl
redis官网下载地址
解压缩:
1tar -xzf redis-6.2.4.tar.gz
进入redis目录:
1cd redis-6.2.4
运行编译命令:
1make && make install
如果没有出错,应该就安装成功了。
然后修改redis.conf文件中的一些配置:
123456# 绑定地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问bind 0.0.0.0# 保护模式,关闭保护模式protected-mode no# 数据库数量,设置为1databases 1
启动Redis:
1redis-server redis.conf
停止redis服务:
1redis-cli shutdown
2. Redis主从集群1. 集群结构我们搭建的主从集群结 ...
SpringBoot基础篇在基础篇中,我给学习者的定位是先上手,能够使用SpringBoot搭建基于SpringBoot的web项目开发,所以内容设置较少,主要包含如下内容:
SpringBoot快速入门
SpringBoot基础配置
基于SpringBoot整合SSMP
1. 快速上手SpringBoot学习任意一项技术,首先要知道这个技术的作用是什么,不然学完以后,你都不知道什么时候使用这个技术,也就是技术对应的应用场景。SpringBoot技术由Pivotal团队研发制作,功能的话简单概括就是加速Spring程序的开发,这个加速要从如下两个方面来说
Spring程序初始搭建过程
Spring程序的开发过程
通过上面两个方面的定位,我们可以产生两个模糊的概念:
SpringBoot开发团队认为原始的Spring程序初始搭建的时候可能有些繁琐,这个过程是可以简化的,那原始的Spring程序初始搭建过程都包含哪些东西了呢?为什么觉得繁琐呢?最基本的Spring程序至少有一个配置文件或配置类,用来描述Spring的配置信息,莫非这个文件都可以不写?此外现在企业级开发使用Sp ...

