使用J2SE进行服务器架构技术选型的变迁
为什么80%的码农都做不了架构师?>>>
虽然现在对大多数程序员来讲,基本不会再有使用Java开发一个服务器这样的任务,但是,这方面的技术研究一下,对自己的技术提高还是非常有帮助的。说不定啥时候能派上用场。
使用Java(J2SE)来设计服务器产品(不使用开源或其他已有产品)的架构,随着Java的不断发展,这几年也发生了很大变化。在JDK1.4之前,使用Java构建服务器应用本身就很少,所以这里也就不提了,我们从JDK1.4开始说。
第一阶段:
要点是:一个连接一个线程
|
阶段2:
服务器端采用了线程池
|
阶段1和阶段2虽然简单,但是很实用,在很多场景下仍然是第一选择。而且编程模型业内非常简单。
阶段3:采用非阻塞IO,多路复用技术,又有两种不同的方式
|
这种方式很重要的一点就是在IO事件发生时得到通知,由程序进行处理。
NIO给编程带来了很大的复杂度,使用NIO开发非常不容易,也很容易犯错误,所以,采用别人的框架是一个简单而自然的选择,采用grizzly和mina都很不错,对通用的场景都能满足要求。这里提醒一下,不管mina和grizzly,都有一些你不想用的特性,干扰你想用的功能,需要小心对待,最好自己也能处理mina和grizzly的bug,改进这些框架的功能。
再有,给予NIO来开发SSL也很复杂。
第四阶段:使用AIO技术
|
AIO最大的特性就是事前先设置好事件的回调函数,事件发生时自动调用回调。而且,得到的通知是“IO操作完成”,而不是NIO的“IO操作即将开始”。
使用AIO,在上层开发SSL也也很麻烦。
转载于:https://my.oschina.net/webas/blog/125721
使用J2SE进行服务器架构技术选型的变迁相关推荐
- 小米资深工程师瞿晋萍(男):米聊服务器的技术选型和架构设计
小米资深工程师瞿晋萍:米聊服务器的技术选型和架构设计 - 资讯频道 - CSDN.NET 小米资深工程师瞿晋萍:米聊服务器的技术选型和架构设计 2012-07-07 11:04 | 238次阅读 | ...
- 米聊服务器的技术选型和架构设计
http://wenku.it168.com/d_000434507.shtml米聊服务器的技术选型和架构设计
- 大数据平台架构技术选型与场景运用
内容来源:2017年5月6日,大眼科技CTO张逸在"魅族技术开放日第八期--数据洞察"进行<大数据平台架构技术选型与场景运用>演讲分享.视频地址:https://mp. ...
- Spring Cloud Alibaba 分布式微服务高并发数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案
基于Spring Cloud Alibaba 分布式微服务高并发数据平台化(中台)思想+多租户saas设计的企业开发架构,支持源码二次开发.支持其他业务系统集成.集中式应用权限管理.支持拓展其他任意子 ...
- 基于CSE的微服务架构实践-轻量级架构技术选型
[摘要] 本文在前一篇"基于CSE的微服务架构实践-基础架构"基础上,介绍了使用CSE进行轻量级架构的技术选型参考.文末提供了基于JWT的微服务认证鉴权方案. 轻量级架构模式下,可 ...
- 如何进行架构技术选型
一.什么是技术选型 为了达到业务需求,从各种技术选择中选取最优的过程. 开发语言:Java,Python,C++ 中间件:Mysql/PGSQL,Redis/Memcache 微服务框架:Spring ...
- SaaS模式、技术与案例详解——第15章 SaaS平台的技术选型
[本章导读语] "笑嘻嘻的小猫咪,"爱丽斯问道,"请您告诉我,我应该走哪条路 呢?""那取决于您想去何方."小猫回答说. ________路 ...
- 微服务(一) --- 架构与选型
微服务架构的概述 应用架构的发展 应用是可以独立运行的程序代码,提供相对完善的业务功能. 目前的软件架构有三种架构类型: 业务架构 应用架构 技术架构 他们之间的甚是: 业务架构决定应用架构,技术架构 ...
- Windows server2008中的DNS服务器架构(八)
文章目录 项目八 DHCP服务器架构 技术目标 [引入问题] 8.2 DHCP的概述 8.3 任务1--配置DHCP服务器 8.3.1 配置DHCP服务器 8.3.2 添加排除 8.3.4 配置DHC ...
最新文章
- Windows C++中__declspec(dllexport)的使用
- HDU1978 记忆化搜索
- grep命令參数及使用方法
- Python Django 自定义Manager重写objects.create()方法代码示例
- 玩转android studio,玩转AndroidStudioIDE
- 远程访问数据库出错的解决办法
- [技术收藏]关于IOPS
- DM8168 DMM(2)
- 保姆级My SQL-5.7.19安装教程
- 零基础学sql要多久_成人零基础学习钢琴,要多久能学会?
- cropper固定宽高裁剪_cropper实现基本的裁剪图片并上传
- 电脑里的视频被误删了可以用EasyRecovery恢复吗?
- oracle的成本核算,Oracle11gR2全表扫描成本计算(工作量模式-workload)
- reactNative+typescript-三,底部导航器
- 相机标定原理介绍(二)
- PHP中使用gRPC客户端
- 我们公司没销售 - 疫情下企业软件的互联网营销
- [thrift] thrift基本原理及使用
- 七 微服务网关gateWay和Jwt令牌
- Civilization V and Beyond Earth
热门文章
- 解密 Go interface 的类型转换原理
- php unicode乱码加密,PHP解密Unicode及Escape加密字符串
- ubuntu16.04下安装codeblocks(2分钟安装)
- 使用jfreechart来创建一个简单的饼图
- SqlServer判断数据库、表、字段、存储过程、函数是否存在
- 烂泥:ubuntu中使用virt-manager图形化新建虚拟机
- 从阿里、微软、AWS财报看评云计算发展
- Liferay MinifierFilter的研究
- Cat.5e/Cat.6系统测试要点和常见工程问题解答
- 如何改变标题栏的宽度