本人已从事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服务器开发心得相关推荐

  1. 棋牌游戏服务器开发心得

    一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码.关于这个项目,有很多地方值得聊一聊.本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的 ...

  2. java mac 怎么删_做java服务器开发,并发布到linux,那MacBookPro开发是绝佳工具

    最近一直有学弟问买mbp开发Java好不好.我先给结论:不但好而且是最佳. 开始我用买MacBookPro,一是好奇和想了解不一样的电脑,二是MPBP太tm的精美了,第一次看到它,感觉之前塑料味特浓的 ...

  3. Java项目开发心得(一):利用Java技术实现查询手机号码归属地

    鉴于最近项目涉及到查询归属地的问题,今天在此做一下技术分享,如果有更好的建议,还请读者大神指出. 回归正题,关于手机号码归属地,想要查询的无非是运行商.省份.市之类的信息,那么就会涉及到Http请求以 ...

  4. SLG手游Java服务器的设计与开发——架构分析

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  5. Java在游戏服务器开发中的应用

     Java在游戏服务器开发中的应用 width="22" height="16" src="http://hits.sinajs.cn/A1/we ...

  6. 深度解析Java游戏服务器开发

    ---恢复内容开始--- 1.认识游戏 1.1什么是游戏 1.1.1游戏的定义 任何人类正常生理需求之外的活动均可称为游戏 1.1.2游戏的分类 RPG角色扮演游戏.ACT动作游戏.AVG冒险游戏.F ...

  7. Java物联网开发(二) —— 开源百万级分布式 MQTT 消息服务器EMQX

    开源百万级分布式 MQTT 消息服务器EMQX 一. 是什么 1. 简介 2. 分类 3. EMQ X 消息服务器功能列表 二. 安装 1. 安装方式 rpm安装 docker安装 免安装 2. 目录 ...

  8. 【棋牌游戏】JAVA服务器设计与开发(一)

    ####开篇语 大概在16年时候,新型房卡模式打开棋牌游戏新里程,整个棋牌行业迅速改变模式,出现近两三年激烈的竞争景象,据统计全国大大小小棋牌游戏公司,专职棋牌公司近两万多家,这都不算后起大大小小游戏 ...

  9. Java游戏服务器开发之概念扫盲

    入行缘由 在2017年我正式的从web转Java游戏服务器开发.那个时候机缘巧合的投了一家使用Java语言开发游戏服务器的企业,当时的老板还问我为什么从web转游戏开发.当时我的回答还是历历在目:我喜 ...

最新文章

  1. shell中的函数shell中的数组告警系统需求分析
  2. bigswitch公司
  3. maven学习(下)利用Profile构建不同环境的部署包
  4. mysql5.7中使用group by报错
  5. eclipse自动补全
  6. 付忠庆的练习小笔记-Codeforces #277 Div2 C
  7. ES6 Symbol 数据类型
  8. 矩阵特征值的物理意义
  9. JDK源码(12)-Enum
  10. mysql索引条件下推_MySQL索引条件下推的简单测试
  11. 【英语学习】【English L06】U07 Jobs L5 Work overtime
  12. fov视场角计算_图像传感器集成计算功能,赋能机器视觉技术
  13. BFS(双向) HDOJ 3085 Nightmare Ⅱ
  14. 是什么浪费了运维的工作时间?
  15. oracle查询创建视图语句
  16. 计算机教室电气设计规范,车库电气设计规范.docx
  17. a36.ansible 生产实战案例 -- 基于kubeadm安装kubernetes v1.23 -- 集群部署(一)
  18. PS给图片四周加上圆角
  19. Fly.js HTTP 请求解决方案
  20. mkdir: Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initia

热门文章

  1. mkisofs command not found
  2. js控制浏览器窗口弹出、警告框、确认框
  3. PS多边形套锁工具在框选区的时候一按shift键PS
  4. 图形验证码和短信验证码
  5. 微信小程序之swiper轮播图
  6. 浙江大学 工程伦理 第一单元测试答案
  7. intval()很重要
  8. (文末福利)如果代码莫名其妙跑起来了,就不要去动它了……吗?
  9. 2. 转行学什么技术好?
  10. Filter基础知识