概括几种项目类型使用的技术路线

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 主流架构SSM(Spring+SpringMVC+myBatis--->或SpringBoot+myBatis)统称SSMStruct2:基本没有人使用,除非老项目维护,Struct2以前也是SSM或SSH的一部分,现在早已过时SSH(过去:stru...

主流架构SSM(Spring+SpringMVC+myBatis--->或SpringBoot+myBatis)统称SSM
Struct2:基本没有人使用,除非老项目维护,Struct2以前也是SSM或SSH的一部分,现在早已过时
SSH(过去:struts+spring+Hibernate,现在Spring+SpringMVC+Hibernate):至于SSH就不主张使用,因为 Hibernate把sql语句封装好了,有时候会sql语句会重复,不利于sql语句的优化,myBatis是自己设计sql语句在性能上肯定是自己写sql高.

Maven:Maven是一个项目管理工具,主要是管理项目中所需要的依赖包,现在的项目可以说基本全部是Maven项目,以前的老项目都是一个一个向库里拷相对应的jar包及其不方便,现在不管使用ssh还是ssm 都会使用Maven

SpringBoot集成了Spring+SpringMVC 是当前相当流行的技术,只要是新项目很多技术经理都会采用,开发方便但是值得一提的是SpringBoot的约定高于配置很多东西都要按照他约定的才行,特点如下

  1. 创建独立的Spring应用程序
  2. 嵌入的Tomcat,无需部署WAR文件
  3. 简化Maven配置
  4. 自动配置Spring
  5. 提供生产就绪型功能,如指标,健康检查和外部配置
  6. 绝对没有代码生成和对XML没有要求配置

下面主要大致概括几种项目类型使用的技术路线
类型1:WMS(仓库管理系统):
技术路线:SSM+Maven+EasyUI

类型2:CRM(客户关系管理系统):
技术路线:SSM+Maven 前端使用Bootstrap框架

类型3:P2P/一元夺宝:
技术路线:SSM+Maven+Redis+Nginx

Redis:Redis是一个高性能的key-value内存存储数据库;

redis可以把数据存储在内存中,也可以持久化到磁盘上;
redis不是一个适用于任何场景的存储应用;
Redis的优势:
性能极高 – Redis能支持超过 10W次每秒的读写频率。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子性 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
下面是官方的bench-mark数据:
测试完成了50个并发执行100000个请求。
设置和获取的值是一个256字节字符串。
Linuxbox是运行Linux2.6,这是X3320Xeon2.5ghz。
文本执行使用loopback接口(127.0.0.1)。
结果:读的速度是110000次/s,写的速度是81000次/s。
新浪微博(全球最大的redis集群)淘宝 腾讯微博都在使用

Nginx:原理就是反向代理

作用:1.请求分发(不同请求分发到不同服务器上,例如www/aa... www/bb... www/cc... 可以设置aa请求到指定服务器 bb请求到指定服务器 cc请求到指定服务器)
2.负载均衡 (设置负载均衡策略 比如ip_Hash不同的ip访问不同的服务器 每次都会访问固定的服务器 这样对应的ip的缓存也会)
3.处理静态资源 可以将所有的静态资源 如:图片上传到指定的路径的文件夹里

类型4:电商
技术路线:SSM+Maven+Redis+Nginx+Dubbo+ActiveMQ
Dubbo:dubbo是一个阿里巴巴开发的开源分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案

Dubbo的优势:
1、使用简单
2、部署轻盈
3、方便二次开发

Dubbo的应用场景:当网站变大后,不可避免的需要拆分应用进行服务化,以提高开发效率,调优性能,节省关键竞争资源等。
当服务越来越多时,服务的URL地址信息就会爆炸式增长,配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。
当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。
接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?

使用dubbo前要先安装使用zookeeper注册服务 分布式下有很多服务
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务
注册中心的作用:
1、服务端服务的注册和客户端服务的调用
2、提高系统的可用性
3、提高系统的可伸缩性
4、集中管理服务

ActiveMQ:消息中间件是在分布式环境中,两个或多个独立运行的系统之间,提供消息通讯作用的中介。(类似的还有RocketMQ,Kafka)
消息中间件的主要应用场景:
在多个系统间进行通讯的时候,通常会要求:
(1)可靠传输,数据不能丢,有的时候,也会要求不能重复传输
(2)异步传输,否则各个系统同步发送接收数据,相互等待,造成系统性能低下
我简单列举几个吧:
商品系统在确认订单后,发送一个“生产订单”的主题消息到ActiveMQ,订单系统收到该主题消息后会做相应的生产订单及相关的所有业务操作。
在支付界面中,点击确认支付,调用第三方支付接口,支付成功后回调我们的支付系统,然后支付系统会发送一个“支付成功”的主题消息到ActiveMQ,仓储系统收到该主题消息后会做库存的相关操作及其相应的业务。
在网页静态化中,我们修改了某些数据,那么会发送一个“生成静态化”的队列消息到ActiveMQ,负责生成静态化页面的方法接收到该消息后,从新生成静态化页面,从而达到更新页面数据的目的。

不管什么应用基本上都是使用这些技术 SSM是主流 越来越多的人使用SpringBoot,搜索率在2016年就高于SpringMVC

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4月前
|
安全 项目管理
一文搞懂需求流程规范的制定方法和落地技巧
随着业务和产品的发展、团队的不断扩大,很多团队都不可避免的会遇到需求流程混乱的问题。虽然有的团队也编写了一些“需求流程规范”的文档,但最终却流于纸面,难以在团队真正落地。如何科学制定并有效落实需求管理规范呢?对此,云效产品经理陈逊进行了非常详细的直播分享,本文是他经验的文字总结。
100410 19
|
6月前
|
存储 搜索推荐
知识体系化的必要性及构建通用体系的方法
知识体系化的必要性及构建通用体系的方法
264 0
|
28天前
|
设计模式 监控 算法
【领域驱动设计专题】一文带领你透视DDD领域驱动模型的本质和设计原理分析指南(通用语言体系)
【领域驱动设计专题】一文带领你透视DDD领域驱动模型的本质和设计原理分析指南(通用语言体系)
50 2
|
6天前
|
运维 前端开发 JavaScript
平台设计-概念澄清说明
平台所说模块一般指一个独立部署的前端项目
|
1月前
|
存储 消息中间件 算法
深度思考:架构师必须掌握的五大类架构设计风格
数据流风格注重数据在组件间的流动,适合处理大量数据。调用返回风格则强调函数或方法的调用与返回,过程清晰明了。独立构件风格让每个构件独立运作,通过接口交互,提升灵活性和可重用性。虚拟机风格则模拟完整系统,实现资源的高效利用。
深度思考:架构师必须掌握的五大类架构设计风格
|
11月前
|
供应链 数据可视化 BI
【企业架构】描绘未来第 2 部分:定义能力路线图
【企业架构】描绘未来第 2 部分:定义能力路线图
|
11月前
|
存储 测试技术 数据库
「机会和方案」TOGAF建模:项目环境图
「机会和方案」TOGAF建模:项目环境图
|
11月前
|
安全 物联网 5G
6G之路:标准尚未制订,核心基础研究却已展开
6G之路:标准尚未制订,核心基础研究却已展开
416 0
6G之路:标准尚未制订,核心基础研究却已展开
|
设计模式 程序员 开发者
重构·改善既有代码的设计.01之入门基础
近期在看Martin Fowler著作的《重构.改善既有代码的设计》这本书,这是一本经典著作。书本封面誉为软件开发的不朽经典。书中从一个简单的案例揭示了重构的过程以及最佳实践。同时给出了重构原则,何时重构,以及重构的手法。用来改善既有代码的设计,提升软件的可维护性。
581 1
重构·改善既有代码的设计.01之入门基础
论述系统架构中软件质量属性
ISO25010质量模型中8各方面的质量属性理解
325 0