系统配置

本文详细介绍了系统部署的流程,包括项目架构、服务器规划、域名规划、Tomcat热部署和反向代理配置。讨论了在面试中可能遇到的问题,如网站并发数、人员配置、开发周期等,并给出了电商活动倒计时和秒杀方案的技术实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 课程计划

第十三天:

  1. 系统部署
  2. 项目总结
  3. 面试中的问题

2. 项目部署

2.1 项目架构讲解

2.2 网络拓扑图

2.3 系统部署

2.3.1 部署分析

e3-manager

e3-manager-web

e3-portal-web

e3-content

e3-search

e3-search-web

e3-item-web

e3-sso

e3-sso-web

e3-cart-web

e3-cart

e3-order

e3-order-web

 

需要26台服务器。                            26

Mysql                                                2

Solr                                                   7

Redis                                                6

图片服务器                                       2

Nginx                                                2

注册中心                                           3

Activemq                                           2

 

共需要50台服务器。

 

搭建伪分布式。

 

2.3.2 服务器规划

项目                                          服务器数量                                       虚拟机                  ip

----------------------------------------------------------------------------------------------------------------------

Mysql                                               2                                                      1                   171

Solr                                                  7                                                      1                   166

Redis                                                6                                                      1                   160

图片服务器                                       2                                                      1                   133

Nginx                                               2                                                      1                   141

注册中心                                          3                                                      1                   160

Activemq                                                 2                                                      1                   167

e3-manager            8080

e3-content                    8081

e3-search               8082                                                              

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     1                   135

e3-sso                   8080

e3-cart                   8081

e3-order                8082              

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     1                   136

e3-manager-web     8080

e3-portal-web        8081

e3-search-web        8082

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     1                   137

e3-item-web          8080

e3-sso-web            8081

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     1                   138

e3-cart-web           8080

e3-order-web         8081

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     1                   139

2.3.3 域名规划

序号

工程名

域名

1

e3-manager-web

manager.e3mall.cn

2

e3-portal-web

www.e3mall.cn

3

e3-search-web

search.e3mall.cn

4

e3-item-web

item.e3mall.cn

5

e3-sso-web

sso.e3mall.cn

6

e3-cart-web

cart.e3mall.cn

7

e3-order-web

order.e3mall.cn

 

2.3.4 Tomcat热部署

可以使用maven实现tomcat热部署。Tomcat启动时 部署工程。

Tomcat有个后台管理功能,可以实现工程热部署。

配置方法:

第一步:需要修改tomcat的conf/tomcat-users.xml配置文件。添加用户名、密码、权限。

<role rolename="manager-gui" />

<role rolename="manager-script" />

<user username="tomcat" password="tomcat" roles="manager-gui, manager-script"/>

第二步:重新启动tomcat。

 

使用maven的tomcat插件实现热部署:

第一步:配置tomcat插件,需要修改工程的pom文件。

1.修改数据库连接地址为虚拟机的数据库地址192.168.25.170(先配置好虚拟机mysql和数据库名和数据)

2.修改pom文件 新增以下内容(url为部署的地址ip和端口号根据部署的位置更改,后面的不变):

<url>http://192.168.25.170:8080/manager/text</url>

<username>tomcat</username>

<password>tomcat</password>

3.如果项目中有localhost的访问方式 全局搜索替换成部署位置的域名

<build>

            <plugins>

                  <!-- 配置Tomcat插件 -->

                  <plugin>

                        <groupId>org.apache.tomcat.maven</groupId>

                        <artifactId>tomcat7-maven-plugin</artifactId>

                        <configuration>

                              <port>8081</port>

                              <path>/</path>

                              <url>http://192.168.25.170:8080/manager/text</url>

                              <username>tomcat</username>

                              <password>tomcat</password>

                        </configuration>      

                  </plugin>

            </plugins>

      </build>

第二步:使用maven build命令进行部署。

第一次部署:tomcat7:deploy 目录不存在时使用

第二次部署:tomcat7:redeploy 目录存在时使用

部署的路径是“/”会把系统部署到webapps/ROOT目录下。

部署工程跳过测试加 -DskipTests:

clean tomcat7:redeploy -DskipTests

 

通过dubbo服务查看工程是否发布成功

 

2.3.5 工程部署

每个工程运行在不同的tomcat上,修改tomcat的端口号。

2.4 反向代理的配置

测试时使用域名访问网站,需要修改host文件。

所有的域名应该指向反向代理服务器。

通过返回代理服务器 配置域名 转发到配置的tomcat端口

 

配置hosts文件:

192.168.25.141 manager.e3mall.cn

192.168.25.141 www.e3mall.cn

192.168.25.141 search.e3mall.cn

192.168.25.141 item.e3mall.cn

192.168.25.141 sso.e3mall.cn

192.168.25.141 cart.e3mall.cn

192.168.25.141 order.e3mall.cn

 

反向代理的配置:

 

#user  nobody;

worker_processes  1;

 

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

 

#pid        logs/nginx.pid;

 

 

events {

    worker_connections  1024;

}

 

 

http {

    include       mime.types;

    default_type  application/octet-stream;

 

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

 

    #access_log  logs/access.log  main;

 

    sendfile        on;

    #tcp_nopush     on;

 

    #keepalive_timeout  0;

    keepalive_timeout  65;

 

    #gzip  on;

 

    upstream manager.e3mall.cn {

       server 192.168.25.137:8080;

    }

    upstream www.e3mall.cn {

       server 192.168.25.137:8081;

    }

    upstream search.e3mall.cn {

       server 192.168.25.137:8082;

    }

    upstream item.e3mall.cn {

       server 192.168.25.138:8080;

    }

    upstream sso.e3mall.cn {

       server 192.168.25.138:8081;

    }

    upstream cart.e3mall.cn {

       server 192.168.25.139:8080;

    }

    upstream order.e3mall.cn {

       server 192.168.25.139:8081;

    }

   

   server {

        listen       80;

        server_name  manager.e3mall.cn;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://manager.e3mall.cn;

            index  index.html index.htm;

        }

    }

    server {

        listen       80;

        server_name  www.e3mall.cn;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://www.e3mall.cn;

            index  index.html index.htm;

        }

    }

    server {

        listen       80;

        server_name  search.e3mall.cn;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://search.e3mall.cn;

            index  index.html index.htm;

        }

    }

    server {

        listen       80;

        server_name  item.e3mall.cn;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://item.e3mall.cn;

            index  index.html index.htm;

        }

    }

    server {

        listen       80;

        server_name  sso.e3mall.cn;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://sso.e3mall.cn;

            index  index.html index.htm;

        }

    }

    server {

        listen       80;

        server_name  cart.e3mall.cn;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://cart.e3mall.cn;

            index  index.html index.htm;

        }

    }

    server {

        listen       80;

        server_name  order.e3mall.cn;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://order.e3mall.cn;

            index  index.html index.htm;

        }

    }

   

 

   

 

}

 

3. 项目总结

4. 面试中的问题回答

4.1 网站并发数:

1000-2000左右并发。

4.2 人员配置

产品经理:3人,确定需求以及给出产品原型图。

项目经理:1人,项目管理。

前端团队:5人,根据产品经理给出的原型制作静态页面。

后端团队:20人,实现产品功能。

测试团队:5人,测试所有的功能。

运维团队:3人,项目的发布以及维护。

4.3 开发周期

采用迭代开发的方式进行,一般一次迭代的周期为一个月左右。

4.4 Sku

最小库存量单位。

Sku==商品id

4.5 电商活动倒计时方案:

  1. 确定一个基准时间。可以使用一个sql语句从数据库中取出一个当前时间。SELECT NOW();
  2. 活动开始的时间是固定的。
  3. 使用活动开始时间-基准时间可以计算出一个秒为单位的数值。
  4. 在redis中设置一个key(活动开始标识)。设置key的过期时间为第三步计算出来的时间。
  5. 展示页面的时候取出key的有效时间。Ttl命令。使用js倒计时。
  6. 一旦活动开始的key失效,说明活动开始。
  7. 需要在活动的逻辑中,先判断活动是否开始。

4.6 秒杀方案:

  1. 把商品的数量放到redis中。
  2. 秒杀时使用decr命令对商品数量减一。如果不是负数说明抢到。
  3. 一旦返回数值变为0说明商品已售完。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值