凯哥Java 凯哥java
1:什么是分布式?分布式与集群的区别。
2:ehcache与mybatis的整合
3:mybatis二级缓存应用场景&局限性
4:总结&下节预告
本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第二十三篇 mybatis整合ehcache缓存使用
声明:本文系凯哥Java(www.kaigejava.com)原创,未经容许,禁止转载!
将mybatis和ehcache缓存整合以前,咱们先来了解下分布式。java
从侠义方面来说,分布式是指多台PC在地理位置上分布在不一样的地方,共同来完成同一个东西。
好比,在大型餐厅,想要吃一份菜先有洗菜工,把须要的菜洗好,再有切菜工、配菜工配好以后,最后再有大厨掌勺进行烹饪会,最后将菜肴上到餐桌上。(从物理位置上来讲,洗菜工、切菜工、配菜工和大厨也在不一样的物理位置)
这里,将洗菜、切菜、配菜和烹饪进行切分了。从效率上来讲,大大提升了出菜的速度。从成本上来讲,也不是很高(若是洗菜、切菜、配菜都让大厨一个来作的话,须要不少大厨。而每每一个大厨的工资会比好几个洗菜工+切菜工工资都高的)。
因此,能够理解,在分布式各个节点中,可使用普通的PC机均可以的。
1.2:分布式与集群的区别。
在了解了分布式后,这里须要与集群进行区分。由于不少时候容易把集群和分布式弄混淆。
分布式:
多个节点完成同一个任务。能够理解为中央集权制。层层拆分后,最总将处理的结果反馈给一个中心。
缺点就是,若是中间某个环节出了问题,也许会致使整个链出问题(若是没有负载均衡之类处理的话),有可能致使整个系统崩溃。
分布式分任务处理高并发的。
集群:
同一套系统,放在不一样的机器上运行。好比在窗口买票,每一个窗口均可以单独的完成购票整个流程。
集群使得系统有高扩展性和高可用性
好了,很少说这些了。有时间或者有须要的朋友,留言下。后续能够单独开篇来说分布式、负载均衡、集群这些。在这里就很少说了。
下面来看流程图:
1.3:什么是ehcache
一句话:ehcache就是一个分布式的缓存框架缓存
1.1:mybatis与ehcache整合思路
cache是一个接口。默认实现的是mybatis的PerpetualCache.若是想要整合mybatis的二级缓存,那么须要实现cache接口便可。
cache接口以下:
1.2:添加须要的jar包
1.3:在映射文件中cache标签的type值为ehcache的实现类。以下图:
1.4:添加ehcache的配置文件
在config下,建立ehcache.xml文件
1.5:测试ehcache的二级缓存mybatis
3.1:mybatis二级缓存应用场景
对弈访问响应速度要求高、可是实时性不高的查询,可使用二级缓存技术。(好比,网站首页banner广告、或者是网站导航信息)
注意:在使用二级缓存的时候,要设置一下刷新时间间隔(cache标签中有一个flashInterval属性)来定时刷新二级缓存,这个刷新间隔根据具体需求来设置。好比设置30分钟、60分钟等。设置值的单位是毫秒级别的。
3.2:mybatis二级缓存的局限性
mybaitis二级缓存对细颗粒度的数据,缓存实现很差。
好比:在对商品信息进行缓存,因为商品信息访问量大,可是要求用户每次查询都是最新的商品信息,此时若是使用二级缓存的话,就没法实现当一个商品发生变化只刷新该商品的缓存信息而不刷新其余商品缓存信息。由于二级缓存是mapper级别的。当一个商品信息发生更新,全部商品信息缓存数据都会被清空的。注意:是清空
解决此类问题,须要在业务层根据需求对数据进行针对性的缓存。没错!就是针对性的缓存。
好比能够对常常变化的数据操做放到单独的另一个namespace的mapper中去。
四:总结&下节预告
经过学习本节:
1:了解分布式、集群及区别
2:mybatis怎么整合ehcache
3:mybatis二级缓存使用的优缺点及使用场景
下节预告:下课咱们将要学习的是---mybatis整合spirng。欢迎你们继续学习。
若是您喜欢凯哥Java的文章,欢迎对凯哥的文章进行指点一二。谢谢你们。并发