1、分布式:大型单体应用,基于业务,进行服务细化拆分;各个服务独立部署运行,将不同业务分布在不同地方
2、负载均衡:一个业务,由多台服务器支撑,
- 轮询 - 最小连接数 - 权重 -
3、集群:几台服务器,实现同一个业务
4、远程调用:分布式系统,各个服务可能在不同主机,服务间相互调用,称为远程调用。springcloud中使用http+json方式完成远程调用
5、服务注册/发现&注册中心
6、配置中心
7、redis缓存雪崩、穿透、击穿
-
雪崩:redis缓存挂了
解决:事故前:redis高可用,主从+哨兵,redis cluster,避免全盘崩溃
事故中:限流&降级(本地 ehcache 缓存 + hystrix ),避免 MySQL 被打死
事故后:redis 持久化,一旦重启,自动从磁盘上加载数据,快速恢复缓存数据
-
穿透:缓存中查不到,数据库中也没有;
解决:如果没查到,缓存中设置个null缓存置,在设置过期时间
-
击穿:key值是热点,处于高并发访问,当key失效,大量请求击穿缓存,访问数据库
解决:设置一个不过期的缓存值;或者redis和zookeeper互斥
8、限流:限制并发的请求访问量,超过阀值拒绝访问
降级:服务优先级,牺牲非核心业务,保证核心业务稳定
熔断:依赖下游的服务故障,触发熔点,不在请求这个服务,返 回默认数据
9、api网关:抽出了公共的功能;提供负载均衡、服务自动熔点、统一认证、限流流控、日志统计
1、初始化系统 vagrant init centos/7 2、启动: vagrant up 3、链接虚拟机 vagrant ssh 4、重新加载: vagrant reloadDocker:
虚拟化容器技术,Docker基于镜像,可以秒级启动各种容 器,每种容器都是一个完整的运行环境,容器之间相互隔离
(基于镜像启动容器,容器之间独立完整的linux)
1、docker安装
安装:
1、卸载旧版本
$ sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2、安装必要工具
$ sudo yum install -y yum-utils device-mapper- persistent-data lvm2
3、添加软件源信息
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、安装
$ sudo yum install docker-ce docker-ce-cli containerd.io
5、开启服务
$ sudo systemctl start docker
6、开机自动启动docker
$ sudo systemctl enable docker
2、docker通过阿里云镜像加速:
1、sudo mkdir -p /etc/docker
2、sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0n10pkxi.mirror.aliyuncs.com"]
}
EOF
3、sudo systemctl daemon-reload
4、sudo systemctl restart docker
3、docker常用命令
- docker ps 运行中的容器
- docker -v
- docker images 查看镜像
- whoami
- sudo docker update mysql --restart=always 设置docker中容器自动启动
4、docker 安装 mysql
-
管理员模式下载:
sudo docker pull mysql:5.7
-
创建实例并启动:
docker run -p 3306:3306 --name mysql
-v /mydata/mysql/log:/var/log/mysql
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql
-e MYSQL_ROOT_PASSWORD=root
-d mysql:5.7
-
访问mysql容器内部:
docker exec -it mysql /bin/bash
-
mysql 配置文件在etc/mysql var/log/mysql 日志文件
-
mysql配置
vi /mydata/mysql/conf/my.cnf
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve
重启mysql: docker restart mysql
5、docker 安装 redis
-
docker pull redis
-
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
-
docker run -p 6379:6379 --name redis
-v /mydata/redis/data:/data
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf
-d redis redis-server /etc/redis/redis.conf
1、下载git:https://git-scm.com
2、配置git,进入git bash
# 配置用户名 git config --global user.name "username" //(名字) # 配置邮箱 git config --global user.email "username@email.com" //(注册账号时用的邮箱)
3、配置ssh免密登录:
进入 git bash;使用:ssh-keygen -t rsa -C"xxxxx@xxxxx.com"命令。 连续三次回车 cat ~/.ssh/id_rsa.pub 登录进入 gitee,在设置里面找到 SSH KEY 将.pub 文件的内容粘贴进去 使用 ssh -T git@gitee.com 测试是否成功即可
补:git使用命令
1、下载powerdesigner
2、把破解文件dll,覆盖 安装路径中的dll文件
Node.js:1、安装node.js,node -v 检查版本
2、配置 npm 使用淘宝镜像
npm config set registry http://registry.npm.taobao.org/
3、npm install
4、npm run dev
-
# npm升级到最新版本 npm install -g npm
-
# 6.14就是你想要降的版本 npm install npm@6.14 -g
-
npm install 遇到各种问题:先统一npm和node版本对应
然后直接查renren-fast-vue npm install 遇到问题- 先遇到chromedriver@2.27.2问题 1、如果执行过npm install,先删除 node_modules 文件夹,不然运行的时候可能会报错 2、npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver 3、npm install - 然后遇到 node-sass@4.13.1问题 1、npm rebuild node-sass 清理缓存 2、npm uninstall node-sass 卸载 3、npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ 淘宝镜像下载 4、npm install 5、npm run dev



