1. 今日大纲

  1. 发布前的准备
  2. 实施发布
    1. 一部分是由我来发布
    2. 一部分是由你们来发布
  3. 讲解分布式部署架构
  4. 测试
    1. 功能测试
    2. 压力测试
  5. 项目实战的准备以及分组
    1. 分组
    2. 抽取功能
    3. 讲解所需要开发的功能
    1. 项目部署上线流程

  6. 需要知道有几台服务器
  7. 服务器是否在同一个机房
    1. 在同一个机房,通过内网进行通信 -- 速度快
    2. 不在同一个机房,通过外网通信 -- 速度慢
  8. 服务器的硬件以及操作系统
    1. 硬件
      1. 内存 -- 多大?
      2. CPU -- 几核?
      3. 硬盘 -- 多大? IO? 机械硬盘还是SSD(固态硬盘)?
    2. 操作系统
      1. Windows?
      2. Linux?
      3. 32? 64?
  9. 做最后的功能测试
    1. 略过。
  10. SVN打tag
  11. 打包程序(Maven)
  12. 数据库脚本以及初始数据
  13. 编写发布文档
    1. 要将发布的内容以及发布步骤都写下来
    2. 回滚的机制
      1. 程序的回滚
      2. 数据的回滚
      3. 系统间的调用关系的回滚
  14. 实施发布
    1. 服务器情况

在同一个机房,操作系统是linux,64位版本。

企业中的服务器是使用虚拟机还是实体机? -- 虚拟机 方便管理。

企业中为什么要使用linux虚拟机而不是实体机?

虚拟机,有2种:

  1. 在windows平台安装linux虚拟机
    1. 常常用于测试、开发
  2. 服务器的虚拟化
    1. 直接在实体机基础之上安装虚拟机,没有windows这一层,对硬件的利用率更高

今天共有9台虚拟机发布,每台虚拟机的配置都是一样的:

CPU: 4核 -- top à 1

内存:2GB -- free -m

硬盘:机械硬盘 45G -- df - h

  1. SVN打包tag

    1. 直接在SVN视图中复制粘贴

  1. 在Eclipse中右键操作

  1. 程序打包

    1. 需要打包哪些工程

Taotao-cart

Taotao-manage

Taotao-web

Taotao-sso

Taotao-sso-service

Taotao-order

Taotao-search

Taotao-solr(原solr)

Taotao-upload

Taotao-static

数据将脚本

Nginx的配置文件

  1. 实施打包

  1. 打包jar程序(可执行)

    1. 配置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>

  1. 自定义打包

  1. 配置Maven的自定义打包插件

  2. 自定义打包插件的配置
  3. 打包之后的效果

程序中的配置文件:

  1. 把配置文件放到config目录
  2. 启动程序时指定参数-DconfigPath=配置文件的路径
  3. 程序中获取配置文件路径的参数
  1. 实施发布

    1. 部署架构

  1. 服务器分配情况

应用

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

 

部署情况:

  1. 时间:今天中午
  2. 程序:我打好的包 war
  3. 服务器的账号密码:root/root123
    1. 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

  1. 非root用户不能占用80端口的解决方案

  1. Linux下安装mysql

Linux执行SQL脚本:cat taotao.sql | mysql -uroot -proot -Dtaotao

  1. Linux下安装Redis

注意:需要开放6379端口。

  1. Linux下安装RabbitMQ

  1. 启动RabbitMQ非常的慢问题解决:
    1. 需要在hosts文件中添加主机名的映射,映射到本地127.0.0.1
  2. 需要配置可以通过guest用户远程登录:
    1. 修改guest用户的密码
  3. 创建taotao用户以及/taotao的vhost,并且设置taotao用户的权限

测试:

  1. 部署taotao-manage

解压war包:

jar -xvf taotao-manage-web.war

配置nginx(192.168.0.50):

  1. 部署前台系统

访问后台系统接口出错:

解决:在192.168.50.24机器配置hosts内容:

  1. 部署static.taotao.com

在192.168.0.41上的nginx配置static.taotao.com指向到/ucneter/web/taotao-static

但是,后台系统上传的图片没有显示。

  1. 配置tomcat集群

配置:

负载均衡的策略:轮询

如果其中的一个server宕机,nginx会将该server移除出轮询列表。

如果宕机的服务恢复的话,会自动加回到轮询的列表中。

  1. 图片无法显示的问题

后台系统上传的图片是在192.168.50.29的/ucenter/web/taotao-upload

现在的nginx的配置是:将image.taotao.com指向到本地(192.168.50.23)的/ucenter/web/taotao-upload

问题,新上传的图片将无法显示。

如何解决?

  1. 部署一台单独的图片服务器
    1. 后台管理系统如何将图片上传到图片服务器?
  2. 使用FTP
  3. NFS – 网络文件系统

现在的解决:

在192.168.50.23上直接上传taotao-upload.tar.gz (临时解决方案)

测试:

  1. 部署taotao-search和taotao-solr

如何在linux中使命令在后台运行:

java -Dsolr.solr.home=taotao-solr -jar start.jar &

在执行的命令后面添加一个 &符号即可。

  1. 部署taotao-sso

    1. 如何在同一台机器启动多个tomcat

需要修改3个端口才能启动:

1、

2、

3、

  1. 高可用架构

    1. 目前架构存在的问题

如果nginx宕机,那么整个架构将瘫痪。

  1. 双机主备

已经解决上述问题,但是,又有了新问题。 -- 备用服务器的资源浪费问题。

  1. 双主热备

  1. 以上的问题

Nginx宕机是指:nginx服务宕机,不是nginx所在的服务器宕机。

Nginx自身的性能将成为系统的瓶颈。

Nginx的负载均衡存在性能问题。

解决:使用LVS替代nginx的负载均衡功能。

  1. 压力测试

    1. 压力测试

作用:保证系统上线之后能够满足线上并发的要求。

  1. 模拟并发

用线程模拟并发。

  1. Jmeter压力测试工具

《测试淘淘商城首页简要示例.docx》

淘淘商城_day11_课堂笔记的更多相关文章

  1. 淘淘商城_day01_课堂笔记

    今日大纲 聊聊电商行业 电商行业发展 11.11 2015双11: 2016年: 预测:2017年的双11交易额将达到:1400亿 电商行业技术特点 淘淘商城简介 淘淘商城的前身 电商行业的概念 B2 ...

  2. 淘淘商城_day04_课堂笔记

    今日大纲 实现首页的大广告位功能 实现内容管理系统 首页的大广告 什么是大广告 JS效果: 点击下面的序号选择查询哪个广告 自动切换 点击图片查询具体的页面 以上是由前端团队来开发. 数据结构 说明: ...

  3. 淘淘商城_day02_课堂笔记

    今日大纲 学习Nginx的使用 实现商品的管理 新增商品 查询商品列表 编辑商品 删除商品 上架和下架商品 学习nginx 开发阶段中的环境 开发环境:自己的电脑 测试环境:提供给测试人员使用的环境 ...

  4. 淘淘商城_day10_课堂笔记

    今日大纲 Dubbo入门学习 使用dubbo优化单点登录系统 系统间服务调用方式 浏览器直接访问 浏览器发起请求,通过ajax或jsonp方式请求: Httpclient方式 系统与系统之间通过Htt ...

  5. 淘淘商城_day09_课堂笔记

    今日大纲 实现购物车 基于Mysql实现读写分离 购物车 需求描述 用户可以在登录状态下将商品添加到购物车 用户可以在未登录状态下将商品添加到购物车 用户可以使用购物车一起结算下单 用户可以查询自己的 ...

  6. 淘淘商城_day08_课堂笔记

    今日大纲 问题,如何实现商品数据的同步? 学习MQ(消息队列) 搭建RabbitMQ的环境 学习RabbitMQ的队列 学习Spring-Rabbit 使用RabbitMQ完成商品数据的同步 如何实现 ...

  7. 淘淘商城_day07_课堂笔记

    今日大纲 讲解订单系统 基于订单系统完成下单功能的开发 使用Solr完成商品的搜索功能 订单系统 说明:订单系统只是做讲解,不做开发. 导入taotao-order 表结构 订单表: 订单商品表: 疑 ...

  8. 淘淘商城_day05_课堂笔记

    今日大纲 学习Redis 使用Redis完成项目中缓存需求 实现商品详情页功能 缓存的需求 大广告位数据无需每次查询后台系统的接口,可以在前台系统添加缓存,提高访问首页的速度. 商品类目的数据也可以缓 ...

  9. 淘淘商城_day06_课堂笔记

    今日大纲 实现单点登录系统 基于单点登录系统实现,用户的注册和登录 商品数据同步问题 问题 后台系统中将商品修改,前台系统没有进行数据的同步,导致前端系统不能够实时显示最新的数据. 解决 后台系统中商 ...

随机推荐

  1. Js-Html 前端系列--点击非Div区域隐藏Div

    最近做项目要用到三字码下拉,调用一个插件,但是滚动条不能点击. 后来看另一个插件后突发奇想,在点击其他区域的时候隐藏这个Div就可以了. 背景:输入文字,弹出下拉Div,点击或者拉动Div滚动条选择, ...

  2. django form表单验证

    一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...

  3. CSS之纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)

    图形包括基本的矩形.圆形.椭圆.三角形.多边形,也包括稍微复杂一点的爱心.钻石.阴阳八卦等.当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome, ...

  4. PWA - 渐进式网络应用初认识

    Progressive Web Apps 简称PWA,是一种接近原生用户体验的渐进增强的web-app.从浏览器演进而来,沉浸式的体验,改进web的性能低下等.是Google 在2015年提出,今年才 ...

  5. Product Management vs. Product Marketing

    Posted by Marty Cagan on August 28, 2007 Tags: product management, product marketing, program manage ...

  6. scrapy在ubuntu上安装总结

    此文档是本人学习时使用的,采用一个实例作为引导进行安装测试. 实例下载地址如下: https://github.com/sans-serif/scrapy-german-news#introducti ...

  7. POJ 半平面交 模板题 三枚

    给出三个半平面交的裸题. 不会的上百度上谷(gu)歌(gou)一下. 毕竟学长的语文是体育老师教的.(卡格玩笑,别当真.) 这种东西明白就好,代码可以当模板. //poj1474 Video Surv ...

  8. winform自动更新并实现文件的批量异步下载

    public partial class update : Form    {        private WebClient client;        int downfilenum = 0; ...

  9. sublime 2中Package control安装和使用

    安装: 安装时,如果想查看安装进度,可打开console(View->Show Console) 安装Package control有两中方法: 方法1:通过代码安装 import urllib ...

  10. 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 ...