基础设施环境

# 总体採用 centos6.5 + nginx + tomcat7.0 

负载均衡:nginx 配置,使用 nginx 作为负载均衡。权重配置。 在web层做到水平扩展、
以及配置日志格式,支持db、cache调用次数。响应时间,做全站的监控、
支持相应參数的配置,方便日后做大数据营销的规划,相应的hive表,做分析使用 web层:採用一主一备。 建议内存16G,cpu 8 core,硬盘其他特殊要求,优化tomcat的jvm參数项。 db层 :数据部署建议採用一主一备。建议内存16G,cpu 8 core,硬盘建议使用固态硬盘,到时系统层配
置做适当的优化。详细部署详见 开发技术建议-数据库

应用开发环境

项目管理工具: maven, git

应用开发技术建议

应用层开发技术
    ①编程语言:java 1.7 

           在淘宝,蘑菇街都经历过一次变革。就是从php往java上架构调整的过程。工作量庞大。 成
本相当高。到时不但要考虑业务的稳定性。同一时候要考虑到不同语言的分布式调用,业务服务化
等等各种因素。 在用户服务化项目中,相应的业务接口,在同样配置的机器(64G内存,16corecpu+数据
库一主一备)场景下。qps php和java相差6倍; 分析主要消耗在php框架层,以及php
执行机制上实时解析脚本;java主要考虑在开发成本上,这个能够使用相应的技术来解决。 ②使用框架:springmvc + mybatis + druid + fastjson + google-guava 採用springmvc+mybatis 进行进行业务开发。能够考虑使用我开源项目@刑天盾 进行相关
操作db,业务,controller代码的生成,节省开发成本 ③项目结构採用maven模块化管理,前期依照数据库,业务划分。再往后划分交易、用户、搜索、
消息中心等,模块化,降低功能之间的强耦合性。 ④手机端接口规范化,依照模块+版本号统一的route控制,比如: user/v1,client版本号相应的后
端接口须要依据版本号控制。新版本号相应新的controller,在client统一route。接口传递使用
json对象包装。 其他后台:Bootstrap 等
数据库
    数据库採用 MySQL5.5 

    淘宝的70%的业务眼下使用MySQL。蘑菇街97%使用MySQL,是一个相当稳定的DB产品,无论如今
的支持。还是以后做相关优化。垂直业务。水平分割 。 有问题都能够非常快找到相应的解决方式。 ①数据库部署採用一主一备,配置数据库 master,slave 节点主从复制,切勿使用MySQL自身的
方案(有一定的延迟,在高并发情况下)。 ②MySQL层的优化。数据类型优化。索引优化。查询优化等 ③程序层须要支持多个数据源额訪问,写的操作所有针对主库master,查询操作作用在slave上。

后期Plan

  以上架构以满足迁移的系统架构方案,在后期,随着业务、并发、用户、存储等 增长、进行相关的架
构变迁; 总体的目标是技术为伴随业务,成本,等其他因素做相应的技术优化。方案改造;循序渐进。 ① 图片独立出去,做相应的图片压缩,单独的cdn服务器,考虑到系统的响应,以及client3G环境下
用户的流量体验,採用webp方案进行压缩优化。 ② 使用缓存,集中式缓存+本地缓存localcache: 本地缓存主要中使用 google-guava ,对相关配置项等进行缓存,降低对db的tps 集中式缓存考虑使用redis2.6版本号,对系统的数据进行缓存,比如 dua用户,等等核心业务的
数据,缓存部署方案一主一备多实例,程序层要考虑兼容。处理容灾切换等。 ③ 使用solr查询,改造查询方案。商品,文章等其他信息 ④ 伴随业务成长db层会有一主多备。业务拆分就是所谓的服务化,以及在往后的水平切分,由于服务
器到dbserver的连接数是一定的。 以及cache层的优化。sharding ,需保证db。cache 容灾
处理。reboot ,shutdown 保证业务正常 datasource 及时refush ⑤ 离线统计,数据化运营 => hadoop 集群计算

JavaEE 技术选型建议,server配置,部署策略的更多相关文章

  1. ArcGIS 10.3 for Server部署策略

    注:以下部署策略整理自官方文档,主要是为方便以后查阅各种部署方案. 1.单机部署与反向代理 1.1.反向代理 反向代理可采用ArcGIS Web Adaptor或者第三方的反向代理服务器. 1.2.部 ...

  2. 剑指Kubernetes 揭秘腾讯云的PaaS技术选型策略

    1.前言 Kubernetes 很火,一大批互联网公司早已领先一步,搭建起专有的 PaaS平台,传统企业们看到的 Kubernetes的趋势,亦不甘落后,在试水的道上一路狂奔-- 虽然,Kuberne ...

  3. Office Online Server 2016 部署和配置

    Office Online Server 2016 部署和配置https://wenku.baidu.com/view/65faf8de846a561252d380eb6294dd88d1d23d45 ...

  4. Windows Server实例防火墙策略的配置方法

    概述 本文介绍在Windows Server实例中,如何配置防火墙策略的方法. 详细描述 配置Windows Server版本的防火墙功能方法,参考如下步骤. 提示:此处以Windows Server ...

  5. Docker存储方式选型建议

    转自:https://segmentfault.com/a/1190000007168476 第一部分 问题诊断 事情从一次实施项目说起,我们需要帮助客户将他们的应用容器化并在数人云平台上发布此应用. ...

  6. 多维度对比5款主流分布式MQ消息队列,妈妈再也不担心我的技术选型了

    1.引言 对于即时通讯网来说,所有的技术文章和资料都在围绕即时通讯这个技术方向进行整理和分享,这一次也不例外.对于即时通讯系统(包括IM.消息推送系统等)来说,MQ消息中件间是非常常见的基础软件,但市 ...

  7. DataPipeline丨构建实时数据集成平台时,在技术选型上的考量点

    文 | 陈肃 DataPipeline  CTO 随着企业应用复杂性的上升和微服务架构的流行,数据正变得越来越以应用为中心. 服务之间仅在必要时以接口或者消息队列方式进行数据交互,从而避免了构建单一数 ...

  8. 【转】服务化框架技术选型与京东JSF解密

    [京东技术]声明:本文转载自微信公众号“开涛的博客”,转载务必声明. 作者:章耿,原京东资深架构师,曾负责京东服务框架,配置中心等基础平台.近十年工作经验,专注于基础中间件等底层技术架构,对分布式系统 ...

  9. 海量数据分库分表方案(二)技术选型与sharding-jdbc实现

    上一章已经讲述分库分表算法选型,本章主要讲述分库分表技术选型 文中关联上一章,若下文出现提及其时,可以点击 分库分表算法方案与技术选型(一) 主要讲述 框架比较 sharding-jdbc.zdal ...

随机推荐

  1. 为ImageView设置背景图片(代码中)

    仅仅需三行代码: Resources resources = getBaseContext().getResources(); Drawable imageDrawable = resources.g ...

  2. OpenCASCADE Job - 上海地目

  3. actionbar-去掉背景的阴影

    今天发现一个问题,就是actionbar跟界面的交界处,会有一个阴影,通过调查发现,这个阴影是actionbar的.然后通过在网上找资料,完美解决了问题.解决方法如下 1.在这个actionbar所在 ...

  4. [转]Accept-Encoding

    原文地址:https://blog.csdn.net/sqzhao/article/details/49499471 HTTP Header中Accept-Encoding 是浏览器发给服务器,声明浏 ...

  5. web.xml的配置及加载顺序

    一web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> ...

  6. ImportError: No module named tornado.ioloop 记录过程

    ImportError: No module named tornado.ioloop 记录过程 安装 pycurl    pip install pycurl 报错 'curl-config' no ...

  7. matlab 可视化 —— 高级 api(montage)、insertObjectAnnotation、insertMaker

    1. montage:同时显示多个图像 thumbnails = train_x(:, :, :, 1:100); thumbnails = imresize(thumbnails, [64, 64] ...

  8. STL之vector容器的实现框架

    说明:本文仅供学习交流,转载请标明出处,欢迎转载. 实现vector容器的思路等同于实现一个动态数组,以下我们參照源代码的相关资料,给出一个vector容器的大致框架,仅仅有声明,没给出详细的实现. ...

  9. WebClient HttpWebRequest从网页中获取请求数据

    WebClient HttpWebRequest //HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(urlAddress) ...

  10. 关于python的拷贝

    https://blog.csdn.net/koukehui0292/article/details/82993958 Python的 深度拷贝: import copy d=copy.deepcop ...