JavaEE 技术选型建议,服务器配置,部署策略

基础设施环境

# 整体采用 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,客户端版本对应的后
    端接口需要根据版本控制,新版本对应新的controller,在客户端统一route,接口传递使用
    json对象包装。

    其它后台:Bootstrap 等
数据库
    数据库采用 MySQL5.5 

    淘宝的70%的业务目前使用MySQL,蘑菇街97%使用MySQL,是一个相当稳定的DB产品,不管现在
    的支持,还是以后做相关优化,垂直业务,水平切割 ; 有问题都可以很快找到对应的解决方案。

    ①数据库部署采用一主一备,配置数据库 master,slave 节点主从复制,切勿使用MySQL自身的
    方案(有一定的延迟,在高并发情况下)。

    ②MySQL层的优化,数据类型优化,索引优化,查询优化等

    ③程序层需要支持多个数据源额访问,写的操作全部针对主库master,查询操作作用在slave上。

后期Plan

  以上架构以满足迁移的系统架构方案,在后期,随着业务、并发、用户、存储等 增长、进行相关的架
  构变迁; 整体的目标是技术为伴随业务,成本,等其它因素做对应的技术优化,方案改造;循序渐进。

  ① 图片独立出去,做对应的图片压缩,单独的cdn服务器,考虑到系统的响应,以及客户端3G环境下
      用户的流量体验,采用webp方案进行压缩优化。

  ② 使用缓存,集中式缓存+本地缓存localcache:

        本地缓存主要中使用 google-guava ,对相关配置项等进行缓存,减少对db的tps

        集中式缓存考虑使用redis2.6版本,对系统的数据进行缓存,例如 dua用户,等等核心业务的
    数据,缓存部署方案一主一备多实例,程序层要考虑兼容,处理容灾切换等。

  ③ 使用solr查询,改造查询方案,商品,文章等其他信息

  ④ 伴随业务成长db层会有一主多备,业务拆分就是所谓的服务化,以及在往后的水平切分,因为服务
  器到dbserver的连接数是一定的。  以及cache层的优化,sharding ,需保证db,cache 容灾
  处理,reboot ,shutdown 保证业务正常 datasource 及时refush 

  ⑤ 离线统计,数据化运营 => hadoop 集群计算 

JavaEE 技术选型建议,服务器配置,部署策略,布布扣,bubuko.com

时间: 2024-10-25 16:14:37

JavaEE 技术选型建议,服务器配置,部署策略的相关文章

JavaEE 技术选型建议,server配置,部署策略

基础设施环境 # 总体採用 centos6.5 + nginx + tomcat7.0 负载均衡:nginx 配置,使用 nginx 作为负载均衡.权重配置. 在web层做到水平扩展. 以及配置日志格式,支持db.cache调用次数.响应时间,做全站的监控. 支持相应參数的配置,方便日后做大数据营销的规划,相应的hive表,做分析使用 web层:採用一主一备. 建议内存16G,cpu 8 core,硬盘其他特殊要求,优化tomcat的jvm參数项. db层 :数据部署建议採用一主一备.建议内存1

企业开发技术选型

http://blog.csdn.net/jwdstef/article/details/23767033 企业级开发我们在开发前需要进行技术选型,选择合适的技术,会让我们事半功倍,这就是为什么站在巨人的肩膀我们会看的更远.下面是3年前写的,过了3年出现了很多新的技术和框架,我会尽快更新出最新的技术选型,希望对大家有所帮助. 2.1. 基础架构 IOC Container: Spring, Guice 我们需要IOC Container的依赖注入作为胶水,把其他工具包粘在一起.还需要它的AOP,

大数据平台架构技术选型与场景运用

一.大数据平台 大数据在工作中的应用有三种: 与业务相关,比如用户画像.风险控制等: 与决策相关,数据科学的领域,了解统计学.算法,这是数据科学家的范畴: 与工程相关,如何实施.如何实现.解决什么业务问题,这是数据工程师的工作. 数据工程师在业务和数据科学家之间搭建起实践的桥梁.本文要分享的大数据平台架构技术选型及场景运用偏向于工程方面. 如图所示,大数据平台第一个要素就是数据源,我们要处理的数据源往往是在业务系统上,数据分析的时候可能不会直接对业务的数据源进行处理,而是先经过数据采集.数据存储

实时联网游戏后台服务技术选型和挑战(网络接入)

述:本文尝试从开发者角度梳理开发实时联网游戏后台服务过程中可能面临的挑战,并针对性地提供相应解决思路,期望帮助开发者依据自身游戏特点做出合理的技术选型. 维基百科关于网络游戏的定义:通过计算机网络,将专用服务器和用户的客户端设备(手机.PC.游戏主机等)相连,让多名玩家同时联机进行游戏的娱乐形式,由此可知网络游戏涉及三个角色:客户端.网络.服务器,从网络架构上来讲网络游戏可分为C/S 架构和P2P架构(特指客户端间直连通信),在实际开发中还有一种C/S和P2P架构混合:C/M架构. P2P架构不

微服务技术选型之路

本文以笔者个人经历讲述关于微服务方面的技术选型和相关知识点.微服务模式的项目从初建到上线部署应用,每一个环节都会涉及到相当多的技术细节(上线后的性能调优更需要).本文着重介绍一套微服务搭建流程中面临的一些技术选型,战略性的技术方案及相关技术的简要介绍,不做每一项技术的深入说明. ?微服务简介 微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上.微服务也指一种种松耦合的.有一定的有界上下文的面向服务架构. 微服务是系统架构上的一种设计

AutoLayout技术选型和应用

前言:这篇文章是笔者在项目中对布局技术进行技术选型和应用的相关介绍,供大家参考. Question1:什么是autoLayout? Answer1: autolayout是苹果从iOS6开始推出的旨在优化.简化UI布局相关工作的新框架,其理念是抽象出约束的概念,将其作用于view,而不再需要手动设置其frame. 个人理解其中的分别就好像面向对象编程和面向过程编程之间的分别:能够体会面向对象编程的好处,我们也不难领会autolayout带来的变化:我们唯一需要处理的,就是约束.其后的一切工作,苹

技术选型——混编APP应用概述

本文主要是针对**APP进行开发之前的技术选型准备文档,现在share出来,希望在做同类开发的您留下宝贵意见. =============================分割线===================================== 一, 主要应用技术 Node.Js Node.js 是一个基于ChromeV8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.js 的包管理器 npm,是全球最大的开

人员分工和技术选型

CSDN发布时间:2018年03月08日 23:32:16 三.第三次集体讨论内容 ? 第三次集体讨论于3月6日,主要按照各自的特点确定了小组人员的分工,并且确定了具体的技术选型. ? 具体分工如下: 姓名 职务 工作 隆晋威 组长.架构师 作为组长统筹全局,根据付千山的游戏设计给出后端的架构,并给出开发时的规范和协议,并且对于开发过程中的难点给予建议和指导. 付千山 美工.音乐.游戏设计.前端(H5) 负责游戏的规则和细节:与吴宏宇一起完成游戏的视觉设计和前端实现:编写游戏的音乐. 吴宏宇 美

构建NetCore应用框架之实战篇(四):BitAdminCore框架1.0登录功能细化及技术选型

本篇承接上篇内容,如果你不小心点击进来,建议从第一篇开始完整阅读,文章内容继承性连贯性. 构建NetCore应用框架之实战篇系列 一.BitAdminCore框架1.0版本 1.1.0版本是指最小版本,它具备框架所有的必要功能,功能前篇已经介绍. 2.与文章相匹配,我会在GitHub上建立一个项目,以分支的形式保存每篇文章所处阶段的源码.进入GitHub 二.登录功能 1.策划我们需要的功能,按照软件的基本原则是很能用,再扩展. 2.登录功能最基本的是账号.密码.验证码登录. 3.登录后进入首页