淘淘商城_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_课堂笔记
今日大纲 实现单点登录系统 基于单点登录系统实现,用户的注册和登录 商品数据同步问题 问题 后台系统中将商品修改,前台系统没有进行数据的同步,导致前端系统不能够实时显示最新的数据. 解决 后台系统中商 ...
随机推荐
- 如何成为一名hacker?
很多人问我如何成为黑客,一般来说我总是会扯一大堆废话,告诉他们要时刻保持好奇心,要学会打破规则挑战权威之类的. 但这类话肯定不是提问者想听的.我揣摩了一下他们的心情,他们想问的应该是这个问题:如何学习 ...
- 项目上传svn出问题
我在自己的笔记本上(win8),安装了tortoise 1.9.4和visualSVN server 3.5.3.我现在想让eclipse的自带的svn插件连接到本地服务器的资源库上.但是我写http ...
- 第一百三十二节,JavaScript,封装库--下拉菜单
JavaScript,封装库--下拉菜单 封装库,增加了3个方法 shu_biao_yi_ru_yi_chu()方法,给元素设置鼠标移入移出事件,接收两个参数,参数是移入和移出时的执行函数(包含代码) ...
- 获取select选中的值
$("#CalibrationYear option:selected").text();
- shell 文件中列的整合成一个文件
原文件 第一种方法 [root@wxb- jt]# paste -d "," b c d ,q, , ,e, ,r, ,t, [root@wxb- jt]# paste b c d ...
- IIS 发布程序,无法输出EXCEL 问题处理
[解决方案1] 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务&quo ...
- MariaDB数据解压版安装(10.0.16)
官网下载地址:https://downloads.mariadb.org/ (自己选择版本下载) 在windows 7 下安装 1.下载到解压版安装文件mariadb-10.0.16-win32 ...
- web 服务器
作为一个跨专业转行的我来说,对后台一团浆糊,最近在看php,学的进度比较慢 (1)ApacheApache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上.Apache ...
- USACO 3.3 Shopping Offers
Shopping OffersIOI'95 In a certain shop, each kind of product has an integer price. For example, the ...
- Java中的Class类
Class 类是在Java语言中定义一个特定类的实现.一个类的定义包含成员变量,成员方法,还有这个类实现的接口,以及这个类的父类.Class类的对象用于表示当前运行的 Java 应用程序中的类和接口. ...