闲来无事, 记录一下自己很早之前设计的一套稚嫩的分布式缓存系统。
有意见或者建议的可以给我留言。
大数据缓存管理系统
系统介绍:系统结构:此套系统为分布式系统
业务处理系统:
![](https://i-blog.csdnimg.cn/blog_migrate/21fb273eccb73873cac56207f53cb6ea.png)
数据支持系统:
![](https://i-blog.csdnimg.cn/blog_migrate/1d05fa6768c315bdcae6ca30f102a32a.png)
系统采用的技术:zookeeper,memcached,activitymq消息中间件,webservice,springmvc,mybatis,boostrap
设计思路:这套解决方案做了对memcached的集群,以及一致性hash解决数据冗余,对高并发提供了支持;通过zookeeper对activitymq集群管理,实现了高可用HA,web方面使用了最流程的springmvc和mybatis。
项目截图:
1. 提交数据到数据库:
业务系统将数据放入消息中间件activitymq,数据支持系统监听activitymq插入数据库
![](https://i-blog.csdnimg.cn/blog_migrate/c24b0f82077b25993ed60fb47c5603b0.png)
2.数据查询
2:通过webservice接口从数据支持服务器查询数据
3:业务系统将查询到的数据放入缓存集群中方便下一次查询,同时给用户返回一份。
![](https://i-blog.csdnimg.cn/blog_migrate/8cb226df3cb7796872dc51ec8499bf99.png)
第二次查询的时候直接从memcached集群中取到了。
Zookeeper集群管理activitymq集群可以起到高可用的作用,截图演示如下:
我启用了三台linux centos服务器的activity IP分别为192.168.1.113 192.168.1.109 192.168.1.110
默认情况下,只有起重一台是master,
![](https://i-blog.csdnimg.cn/blog_migrate/55271f276274fc1acea6b3e00dd126bc.png)
比如说现在是113机器为master
![](https://i-blog.csdnimg.cn/blog_migrate/ccc1bf2600fc4cb14e4302926b7b4e36.png)
而其他两台不提供服务
当master down机时,比如我把master的113号机强行关掉模仿灾难发生:
![](https://i-blog.csdnimg.cn/blog_migrate/8b74fc55d01b0aa3b94f3a0f6e37c30a.png)
接下来
![](https://i-blog.csdnimg.cn/blog_migrate/074e3a6ab1e65872677592a43b49eeeb.png)
我访问113的时候,因为down机,113不提供服务了,而我们的activitymq集群因为有zookeeper管理,又自动连上了109的服务
![](https://i-blog.csdnimg.cn/blog_migrate/1579870e93bc2a6df15abcb38cd11945.png)
Java客户端提示:
项目地址:https://download.csdn.net/download/yangxiaobo118/10482990
测试地址:https://blog.csdn.net/yangxiaobo118/article/details/80716730
截图如下: