Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

当我们在生产环境中,发现异常是由哪个业务产生时,或者是哪个应用服务器产生的,那如何很快速截断的让有问题的业务和应用服务器,先不让他们访问我们公共redis集群,等排查出原因在恢复他们的访问权限。

解决方案

小伙伴看到这里,感觉怎么样?是不是工作中,没有想过这些问题,工作中就直接按照网上的介绍先拿来用了。

现在是不是心里在想,怎么去解决上面的问题?

老顾这里介绍一下解决思路,具体整个代码等老顾的开源项目rb-cache上线后,会分享给大家。

区分业务

这个问题解决相对比较简单,就是对我们现有的客户端工具,进行二次封装
Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

上图就是定义一个二次封装接口
Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

其实原理就是强制在方法中,要开发人员赋予业务区分,每个业务都是在开发前,管理人员定下来的,这个管理就比较简单了。

如果项目管理中,对业务的划分比较合理的话,可以在外面再封装一个简单的方法,把business业务放在配置文件中,这样就不需要每次都要传business这个参数了。

优雅扩容

解决这个问题,其实原理比较简单,就是程序如果能够知道redis集群地址产生了变化,重新设置一下jedis客户端的连接配置。现在的问题就是如何知道redis集群地址发生了改变?

我们可以采用把redis的集群地址配置在zookeeper中,应用在启动的时候,获取zk上的集群地址的值,进行初始化。如果想要改变集群地址,要在zk上面进行设置。

zk重要的特性就是监听特性节点发生变化,就会立刻把变化发送给应用,从而应用获取到值,重新设置jedis客户端连接

Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

发现异常

发现异常这个问题,其实就是一个监控的问题,我们需要把各个客户端使用redis的情况进行监控。怎么监控?

需要一个监控工具,这个监控工具网上有几个,推荐使用小米的open-falcon,自行搭建改监控系统,搭建比较复杂,但功能比较强大,很多公司都在使用。

当然小伙伴们可以用别的监控工具,只要数据上报协议,和监控报表输出功能即可,当然也要有报警的功能,及时给运维人员报告

再使用Aop拦截redis操作类,拦截redis操作,把相关数据进行封装。每隔1分钟把这些数据上报到open-falcon平台中。具体监控什么数据,由业务决定,一般要把设置的key,业务,操作时长,哪个客户端IP发起的,都需要监控。

在可以设置相关的报警规则,如:某个key一直被调用,在一段时间内操作次数太高。这样就可以方便排查哪些key导致cpu负载太高,就可以去看一下设置这个key的代码,有没有什么问题?是不是死循环等问题?

截断异常

在上面的发现异常的基础上面,如果发现某些业务应用,不正常,就可以立即发起截断该客户端的请求,这样可以保证其他业务不受影响。这里我们使用客户端方式去实现截断。原理也很简单,在redis二次封装的类中,我们需要判断本机是否在黑名单中,如果存在,则无法操作方法,或报异常。
Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

如何知道黑名单的变化,跟优雅扩容那个redis集群地址的改变,方案一样。

总结

在企业应用中,小伙伴们要经常去思考,业务进行中,如何方便管理,及时发现问题,是非常重要的。这也是很多管理者经常忽略的,都只是先把功能完成了,而不顾管理和监控。希望这篇文章能够帮助大家,从另一个纬度发现问题。谢谢!!!

END

欢迎长按下图关注公众号:享学课堂online!

2021年Java中高级面试必备知识点总结

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。

本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。

目录:

Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

部分内容:

Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

Redis缓存系列:你知道redis企业实战存在的问题吗,Java最牛教材

上一篇:python easy_install 发生Unable to find vcvarsall.bat错误的处理方法


下一篇:关于call(),apply()