不知道为何,我对链接池技术一直情有独钟,当年接触到的第一个链接池是c3p0,也正是从那是开始,我才有所谓“性能”、“效率”这些概念。“池”,是经典的以空间换时间的方式,提高程序效率的概念。“池”的应用很是普遍,不光有数据库链接池,还有线程池,缓存池等等。这项技术发展到如今已经很是稳定,普通公司的项目只要使用链接池,通常就没什么问题。随着时代的发展,链接池的功能也在不断扩充,阿里的Druid就提供了sql监控的功能。因此如今看链接池是相关内容,就不能仅是为了实现功能(原本功能就很少),而是要深刻的理解原理,并可以本身动手实践,开发出高效稳定的服务组件。
- 持久层的中间件
- ottor
- yugong
- Cobar
- Sharding - JDBC
- myCat
Java持久层中间件一般分为两类,一类是分库分表,一类是数据迁移。前者是在融合了JDBC和数据库链接池的基础上,实现的面向数据库的高级功能。当系统的数据量上升到必定级别以后,分库分表是必然的选择,使用中间件,就能够和应用分离,作到灵活的控制。然后者则是对Java I/O、并发技术的高级应用。一道经典的面试题是给你一个上GB的文件,问你如何快速的找到其中出现频率最高的一组词汇,或者问你如何快速的统计出一份报表。等你深刻掌握了第二类框架的运行原理以后,这些都不是问题。
- ORM框架
- hibernate
- myBatis
- Jfinal
- nutz
SSH(Spring + Struts2 + Hibernate3)最火的时候,我刚刚工做,后来有人说hibernate不行了,你们都在用myBatis,因而紧跟着又有了SSM(myBatis)。再后来,“云”、“微服务”成为当前最煊赫一时的概念,传统的ORM框架也渐渐没有了往日的热度,你们都转头去搞本身的轻量级的ORM和MVC框架,国内比较著名的有Jfinal和nutz。ORM,实体映射成了老旧的代名词.......可是,我不这么认为。如今打开
hibernate的官网,发现它保持的生命力,就在6月底,还发布了其最新的5.2.1版本。一个框架的成功都是有缘由的,其中确定有很是多值得学习的地方。只有你足够了解它的时候,你才能准确的判断,本身究竟需不须要它。
- Spring
- Spring JDBC
- Spring JPA
- Spring DATA
其实看上文也知道,各类框架变来变去,可是Spring的核心统治地方,一直屹立不倒。能作到这点是一件很是了不得的事情,这和Spring一直坚持高效,坚持给程序员各式各样的“糖果”有关系。渐渐的,在应用端,Spring已经有了一统天下的姿式。上面仅列举了Spring在Java持久层的工做,除此以外,还有不少内容,就不在这里一一列举了。
- 缓存
- Ehcache
- memcached
- J2Cache
缓存和非关系型数据库很像,都是提供数据的冗余保存,从而提高性能,并且均可以分布式的部署,达到高可用。二者有区别的地方,可能就在对数据结构和存储方式的差别。