淘淘商城_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_课堂笔记
今日大纲 实现单点登录系统 基于单点登录系统实现,用户的注册和登录 商品数据同步问题 问题 后台系统中将商品修改,前台系统没有进行数据的同步,导致前端系统不能够实时显示最新的数据. 解决 后台系统中商 ...
随机推荐
- 【C语言】字符串模块
一.字符串简介 * 在Java中,一个字符串可以用String类型来存储 String s = "MJ"; C语言中没有String这种类型.其实字符串就是字符序列,由多个字符组成 ...
- ColumnEdit 数据源修改
应用场景 当从ColumnEdit(如SearchLookUpEdit)中选取一条记录后,ColumnEdit的数据源不再出现这条记录.效果图如下 选择前 选择一条记录后,上一条记录不再显示. 此处是 ...
- 第一百三十三节,JavaScript,封装库--弹出登录框
JavaScript,封装库--弹出登录框 封装库,增加了两个方法 yuan_su_ju_zhong()方法,将获取到的区块元素居中到页面,chuang_kou_shi_jian()方法,浏览器窗口事 ...
- CreateMutex 创建一个有名字的互斥量的时候hMutex=CreateMutex(NULL,TRUE,"tickets")报错
编译器报错: 不能将参数 3 从“const char [8]”转换为“LPCWSTR”,怎么改成LPCWSTR类型 更改方法: hMutex=CreateMutex(NULL,TRUE,L" ...
- ListView添加节点
ListView插入节点的流程 当ListView控件的样式被设置成report时,ListView控件实际上是分为两个部分, 一部分是Column, 这个部分是用来显示ListView的每一列的标题 ...
- Linux 下Nginx 的安装及负载均衡的简单配置
这次发布程序需要均衡负载,网上看了一下这方便的东西,觉得很不错,学完之后做下总结,一遍后期用到. 1.安装nginx之前需要安装的两个依赖,pcre-x.x.x.tar.gz 和pcre-devel- ...
- 终于了解了User-Agent的历史了
你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样? 1 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.3 ...
- 高效开发之SASS篇
作为通往前端大神之路的普通的一只学鸟,最近接触了一样稍微高逼格一点的神器,特与大家分享~ 他是谁? 作为前端开发人员,你肯定对css很熟悉,但是你知道css可以自定义吗?大家都知道,js中可以自定义变 ...
- Metrics-Java版的指标度量工具
介绍 Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同时,Metrics能够很好的跟Ganlia.Gra ...
- MySQL data路径为空解决方法
CMD x:\mysql\5.7.12\bin>mysqld --initialize-insecure --user=mysql