程序员的自我修养
Home » 标签 » Only 5

Redis设置密码的那些坑

2条评论848次浏览

最近集团安全部扫描到我们组的redis没有设置密码。如何扫描的?一个脚本,登陆到服务器上查看固定路径下的redis配置,没有配置密码就被扫出来。简单无脑暴力。

于是开始虐心的添加redis密码之旅。

Server端配置

方法1:redis-cli -h xxx -p xxx CONFIG SET requirepass xxx

方法2:修改redis.conf文件,配置requirepass

对于twemproxy,可以升级到最新版本,然后配置redis_auth xxx。

Client端配置(Jedis)

项目中都是用的JedisPool。我们的方案是给所有代码进行如下处理:

看起来应该没问题,实际上测试了下,也一切ok,于是开始了第一次改密码尝试。将涉及到的七八个应用、几十处代码全部修改完毕上线后,一切正常。然后redis server端添加密码,瞬间崩溃了四五个服务,只剩两三个服务正常运转。于是立马去掉密码,开始查原因。

JedisPool初始化的坑

经过一轮排查,发现出问题的服务都是用的上面的方式初始化JedisPool。而没有出问题的都是下列方式初始化:

然后看了下源码,果然在有database参数且不等于0时,会进行一次select操作,而我们的password用的是null,所以就会报错。于是又一次将涉及到的七八个应用、几十处代码全部修改完毕,开始第二次改密码尝试。所有应用上线后,一切正常。开始redis server端添加密码,瞬间又是几个服务崩溃,几个服务正常。于是立马去掉密码,开始第二次查原因。

setTestOnBorrow的坑

又一轮排查后,发现出问题的服务都是JedisPoolConfig::setTestOnBorrow(true),没有出问题的要么是设置为false,要么是没有设置,而没有设置的默认情况下就是false。然后再次看了下源码,setTestOnBorrow应该是从pool中获取到实例的时候会去ping一下,然而此时没有auth过,于是又报错了。无奈,只能将所有的JedisPoolConfig::setTestOnBorrow(true)注释掉,开始第三次尝试。

还好,没有其他幺蛾子了,这次终于没有问题,加上密码,去掉密码,服务都正常运转。心塞。

分类:Redis, 战5渣
标签:,

战5渣系列——Scala map()

1条评论973次浏览

Twitter的Scala School上面对map()函数介绍如下:

Evaluates a function over each element in the list, returning a list with the same number of elements.

Scala官网上面的介绍:

Twitter的解释是对一个list的每个element作用一个function,并返回数量相同的list。Scala官网则只说对一个collection的每个元素作用一个function,并返回一个新的collection。

对于只认真看过Scala School的我而言,map的作用就是对一个collection的每个元素作用一个function,并返回一个相同大小的collection。[哭笑不得]
(更多…)

分类:Scala语言, 战5渣
标签:,

战5渣系列——Kafka Leader None

9条评论15,068次浏览

前几天大概是脑子短路了,在zookeeper的client里面本想执行ls /kafka的,结果不小心执行成了rmr /kafka

当时我的反应是这样的:1058005442427

然后迅速查了下所有的线上服务,发现居然没有受到影响。然后我的反应是这样的:1444572330_500x500.png
(更多…)

分类:Apache Kafka, 战5渣
标签:, ,

战5渣系列——Spark Streaming启动问题

0条评论4,816次浏览

测试集群上Flume监控本地文件夹+Spark Streaming跑的没问题,但放到生产环境上来测试却一直报错,启动命令如下:

报错信息如下:

(更多…)

分类:Apache Spark, 战5渣
标签:,

战5渣系列——还是String的split方法

3条评论5,615次浏览

发现最近弱爆了,说多了都是泪,不想说了,因为我是战5渣。

背景简介

今天写MR程序发现一直报数组越界的错误。这么简单的异常还不是分分钟解决?结果,恩,改了10次以后,发现还是不对。具体出错的代码已经可以确定,如下:

原因排查

显然单纯的看代码是没有问题的,结合具体的数据才可能出错,比如分隔后的数组长度不到4——这是我的第一反应。更准确的说,是我编码的时候就想到了,所以采用了value.toString().split("\t",4)这个方法。根据我的第一篇博文中记录的经验,String的split方法会将数组后面为空的字符串截取掉,需要采用split(String regex, int limit)方法才能正确的获取到想要的长度。

所以若是经验正确无误,那怎么也不会报数组越界的错误吧,顶多会在parseLong的地方报无法转换的错。但事实就是一直报数据越界的错误,改了10次其它地方都无果。
(更多…)

分类:Java语言, 战5渣
标签:,

战5渣系列——记一次排查MR程序逻辑错误

0条评论2,289次浏览

前言

战5渣,意思是战斗力只有5的渣渣。战斗力多少算高没有一般的定论,但战斗力只有5的肯定是渣渣,如下图所示。战5渣系列(真心希望这个系列的文章越少越好)用来记录工作中遇到的那些想抽自己脸的错误经历,并希望以此为戒。
战斗值

背景简介

出错部分的需求简介:统计某个时间范围内(范围A)新装的电话号码在某个时间范围内(范围B)的通话频率,并过滤出通话频率小于阀值的电话号码。

若是采用关系型数据库来处理,由于通话记录的量十分巨大,oracle基本上处于工作不能的状态。于是采用MR来进行处理,相当于一个非常简单的join操作。

由于时间范围A内的新装电话号码数量并不大,基本都在1W条以内,所以可以采用map端join来进行处理:map阶段处理的是每一条通话记录,在map的setup阶段将所有号码读出并放入hashmap中,遍历通话记录时若该记录的号码在hashmap中时,将相应的计数值加1。最后在map的cleanup阶段,遍历该hashmap,并输出所有的记录。

reduce阶段则统计每条记录的总频率,然后将小于阀值的记录输出。

阅读全文>>

标签:,
11
profile
  • 文章总数:79篇
  • 评论总数:254条
  • 分类总数:31个
  • 标签总数:44个
  • 运行时间:1193天

大家好,欢迎来到selfup.cn。

这不是一个只谈技术的博客,这里记录我成长的点点滴滴,coding、riding and everthing!

最新评论
  • Anonymous: :arrow: :neutral: :cry:
  • Anonymous: java.io.NotSerializableExcepti on: DStream checkpointing has been enabled but the DStreams with their...
  • wick: HI,请问一下,U,S,V得到后,怎么得到近似矩阵呢(用sp ark java),谢谢。
  • Michael Whitaker: Thank you for this blog, it was very helpful in troubleshooting my own issues. It seems that no...
  • Anonymous: :mad:
  • Anonymous: :???:
  • Anonymous: :mad: :mad: :mad:
  • 洋流: 哥们,我问个问题,你把testOnborrow去掉了。。如果 得到的jedis资源是个不可用的,服务从来都不出问题么?
  • 洋流: 哥们,我问个问题,你把testOnborrow去掉了。。如果 得到的jedis资源是个不可用的,服务从来都不出问题么?
  • Anonymous: :razz: :evil: :grin:
  • 张瑞昌: 有很多,比较常见的是Jacob迭代法,一次迭代O(n^3), 迭代次数不清楚。 如果是手动算的话按照定义求就可以了
  • Anonymous: :mrgreen:
  • lc277: 你好 我想问下一般删除节点要多久,要删除的datanode大概用了 1t,解除授权已经30多小时还没完成,请问是出现什么问题了吗 麻烦告诉下谢谢 qq1844554123
  • Anonymous: 你好 我想问下一般删除节点要多久,要删除的datanode大概用了 1t,解除授权已经30多小时还没完成,请问是出现什么问题了吗
  • Anonymous: :smile: :grin: :eek:
  • 李雪璇: 想要完整代码,可以帮忙发给我吗
  • Anonymous: 请问一下,那个 user的推荐结果楼主查看了么? 为什么输入数据 最高是五分,输出结果都是7分8分啥的?怎么设置输出的分数的最 大值?
  • Anonymous: 那个 user的推荐结果楼主查看了么? 为什么输入数据 最高是五分,输出结果都是7分8分啥的?
  • Anonymous: stopGracefullyOnShutdown在yarn- client模式下我测试的无效,你的呢
  • Anonymous: 另外,import的lib包能否发个列表.