淘淘商城_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_课堂笔记
今日大纲 实现单点登录系统 基于单点登录系统实现,用户的注册和登录 商品数据同步问题 问题 后台系统中将商品修改,前台系统没有进行数据的同步,导致前端系统不能够实时显示最新的数据. 解决 后台系统中商 ...
随机推荐
- .net Mongo Driver 1.0与2.0的对比与2.0的优化
前言 最近闲的时间有点多,所以还是写博客吧. 有人说Mongo 2.0的写法难以把控,好多地方不知道咋用,所以坚持用1.0(不愿意去尝试2.0),我感觉不可理解.所以写篇博客比较下. Mongo C# ...
- 将WebApi Host到控制台和IIS
近期学习WebApi,初步感想是用起来很容易上手,概念上也很好理解,唯一不爽的地方就在于如果在Visual Studio环境里建立Webapi程序,它会自动给创建很多文件夹和文件,其中很多都是用不到的 ...
- IDEA导入maven项目的步骤
其它的就不多说,直接开始咱们的步骤. 首先,你的装有IDEA,我的是IDEA15的,其次就是你的maven插件来,不过,这些基本的插件,IDEA里基本都给咱下载好了,你就可以直接配置maven.可以去 ...
- Python高手之路【十二】面向对象设计模式
单例模式 单例,顾名思义单个实例. class Person: __instance = None def __init__(self): pass @staticmethod def getInst ...
- 将bat文件或exe程序注册成windows服务
命令行使用sc命令.关于sc命令的详解,请自行查看帮助(sc /?),在此只简单提及如何加入系统服务功能.加入服务:sc create ServiceName binPath= 路径 start= a ...
- CentOS7 install vsftpd
#mkdir -p /var/ftp/xcl/ #yum install -y vsftpd#useradd -g ftp -M -d /var/ftp/xcl -s /sbin/nologin xc ...
- [MFC美化] SkinMagic使用详解3- 常见使用问题解答
在SkinMagic使用过程中,经常遇到以下几个问题: 1. 静态加载皮肤文件时,资源文件IDR_SKIN_CORONA可能会报错:未声明的标识符 解决方法:添加头文件"Resource.h ...
- CSS3之3D效果中的transform运用
css3中添加了很多新的标签 属性 描述 css transform 向元素应用 2D 或 3D 转换. 3 transform-origin 允许你改变被转换元素的位置. 3 transform-s ...
- 导入导出Mysql数据库、表结构、表数据
由sql文件导入 mysql -uusername -ppwd < ./abc.sql 导出整个数据库的表结构 mysqldump -uroot -pdbpasswd -d dbname > ...
- ACM-ICPC之路
自从了解到了ACM,我就坚定了参加这个比赛的信心.虽然零基础开始,但是阻挡不了我的前进之路.从大一上学期的完成二十道题,到假期完成四十道题:从第一次校赛不了解退出循环方式只完成了一道题,到大一预选赛第 ...