36 - 项目实战
2021-05-12 23:06:02 0 举报
AI智能生成
系统架构、Java技术栈、面试宝典
作者其他创作
大纲/内容
亿级流量电商详情页系统
技术架构
大型电商网站的异步多级缓存构建+Nginx数据本地化动态渲染架构
多级缓存架构需要解决的问题
(1)如何让redis集群支撑几十万QPS高并发+99.99%高可用+TB级海量数据+企业级数据备份与恢复?==>Redis企业级集群架构
(2)如何支撑高性能以及高并发到极致?同时给缓存架构最后的安全保护层?==>(nginx+lua)+redis+ehcache的三级缓存架构
(3)高并发场景下如何解决数据库与缓存双写的时候数据不一致问题?==>数据库+缓存双写一致性解决方案
(4)如何解决大value缓存的全量更新效率低下的问题?==>缓存维度化拆分解决方案
(5)如何将缓存命中率提高到机制?==>双层nginx部署架构,以及一致性hash流量分发策略
(6)如何解决高并发场景下,缓存重建时的分布式并发冲突问题?==>基于zookeeper分布式锁的缓存并发重建解决方案
(7)如何解决高并发场景下,缓存冷启动MySQL瞬间被打死的问题?==>基于storm实时统计热数据的分布式快速缓存预热的方案
(8)如何解决热点缓存导致单机器负载瞬间超高?==>基于storm的实时热点发现,以及毫秒级的实时热点缓存负载均衡降级
(9)如何解决分布式系统中的服务高可用问题?避免多层服务依赖因为少量故障导致系统崩溃?==>基于hystrix的高可用缓存服务,资源隔离+限流+降级+熔断+超时控制
(10)如何应用分布式系统中的高可用服务的高价技术?==>基于hystrix的容错+多级降级+手动降级+生成环境参数优化经验+可视化运维与监控
(11)如何解决恐怖的缓存雪崩问题?避免给公司带来巨大的经济损失?==>独家的事前+事中+事后三层次完美解决方案
(12)如何解决高并发场景下的缓存穿透问题?避免给MySQL带来过大的压力?==>缓存穿透解决方案
(13)如何解决高并发场景下的缓存失效问题?避免给redis集群带来过大的压力?==>缓存失效解决方案
单机Redis的生产环境启动方案
(1)redis utils目录下,有个redis_init_script脚本
(2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379
(3)将redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
(4)创建两个目录:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)
(5)修改redis配置文件(默认的根目录下,redis.conf),拷贝到/etc/redis目录下,修改名称为6379.conf
(6)修改redis.conf中的部分配置为生产环境
daemonize yes 让redis以daemon进程运行
pidfile /var/run/redis_6379.pid 设置redis的pid文件位置
port 6379 设置redis的监听端口号
dir /var/redis/6379 设置持久化文件的存储位置
(7)启动redis,执行cd /etc/init.d ----> chmod 777 redis_6379 ---->./redis_6379 start
(8)确认redis进程是否启动 ps -ef | grep redis
(9)让redis跟随系统启动自动启动
在redis_6379脚本中,最上面,加入两行注释
# chkconfig:2345 90 10
# description:Redis is a persistent key-value database
chkconfig redis_6379 on
(2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379
(3)将redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
(4)创建两个目录:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)
(5)修改redis配置文件(默认的根目录下,redis.conf),拷贝到/etc/redis目录下,修改名称为6379.conf
(6)修改redis.conf中的部分配置为生产环境
daemonize yes 让redis以daemon进程运行
pidfile /var/run/redis_6379.pid 设置redis的pid文件位置
port 6379 设置redis的监听端口号
dir /var/redis/6379 设置持久化文件的存储位置
(7)启动redis,执行cd /etc/init.d ----> chmod 777 redis_6379 ---->./redis_6379 start
(8)确认redis进程是否启动 ps -ef | grep redis
(9)让redis跟随系统启动自动启动
在redis_6379脚本中,最上面,加入两行注释
# chkconfig:2345 90 10
# description:Redis is a persistent key-value database
chkconfig redis_6379 on
企业级数据备份和灾难恢复
Redis持久化对于生产环境中的灾难恢复的意义
RDB和AOF区别
AOF原理
谷粒商城
系统架构
谷粒商城-微服务架构图
谷粒商城-分布式基础图
环境搭建
安装VirtualBox虚拟机
Vagrant
Vagrant是一个虚拟机管理和配置工具,所以虚拟机系统还得靠专门的虚拟化软件,Vagrant它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。通常情况下,如果你的Vagrant环境需要封装给其他小伙伴们用,最好使用VirtualBox这个支持OSX/Linux/Win三大宿主系统的免费软件作为后端。而且,Vagrant默认已经内置了VirtualBox Provider用来跟 VirtualBox交互,所以安装完Vagrant再去VirtualBox官网下载并安装VirtualBox就可以正式开始使用了。
总之,Vagrant是通常用于构建及配置虚拟开发环境的软件。
Vagrant并不提供虚拟化技术,本质上是一个虚拟机外挂,通过虚拟机的管理接口来管理虚拟机。说白了vagrant就是一个普普通通的装了一个Linux的VirtualBox虚拟机,配以vagrant团队为之开发的一系列套件,辅助完成诸如安装初始化、文件同步、ssh、部署环境升级、功能插件安装等等一些列问题的开发环境部署套件。
vagrant虚拟开发环境搭建好之后,在Virtualbox中可以看到被vagant创建出来的新虚拟机。
总之,Vagrant是通常用于构建及配置虚拟开发环境的软件。
Vagrant并不提供虚拟化技术,本质上是一个虚拟机外挂,通过虚拟机的管理接口来管理虚拟机。说白了vagrant就是一个普普通通的装了一个Linux的VirtualBox虚拟机,配以vagrant团队为之开发的一系列套件,辅助完成诸如安装初始化、文件同步、ssh、部署环境升级、功能插件安装等等一些列问题的开发环境部署套件。
vagrant虚拟开发环境搭建好之后,在Virtualbox中可以看到被vagant创建出来的新虚拟机。
Vagrant虚拟工作环境的搭建
(1)安装virtualbox,官网下载,很好安装 =========> 下载地址:https://www.virtualbox.org/wiki/Downloads
(2)安装Vagrant,官网下载,很好安装 =========> 下载地址:http://downloads.vagrantup.com/
(3)下载box(box是一个后缀为 box 的文件,实际上它就是一个包含了虚拟机配置、虚拟机硬盘镜像和Vagrant 配置的压缩包),这个灰常重要哦
备注:可以到http://www.vagrantbox.es/上下载box,但是国内会灰常慢。
(4)添加box
执行如下命令:
vagrant box add test 远端的box地址或者本地的box文件名
备注:其中test是我们给这个 box 命的名字,eg:
----------------------------------------------------------------------------------------------------------------
vagrant box add test https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box
vagrant box add testCentOS-6.3-x86_64-minimal.box
vagrant box add "CentOS 6.3 x86_64 minimal" CentOS-6.3-x86_64-minimal.box
----------------------------------------------------------------------------------------------------------------
执行完添加box命令后,box中的镜像文件被放到了/Users/astaxie/.vagrant.d/boxes/,如果在window系统中应该是放到了C:\Users\当前用户名\.vagrant.d\boxes\目录下。
(5)初始化
cd到开发目录(这里的开发目录和vagrant ssh登录虚拟机后的/vagrant目录是一样的),然后执行如下命令:
vagrant init test
(6)启动虚拟机
vagrant up
(7)登录虚拟机
vagrant ssh
备注:windows系统上要安装OpenSSH(http://sourceforge.net/projects/opensshwindows/)之后且为openssh配置了PATH环境变量之后才可以的。不然因为找不到ssh命令,vagrant ssh会执行失败。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修改virutalbox和vagrant的默认目录
virtualbox和vagrant默认都是放到系统C盘中,如果安装的box比较多,很容易打满C盘。这个目标路径的配置是可以修改的:
(1)更改VirtualBox虚拟机映像文件的位置
打开 VirtualBox 程序,点击管理/全局设定菜单项(Ctrl+G), 将常规栏里的默认虚拟电脑位置(M)改为其他磁盘下的路径
将原路径 C:\Users\user_name\.VirtualBox\VirtualBox VMs 下的文件移动到新路径下。
重新启动VirtualBox程序,在虚拟机列表里,以前建立的虚拟机虽然都还在,但已经不可用了,将他们全部删除。
双击打开新路径各个文件夹里的vbox文件,将建立的虚拟机重新导入。
(2)更改vagrant配置文件的位置
将 C:\Users\user_name\.vagrant.d 移动到新的位置
新建环境变量VAGRANT_HOME,并指向新路径
(2)安装Vagrant,官网下载,很好安装 =========> 下载地址:http://downloads.vagrantup.com/
(3)下载box(box是一个后缀为 box 的文件,实际上它就是一个包含了虚拟机配置、虚拟机硬盘镜像和Vagrant 配置的压缩包),这个灰常重要哦
备注:可以到http://www.vagrantbox.es/上下载box,但是国内会灰常慢。
(4)添加box
执行如下命令:
vagrant box add test 远端的box地址或者本地的box文件名
备注:其中test是我们给这个 box 命的名字,eg:
----------------------------------------------------------------------------------------------------------------
vagrant box add test https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box
vagrant box add testCentOS-6.3-x86_64-minimal.box
vagrant box add "CentOS 6.3 x86_64 minimal" CentOS-6.3-x86_64-minimal.box
----------------------------------------------------------------------------------------------------------------
执行完添加box命令后,box中的镜像文件被放到了/Users/astaxie/.vagrant.d/boxes/,如果在window系统中应该是放到了C:\Users\当前用户名\.vagrant.d\boxes\目录下。
(5)初始化
cd到开发目录(这里的开发目录和vagrant ssh登录虚拟机后的/vagrant目录是一样的),然后执行如下命令:
vagrant init test
(6)启动虚拟机
vagrant up
(7)登录虚拟机
vagrant ssh
备注:windows系统上要安装OpenSSH(http://sourceforge.net/projects/opensshwindows/)之后且为openssh配置了PATH环境变量之后才可以的。不然因为找不到ssh命令,vagrant ssh会执行失败。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
修改virutalbox和vagrant的默认目录
virtualbox和vagrant默认都是放到系统C盘中,如果安装的box比较多,很容易打满C盘。这个目标路径的配置是可以修改的:
(1)更改VirtualBox虚拟机映像文件的位置
打开 VirtualBox 程序,点击管理/全局设定菜单项(Ctrl+G), 将常规栏里的默认虚拟电脑位置(M)改为其他磁盘下的路径
将原路径 C:\Users\user_name\.VirtualBox\VirtualBox VMs 下的文件移动到新路径下。
重新启动VirtualBox程序,在虚拟机列表里,以前建立的虚拟机虽然都还在,但已经不可用了,将他们全部删除。
双击打开新路径各个文件夹里的vbox文件,将建立的虚拟机重新导入。
(2)更改vagrant配置文件的位置
将 C:\Users\user_name\.vagrant.d 移动到新的位置
新建环境变量VAGRANT_HOME,并指向新路径
1、安装linux虚拟机
2、安装docker
3、docker安装MySQL
4、docker安装Redis
子主题
5、开发环境统一
1、Maven
2、Idea&VsCode
3、安装配置git
4、逆向工程使用
创建项目微服务
亿级流量电商平台
电商核心中台架构整体设计
基于Spring Cloud微服务架构拆分
会员服务
商品服务
订单服务
支付服务
营销服务
后台服务
电商平台技术解决方案
分布式解决方案
分布式锁
分布式事务
分布式调度中心
分布式配置中心
分布式全局序列号
分布式Session
海量数据分库分表
高并发秒杀系统实现
Redis与JVM多级缓存架构
消息中间件流量削峰与异步处理
限流策略实现
大促高峰服务降级实现
系统安全防刷策略实现
性能调优实战
性能监控
分布式调用链平台
JEECG开源项目
前端
ant design of vue(使用vue-cli 3)
第一步 安装node,通过node -v和nmp -version检查安装是否成功
安装淘宝镜像: npm install --registry=https://registry.npm.taobao.org
第二步 安装vue脚手架 工具 命令:$ npm install -g @vue/cli # OR $ yarn global add @vue/cli
第三步 创建一个项目 $ vue create xzln-antd-web
第四步 配置项目
工具会自动初始化一个脚手架并安装 Vue 项目的各种必要依赖,如果在过程中出现网络问题,请尝试配置代理或使用其他 npm registry。
然后我们进入项目并启动,命令:$ cd antd-demo $ npm run serve
然后我们进入项目并启动,命令:$ cd antd-demo $ npm run serve
第五步 现在从 yarn 或 npm 安装并引入 ant-design-vue 命令:$ yarn add ant-design-vue
后端
0 条评论
下一页