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. Cocos2dx使用网络图片

    #ifndef __Demo__Connection__ #define __Demo__Connection__ #include <iostream> #include "c ...

  2. 基于Azure blob storage T级别HBase表恢复

    为减少Hbase集群压力,提高性能,我们将HBase库中的数据移到另外的存储,下面记录当我需要对数据进行计算时,数据恢复的过程 目录: Azure storage explorer 工具 数据复制 元 ...

  3. eclipse中svn插件的安装和tortoiseSVN的安装

    在项目的开发中一般都需要用到版本控制,其中用的比较多的就是svn(subVersion),svn的使用既可以以插件的形式,也可以以客户端的形式使用.今天就介绍一下eclipse中svn插件的2种安装方 ...

  4. 51nod1279(二分)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1279 题意:中文题诶- 思路: 就想短板效应一样,很显然决定 ...

  5. ASP.NET CORE 1.0 初次接触

    vs2015 update3 升级后,可以创建asp.net core 1.0 的web应用了, 默认模版,发布到指定文件夹 服务器上需要安装 DotNetCore.1.0.0-WindowsHost ...

  6. 【NOIP2013】DAY1题解+代码

    T1 傻逼快速幂,敲敲就过了. 我跟你们讲个笑话当时我以为这个数据范围过不了于是想出了求GCD再推规律什么的magic方法中途还咨询了某个学长. 然后怎么想都是不可做. ……直到我发现我昨年的代码一个 ...

  7. LeetCode 213. House Robber II

    Note: This is an extension of House Robber. After robbing those houses on that street, the thief has ...

  8. Gentoo/Arch常用软件配置

    ## Desktop Environment ### GNOME ### KDE ### LXDE ### Xfce ## Window Managers ### dwm x11-wm/dwm ### ...

  9. SQL语句获取数据库中的表主键,自增列,所有列

    SQL语句获取数据库中的表主键,自增列,所有列   获取表主键 1:SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_U ...

  10. Winform_devexpress开发框架主界面设计

    做了好多年的C#开发,从.Net.Winform及第三方的DevExpress.无论什么样的系统,主界面的设计及风格无疑非常重要.从客户的角度考虑,要求功能区清晰,整体美观大方,这样才会有可能从第一视 ...