Java互联网应用和企业级应用的区别
就个人经验,企业应用主要关注业务服务的能力,针对该企业的业务流程进行信息化、规范化、日志化,以提高企业业务及管理的效率。;互联网比较关注体验,用户粘性。技术上看,很多企业级应用的业务复杂性比互联网要大的多;而互联网应用主要是海量用户,高并发,海量数据,同样一个简单的东西,放在大并发的场景下,需要考虑很多额外的要素。
企业应用:
1、行业领域:区分行业,各自领域业务背景不一样,并形成了一定的门槛。
2、业务逻辑:业务逻辑复杂,涉及大量的数据和多人协同处理。
3、数据一致性:强调数据一致性,需要通过事务,交易中间件,数据库锁,java同步机制来保证数据的一致性。
4、数据复杂度:数据复杂,有大量的表,表之间有复杂的牵涉关系,在某些行业维护这些表之间的关系和数据就需要一个团队。
5、并发量:不是特别大,比如通用应用为100~200并发,重度并发500的系统就能满足国内大部分的系统要求。
6、系统集成:关键系统需要和很多外部系统集成,集成的方式可能采取esb,jms,web service,socket。
7、用户交互:强调界面交互和数据表达,需要支持多种数据展现方式,需要众多数据在页面上的展现,传输
8、开发过程:强调软件过程,讲究行业经验,需要撰写大量的文档和多人的协同,需要版本控制和问题跟踪回溯。
互联网应用:
1、行业领域:跨行业,按应用类型区分,比如blog,wiki,个人门店等。
2、业务逻辑:业务逻辑简单,大部分是通过页面进行数据的增删改查。
3、数据一致性:要求有事务,但和高并发博弈中,让位给高并发。
4、数据复杂度:数据不复杂,表之间的关联不多
5、并发量:强调高并发,支持用户数量多,并采取企业开发中极少采用的技术,比如web反向代理,memcache(分布式缓存),表的垂直分隔、水平分隔,强调高速读低速写。支持百万用户。
6、系统集成:弱。极少需要和其他系统集成
7、用户交互:弱。交互不多,表现方式简单,更多的是数据的增删改查。
8、开发过程:强调敏捷,快速开发,基本不需要版本控制。
Java互联网应用和企业级应用的区别的更多相关文章
- 15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...
- 图灵学院JAVA互联网架构师专题学习笔记
图灵学院JAVA互联网架构师专题学习笔记 下载链接:链接: https://pan.baidu.com/s/1xbxDzmnQudnYtMt5Ce1ONQ 密码: fbdj如果失效联系v:itit11 ...
- Java Thread 的 sleep() 和 wait() 的区别
Java Thread 的使用 Java Thread 的 run() 与 start() 的区别 Java Thread 的 sleep() 和 wait() 的区别 1. sleep ...
- Java Thread 的 run() 与 start() 的区别
Java Thread 的使用 Java Thread 的 run() 与 start() 的区别 Java Thread 的 sleep() 和 wait() 的区别 1. ...
- java集合中List与set的区别
java集合中List与set的区别. List可以存储元素为有序性并且元素可以相同. set存储元素为无序性并且元素不可以相同. 下面贴几段代码感受一下: ArrayL ...
- paip.java 以及JavaScript (js) 的关系以及区别
paip.java 以及JavaScript (js) 的关系以及区别 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:// ...
- Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)
Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例 原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...
- java中的sleep()和wait()的区别
对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监 ...
- java中的this与super的区别
java中的this与super的区别 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base { Base() { System.out.pr ...
随机推荐
- hello2代码的简单分析
hello2部分代码: String username = request.getParameter("username");//将get~这个方法赋给username这个对象 i ...
- HDFS配置参数及优化之实战经验(Linux hdfs)
HDFS优化之实战经验 Linux系统优化 一.禁止文件系统记录时间 Linux文件系统会记录文件创建.修改和访问操作的时间信息,这在读写操作频繁的应用中将带来不小的性能损失.在挂载文件系统时设置no ...
- MySQL的4种事务隔离级别
链接: https://www.cnblogs.com/huanongying/p/7021555.html https://blog.csdn.net/qq_33226422/article/det ...
- cookie应用——UI中查询条件的保存
var cookieOperate = { cookieNames: { companyCNName:"_companyCNName", companyENName:"_ ...
- Vivado HLS 工具
干什么的 Vivado HLS工具可以将C语言高级综合为硬件. 为什么要使用HLS 可以在更高的抽象层次描述功能,而不是在传统的RTL级别 一个潜在的用处是,系统设计划分成硬件部分和软件部分之后,软件 ...
- c++ std::advance
// advance example #include <iostream> // std::cout #include <iterator> // std::advance ...
- django项目上线环境部署
django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚 ...
- 【转载】BlockingQueue
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便 ...
- Fragment调用startActivityForResult导致的回调Activity无法获取正确的requestId的问题
今天遇到了一个问题 从Fragment内调用了startActivityForResult方法设置了requestId是1 但是在Activity内的onActivityResult的回调内 获得的r ...
- 关于list中移除某种数据类型的方法
众所周知,list在不泛型的情况下是可以存放各种数据类型的,代码如下: public static void main(String[] args) { List list=new ArrayList ...