集成elastic-job分布式调度定时任务 定时任务这一组件在工作过程中经常使用到,在单机节点上可以直接选择使用自带的定时任务组件,而这种定时任务一旦确定固化了定时触发策略,也无法动态开启关闭,所以后来有了。是定时任务领域的一个开源项目,由开发,可以通过调度定时任务的启停及策略,还有对事务跟集群的支持等等强大功能。但是而就是当当在Quartz的基础上进行了二次封装,这两个版本除了部署方式不一样在上是一样的,相对于。
Spring boot集成RocketMQ 之前安装好了RocketMQ,这一篇就简单记录一下是怎么集成RocketMQ的,如果有需要安装RocketMQ的同学看这一篇,Linux在线安装RocketMQ,如果没有linux环境的同学也可以本地启动,只需要有java环境即可。
Linux在线安装RocketMQ 消息队列是在工作中作为服务解耦和消息推送等各种场景的应用中使用的组件,常用的队列组件有ActiveMQRabbitMQRocketMQKafka消息队列主要有2种模式,点对点模式跟发布/订阅模式。
使用redis就可以获得root权限,怎么做的? 我在云服务上安过两次redis,每次都被提示攻击他人。(我是好人怎么可能会干坏事呢) 所以我的服务器肯定被人入侵了,因为是个人服务器没什么重要东西端口是常年开放的也没有开启白名单防火墙,最重要的是密码都不设。怪不得天天被入侵,下面进行一下复现。
Linux在线安装nodejs并配置定时任务 昨天安装redis后晚上提醒被当做跳板机给入侵了,当时也没有管,那台机器上没啥紧急重要的东西,也就挂了两个node的定时任务,但是在今天早上发现定时任务没触发,进服务器里wget、curl、node等命令都失效了,看来是给服务器深层保洁了一遍,连定时任务都没了。重装完系统重新安装一下node,配置一下定时任务。
Linux在线安装redis并开启远程访问 今天一个之前的项目需要进行一下调整,但是因为项目的redis连不上了,项目启动是可以启动的,但是登陆不了,需要缓存token,我又不想动历史代码。我本机又安装了太多东西扛不住了,本来在k8s集群中搞了一个,但是端口能通用redis客户端却无法连接,时间紧急还是先安装一个linux的吧。
KubeSphere安装redis集群,全程超带劲 redis是在开发过程中经常用到的缓存中间件,在生产环境中为了考虑稳定性和高可用一般为集群模式的部署。常规部署在虚拟机上的方式配置繁琐并且需要手动重启节点,而使用K8S进行redis安装便捷:使用镜像或者yaml配置文件即可一件安装自动调度:容器挂掉后会自动调度重启和资源分配缩扩容方便:在扩容、缩容方面的优点无需多说,一键伸缩稳定高效k8s在整个集群上进行调度,只要整个集群不挂掉总会调度到合适节点重启容器服务。
最小栈(155)题解 方法,获取堆栈中的最小元素,如果遍历整个堆栈区找寻最小值时间复杂度为。辅助栈跟原始栈的操作是一致的,但是辅助栈的数据需要取。,这样在获取栈内最小值时直接从辅助栈进行。操作就简单了,不需要判断直接两个栈进行。等类可以支持的,它们的时间复杂度为。辅助栈的步骤跟原始栈的步骤一致,即可,就不画图了,看下面代码。,要达到两个栈操作的一致。,想要将时间复杂度优化到。
手工实现一个字符串内容替换方法来替换replace 在遇到字符串替换的场景上replace方法跟replaceAll方法是最常用的解决办法,那如果让你手动处理字符串替换你会怎么做呢?《剑指Offer》的05题就是这样一道:如果使用replace方法一行代码就处理完毕} }如果让我自己实现的话,代码如下i ++) {i ++) {j ++) {} else {} f ++;} }
零矩阵题解 首先给定的矩阵是个方形矩阵,宽高不一定一样。所以在定义临时数组存储时要注意宽高长度。编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。如果都在一个循环里进行标记和值刷新有点混乱不好梳理,所以将。的值则按十字清除所在行和列的值,想想如何实现呢。所以如果使用这种方式需要标记行列为已修改值。,这种方式是可以的,但是要注意修改了的行跟列。,后面进行这两个数组的遍历,如果为。,否则后修改的值跟原始数据会产生。时就清除对应矩阵的行、列数据。
方形矩阵旋转(48)题解 在原地旋转的话会覆盖一部分值,所以也需要存储被覆盖的值,如果按上面的直接一行进行覆盖调整那产生的覆盖值太多 ,所以要一个一个值进行调整到正确的位置。从每行第一位开始调整。矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。题目还要求尝试不适应额外空间,所以就不能用临时矩阵,需要再给定的矩阵内旋转,也就是。的正方形矩阵,所以他的宽高是已知的。不占用额外内存空间能否做到?
安装Android Studio并创建一个Android Demo 安卓的开发环境可以使用也可以使用,现在常用的都是,毕竟是Google官方提供专门为Android量身定做的开发工具,响应速度相比Eclipse更快更轻量。
整数数组判断重复(217)题解 暴力破解的方式很简单,使用双循环,两个集合每一种结果都进行遍历比较对值是否相同,但是同一项值不能跟同一项比,所以循环方式为梯形。排序比重的方式就是先将整个数组按递增或者递减的方式排序,保证相邻数值是最小差,循环时通过当前。值进行判断,只要相等则是有重复的。但是这种情况下优先排序也比较浪费时间。使用去重集合是这三种中的最优解了,不需要额外排序,循环插入。如果数组中每个元素互不相同,返回。如果任一值在数组中出现。这种方式数据越多效率越低。集合,如果插入返回的。
罗马数字转整数(13)题解 因为正常情况下都是递减相加,所以判断非正常逻辑也就是递增相减的情况。通常情况下,罗马数字中小的数字在大的数字的右边。为后举例,从上面的特征分析如果相邻的两个数字是递减则相加()、递增则判断是否符合六种情况,而那六种情况的共同特征则是。,因为被减的数字在前已经执行过一次增加。:先预制罗马数字跟整数的对照关系,使用。:循环字符串,获取对应每个字符的整数。给定一个罗马数字,将其转换成整数。则判断是否上面的六种情况并且相减。的左边,所表示的数等于大数。判断的效率跟内存消耗更低。,内存消耗相差不多,如下图。
手写一个二叉搜索树(BST) 在上一篇写了一个简单的双向链表,难度是简简单单,这次来尝试二叉树,难度是也还行吧,多少有点夸张的成分了,不过对于大佬来说这些就是简简单单。难度列表:集合:有手就行链表:简简单单队列:基础操作二叉树:也还行吧平衡二叉树:普普通通红黑树:有点难度了堆/栈:难度提升了图:今天是高端局。......
手写一个泛型双向链表 在当前大环境的背景下面试不问点算法都不算个合格的面试了(卷),而与算法紧密相关的数据结构也是经常问到的,像集合、链表、树、图、栈、堆、队列、矩阵等等等等。是不是感觉难度如下:集合:有手就行链表:简简单单队列:基础操作二叉树:也还行吧平衡二叉树:普普通通红黑树:有点难度了堆/栈:难度提升了图:今天是高端局这么一套组合拳下来,还是有点难度的,本篇就先手写简简单单的链表,链表里有单向链表跟双向链表,会双向链表还能不会单向链表吗,直接上双向链表。双向链表的属性内容上节点prev跟下节点next。...
WebSocket开发(心跳监测)功能 在之前的文章中完成了客服对话的Demo功能,但是现在的连接是无限制的长时间连接没有做心跳、失活、超时断连等功能,心跳的实现方法有很多种,并且WebSocket就提供了ping/pong类型的消息。如果是前端发送心跳,后端需要返回心跳,也就是ping pong的过程会有两次数据传递。后端来发送心跳的话,就只需要发送ping,前端不需要回应。这两种后续的处理方式也有各自优缺点。客户端触发:优点灵活控制无需设置主动超时逻辑清晰服务端简单缺点两次消息传递消息内容容易篡改服务端触发:优点节省宽带。...