淘淘商城_day11_课堂笔记
今日大纲
- 发布前的准备
- 实施发布
- 一部分是由我来发布
- 一部分是由你们来发布
- 讲解分布式部署架构
- 测试
- 功能测试
- 压力测试
- 项目实战的准备以及分组
- 分组
- 抽取功能
- 讲解所需要开发的功能
项目部署上线流程
- 需要知道有几台服务器
- 服务器是否在同一个机房
- 在同一个机房,通过内网进行通信 -- 速度快
- 不在同一个机房,通过外网通信 -- 速度慢
- 服务器的硬件以及操作系统
- 硬件
- 内存 -- 多大?
- CPU -- 几核?
- 硬盘 -- 多大? IO? 机械硬盘还是SSD(固态硬盘)?
- 操作系统
- Windows?
- Linux?
- 32? 64?
- 做最后的功能测试
- 略过。
- SVN打tag
- 打包程序(Maven)
- 数据库脚本以及初始数据
- 编写发布文档
- 要将发布的内容以及发布步骤都写下来
- 回滚的机制
- 程序的回滚
- 数据的回滚
- 系统间的调用关系的回滚
- 实施发布
服务器情况
在同一个机房,操作系统是linux,64位版本。
企业中的服务器是使用虚拟机还是实体机? -- 虚拟机 方便管理。
企业中为什么要使用linux虚拟机而不是实体机?
虚拟机,有2种:
- 在windows平台安装linux虚拟机
- 常常用于测试、开发
- 服务器的虚拟化
- 直接在实体机基础之上安装虚拟机,没有windows这一层,对硬件的利用率更高
今天共有9台虚拟机发布,每台虚拟机的配置都是一样的:
CPU: 4核 -- top à 1
内存:2GB -- free -m
硬盘:机械硬盘 45G -- df - h
SVN打包tag
直接在SVN视图中复制粘贴
在Eclipse中右键操作
程序打包
需要打包哪些工程
Taotao-cart
Taotao-manage
Taotao-web
Taotao-sso
Taotao-sso-service
Taotao-order
Taotao-search
Taotao-solr(原solr)
Taotao-upload
Taotao-static
数据将脚本
Nginx的配置文件
实施打包
打包jar程序(可执行)
配置maven的jar插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<outputDirectory>${publish}</outputDirectory>
<archive>
<manifest>
<addDefaultImplementationEntries>true
</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true
</addDefaultSpecificationEntries>
<addClasspath>true</addClasspath>
<!-- 运行需要的依赖放到这个目录下 -->
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.taotao.sso.main.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
自定义打包
- 配置Maven的自定义打包插件
- 自定义打包插件的配置
- 打包之后的效果
程序中的配置文件:
- 把配置文件放到config目录
- 启动程序时指定参数-DconfigPath=配置文件的路径
- 程序中获取配置文件路径的参数
实施发布
部署架构
服务器分配情况
应用 |
IP |
端口 |
执行人 |
完成情况 |
备注 |
Nginx |
192.168.50.23 |
80 |
花和尚 |
OK |
|
Taotao-web-1 |
192.168.50.24 |
8080 |
张志栋 |
||
Taotao-web-2 |
192.168.50.25 |
8080 |
黄柯 |
OK |
|
Taotao-web-3 |
192.168.50.25 |
8081 |
李春凤 |
OK |
|
Taotao-SSO |
192.168.50.26 |
8080 |
董孙维 |
OK |
|
Taotao-SSO-service |
192.168.50.26 |
8081 |
付璐璐 |
OK |
|
Taotao-order |
192.168.50.27 |
8080 |
李娟 |
OK |
|
Taotao-search |
192.168.50.27 |
8081 |
张有路 |
OK |
|
Taotao-solr |
192.168.50.27 |
8983 |
蔡麒 |
OK |
|
Taotao-cart |
192.168.50.27 |
8082 |
张凯业 |
OK |
|
Taotao-manage |
192.168.50.29 |
8080 |
花和尚 |
OK |
|
Mysql |
192.168.50.30 |
3306 |
花和尚 |
OK |
|
Redis |
192.168.50.30 |
6379 |
花和尚 |
OK |
|
RabbitMQ |
192.168.50.30 |
5672/15672 |
花和尚 |
OK |
|
Zookeeper |
192.168.50.31 |
2181 |
花和尚 |
OK |
|
Dubbo-admin |
192.168.50.31 |
8080 |
刘成达 |
OK |
|
Dubbo-monitor |
192.168.50.31 |
8088 |
高计豪 |
OK |
部署情况:
- 时间:今天中午
- 程序:我打好的包 war
- 服务器的账号密码:root/root123
Linux下nginx使用
Nginx/sbin
启动:./nginx
停止: ./nginx -s stop
重新加载: ./nginx -s reload
将防火墙的80端口开放:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status
非root用户不能占用80端口的解决方案
Linux下安装mysql
Linux执行SQL脚本:cat taotao.sql | mysql -uroot -proot -Dtaotao
Linux下安装Redis
注意:需要开放6379端口。
Linux下安装RabbitMQ
- 启动RabbitMQ非常的慢问题解决:
- 需要在hosts文件中添加主机名的映射,映射到本地127.0.0.1
- 需要配置可以通过guest用户远程登录:
- 修改guest用户的密码
- 创建taotao用户以及/taotao的vhost,并且设置taotao用户的权限
测试:
部署taotao-manage
解压war包:
jar -xvf taotao-manage-web.war
配置nginx(192.168.0.50):
部署前台系统
访问后台系统接口出错:
解决:在192.168.50.24机器配置hosts内容:
部署static.taotao.com
在192.168.0.41上的nginx配置static.taotao.com指向到/ucneter/web/taotao-static
但是,后台系统上传的图片没有显示。
配置tomcat集群
配置:
负载均衡的策略:轮询
如果其中的一个server宕机,nginx会将该server移除出轮询列表。
如果宕机的服务恢复的话,会自动加回到轮询的列表中。
图片无法显示的问题
后台系统上传的图片是在192.168.50.29的/ucenter/web/taotao-upload
现在的nginx的配置是:将image.taotao.com指向到本地(192.168.50.23)的/ucenter/web/taotao-upload
问题,新上传的图片将无法显示。
如何解决?
- 部署一台单独的图片服务器
- 后台管理系统如何将图片上传到图片服务器?
- 使用FTP
- NFS – 网络文件系统
现在的解决:
在192.168.50.23上直接上传taotao-upload.tar.gz (临时解决方案)
测试:
部署taotao-search和taotao-solr
如何在linux中使命令在后台运行:
java -Dsolr.solr.home=taotao-solr -jar start.jar &
在执行的命令后面添加一个 &符号即可。
部署taotao-sso
如何在同一台机器启动多个tomcat
需要修改3个端口才能启动:
1、
2、
3、
高可用架构
目前架构存在的问题
如果nginx宕机,那么整个架构将瘫痪。
双机主备
已经解决上述问题,但是,又有了新问题。 -- 备用服务器的资源浪费问题。
双主热备
以上的问题
Nginx宕机是指:nginx服务宕机,不是nginx所在的服务器宕机。
Nginx自身的性能将成为系统的瓶颈。
Nginx的负载均衡存在性能问题。
解决:使用LVS替代nginx的负载均衡功能。
压力测试
压力测试
作用:保证系统上线之后能够满足线上并发的要求。
模拟并发
用线程模拟并发。
Jmeter压力测试工具
《测试淘淘商城首页简要示例.docx》
淘淘商城_day11_课堂笔记的更多相关文章
- 淘淘商城_day01_课堂笔记
今日大纲 聊聊电商行业 电商行业发展 11.11 2015双11: 2016年: 预测:2017年的双11交易额将达到:1400亿 电商行业技术特点 淘淘商城简介 淘淘商城的前身 电商行业的概念 B2 ...
- 淘淘商城_day04_课堂笔记
今日大纲 实现首页的大广告位功能 实现内容管理系统 首页的大广告 什么是大广告 JS效果: 点击下面的序号选择查询哪个广告 自动切换 点击图片查询具体的页面 以上是由前端团队来开发. 数据结构 说明: ...
- 淘淘商城_day02_课堂笔记
今日大纲 学习Nginx的使用 实现商品的管理 新增商品 查询商品列表 编辑商品 删除商品 上架和下架商品 学习nginx 开发阶段中的环境 开发环境:自己的电脑 测试环境:提供给测试人员使用的环境 ...
- 淘淘商城_day10_课堂笔记
今日大纲 Dubbo入门学习 使用dubbo优化单点登录系统 系统间服务调用方式 浏览器直接访问 浏览器发起请求,通过ajax或jsonp方式请求: Httpclient方式 系统与系统之间通过Htt ...
- 淘淘商城_day09_课堂笔记
今日大纲 实现购物车 基于Mysql实现读写分离 购物车 需求描述 用户可以在登录状态下将商品添加到购物车 用户可以在未登录状态下将商品添加到购物车 用户可以使用购物车一起结算下单 用户可以查询自己的 ...
- 淘淘商城_day08_课堂笔记
今日大纲 问题,如何实现商品数据的同步? 学习MQ(消息队列) 搭建RabbitMQ的环境 学习RabbitMQ的队列 学习Spring-Rabbit 使用RabbitMQ完成商品数据的同步 如何实现 ...
- 淘淘商城_day07_课堂笔记
今日大纲 讲解订单系统 基于订单系统完成下单功能的开发 使用Solr完成商品的搜索功能 订单系统 说明:订单系统只是做讲解,不做开发. 导入taotao-order 表结构 订单表: 订单商品表: 疑 ...
- 淘淘商城_day05_课堂笔记
今日大纲 学习Redis 使用Redis完成项目中缓存需求 实现商品详情页功能 缓存的需求 大广告位数据无需每次查询后台系统的接口,可以在前台系统添加缓存,提高访问首页的速度. 商品类目的数据也可以缓 ...
- 淘淘商城_day06_课堂笔记
今日大纲 实现单点登录系统 基于单点登录系统实现,用户的注册和登录 商品数据同步问题 问题 后台系统中将商品修改,前台系统没有进行数据的同步,导致前端系统不能够实时显示最新的数据. 解决 后台系统中商 ...
随机推荐
- Js-Html 前端系列--点击非Div区域隐藏Div
最近做项目要用到三字码下拉,调用一个插件,但是滚动条不能点击. 后来看另一个插件后突发奇想,在点击其他区域的时候隐藏这个Div就可以了. 背景:输入文字,弹出下拉Div,点击或者拉动Div滚动条选择, ...
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- CSS之纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
图形包括基本的矩形.圆形.椭圆.三角形.多边形,也包括稍微复杂一点的爱心.钻石.阴阳八卦等.当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome, ...
- PWA - 渐进式网络应用初认识
Progressive Web Apps 简称PWA,是一种接近原生用户体验的渐进增强的web-app.从浏览器演进而来,沉浸式的体验,改进web的性能低下等.是Google 在2015年提出,今年才 ...
- Product Management vs. Product Marketing
Posted by Marty Cagan on August 28, 2007 Tags: product management, product marketing, program manage ...
- scrapy在ubuntu上安装总结
此文档是本人学习时使用的,采用一个实例作为引导进行安装测试. 实例下载地址如下: https://github.com/sans-serif/scrapy-german-news#introducti ...
- POJ 半平面交 模板题 三枚
给出三个半平面交的裸题. 不会的上百度上谷(gu)歌(gou)一下. 毕竟学长的语文是体育老师教的.(卡格玩笑,别当真.) 这种东西明白就好,代码可以当模板. //poj1474 Video Surv ...
- winform自动更新并实现文件的批量异步下载
public partial class update : Form { private WebClient client; int downfilenum = 0; ...
- sublime 2中Package control安装和使用
安装: 安装时,如果想查看安装进度,可打开console(View->Show Console) 安装Package control有两中方法: 方法1:通过代码安装 import urllib ...
- hdu 1907 John&& hdu 2509 Be the Winner(基础nim博弈)
Problem Description Little John is playing very funny game with his younger brother. There is one bi ...