java服务器开发心得
本人已从事java服务器开发三年多了,对java服务器开发比较有心得,特此对这三年多来进行下技术总结,并与大家分享。
作为服务器开发,对基础知识的掌握程度,将决定你的服务器各方面的能力,一般在进行java服务器开发前,最重要的是能够熟练运用以下技术:
java classLoader、java thread、java I/O(NIO)和java socket。
一般来说,服务器设计大致分为三个阶段:
第一个阶段是连接器设计
第二个阶段是核心业务设计(严格来讲就是通用服务设计)
第三个阶段是数据设计
对于第一个阶段的设计,涉及到网络知识(阻塞式socket和非阻塞式socket)、通信模式(TCP/IP或者UDP)、网络管理(负载、连接状态等)、传输协议设计(特别与其他语言的交互)、I/O处理(bytes转成Object、Object转成bytes)等。有些方面可以靠网络硬件设备来解决。
对于第二个阶段的设计,主要涉及众多的相关领域的知识,如:
多线程的设计(参考《多线程设计模式》)、管理设计(参考JMX)、消息传输设计(参考JMS)、安全设计(参考java安全)、缓存设计(参考cache4j、JCS等开源项目)、资源池设计(数据库连接池等)、对象重用设计、命名空间设计(参考JNDI)、分布式设计(参考RMI)、组件设计等。
对于第三个阶段的设计,主要涉及的知识为数据库方面的知识,如:
事务处理、数据库建表设计、数据持久化设计等。
这里也比较局限化,并不是所有的业务场景都需要用到数据库,在此就是举例说明下,
第三个阶段就是在前两个阶段的基础上做相关的应用开发了。
最后是服务的部署:
包括JVM的参数优化、目录结构、批处理文件的编写。
这是我三年作为服务器开发涉及的相关知识,在以后的时间里会对每一个知识点更加细化,方便大家进入到java服务器开发领域。
今天就写到这吧。睡觉去了,呵呵
java服务器开发心得相关推荐
- 棋牌游戏服务器开发心得
一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码.关于这个项目,有很多地方值得聊一聊.本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的 ...
- java mac 怎么删_做java服务器开发,并发布到linux,那MacBookPro开发是绝佳工具
最近一直有学弟问买mbp开发Java好不好.我先给结论:不但好而且是最佳. 开始我用买MacBookPro,一是好奇和想了解不一样的电脑,二是MPBP太tm的精美了,第一次看到它,感觉之前塑料味特浓的 ...
- Java项目开发心得(一):利用Java技术实现查询手机号码归属地
鉴于最近项目涉及到查询归属地的问题,今天在此做一下技术分享,如果有更好的建议,还请读者大神指出. 回归正题,关于手机号码归属地,想要查询的无非是运行商.省份.市之类的信息,那么就会涉及到Http请求以 ...
- SLG手游Java服务器的设计与开发——架构分析
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- Java在游戏服务器开发中的应用
Java在游戏服务器开发中的应用 width="22" height="16" src="http://hits.sinajs.cn/A1/we ...
- 深度解析Java游戏服务器开发
---恢复内容开始--- 1.认识游戏 1.1什么是游戏 1.1.1游戏的定义 任何人类正常生理需求之外的活动均可称为游戏 1.1.2游戏的分类 RPG角色扮演游戏.ACT动作游戏.AVG冒险游戏.F ...
- Java物联网开发(二) —— 开源百万级分布式 MQTT 消息服务器EMQX
开源百万级分布式 MQTT 消息服务器EMQX 一. 是什么 1. 简介 2. 分类 3. EMQ X 消息服务器功能列表 二. 安装 1. 安装方式 rpm安装 docker安装 免安装 2. 目录 ...
- 【棋牌游戏】JAVA服务器设计与开发(一)
####开篇语 大概在16年时候,新型房卡模式打开棋牌游戏新里程,整个棋牌行业迅速改变模式,出现近两三年激烈的竞争景象,据统计全国大大小小棋牌游戏公司,专职棋牌公司近两万多家,这都不算后起大大小小游戏 ...
- Java游戏服务器开发之概念扫盲
入行缘由 在2017年我正式的从web转Java游戏服务器开发.那个时候机缘巧合的投了一家使用Java语言开发游戏服务器的企业,当时的老板还问我为什么从web转游戏开发.当时我的回答还是历历在目:我喜 ...
最新文章
- shell中的函数shell中的数组告警系统需求分析
- bigswitch公司
- maven学习(下)利用Profile构建不同环境的部署包
- mysql5.7中使用group by报错
- eclipse自动补全
- 付忠庆的练习小笔记-Codeforces #277 Div2 C
- ES6 Symbol 数据类型
- 矩阵特征值的物理意义
- JDK源码(12)-Enum
- mysql索引条件下推_MySQL索引条件下推的简单测试
- 【英语学习】【English L06】U07 Jobs L5 Work overtime
- fov视场角计算_图像传感器集成计算功能,赋能机器视觉技术
- BFS(双向) HDOJ 3085 Nightmare Ⅱ
- 是什么浪费了运维的工作时间?
- oracle查询创建视图语句
- 计算机教室电气设计规范,车库电气设计规范.docx
- a36.ansible 生产实战案例 -- 基于kubeadm安装kubernetes v1.23 -- 集群部署(一)
- PS给图片四周加上圆角
- Fly.js HTTP 请求解决方案
- mkdir: Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initia