本人准备在接下来一段时间,写一个系列的文章。该系列文章,主要是记录从零开始,搭建一个TCP的Socket长连接服务器项目的过程。本系列文章原始出处微家(www.wejias.com),转载请注明出处。本项目的GIT地址(https://github.com/KING754/unicorn)
该服务器项目主要利用到的框架的技术主要以下内容,需要提前做些功课:
Maven
项目依赖与打包工具。Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、依赖管理和项目信息管理。Maven是优秀的构建工具,自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。而且是跨平台的,无论是Windows上,还是Linux或Mac上,都使用相同命令。
Guice
一个轻量级且小众的IOC和AOP工具。和Spring比起来包小很多,名气也小很多。所以,用的人比较少,在使用过程,遇到问题,能找的资料非常少。
Mybatis&Mybatis_Guice
Mybatis大家都耳熟能详的持久层工具了,和Hibernate比起来更灵活,也更轻,更容易控制SQL。Mybatis_guice就是一个连接Mybatis和Guice的中间件.
Druid
Druid一个国产优秀产品,出自阿里之手。本项目采用Druid的主要原因,是其良好监控。其对WEB和非WEB项目都提供了不错的监控方式。本系列文章也会讲这个。
Netty
本项目使用的是4.0.56版本,主要用来做网络IO处理,在本项目中起着举足轻重的作用。下面内容是摘抄的一段关于netty的详细介绍.
Netty是一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用, 例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。 “快速”和“简单”并不意味着会让你的最终应用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验, 这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式, 在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。
其工程大致流程如下图:
本项目,主要采用以上开源框架技术。另外再从设置上或者代码上,进行优化。最终期望,本项目成为一个高负载,高并发的TCP服务器。本系列文章主要记录本项目开发的过程,以及过程中遇到的问题。记录其的主要目的,是想让自己能够在开发之后,更系统,全面且静下心来梳理相关知识点。与此同时,提高自己,也希望对其它准备相关项目的小伙伴,起到抛砖引玉的作用。当然,只要是代码就会BUG,如果看过文章,你发现有什么不对或者不合理地方,非常欢迎和谢谢指正。
当然最好最直接的方式,是通过页面底的众多联系方式找到我,和我直接开聊讨论。
具体的联系有QQ号:2091263530,QQ群:688543468
或者关注我们公众号”微家频道“,或者微博”微家频道“。
阿里云大力度优惠.云服务器最低可以两折起。也很多优惠券。具体【点击优惠进行详细了解。】