一、Zookeeper概述1、概述Zookeeper 是一个开源的为分布式框架提供协调服务的 Apache 项目。在分布式系统中,扮演注册中心的角色。
有时候碰到服务器CPU飙升或者程序卡死之类的问题,一般都不太好定位。这类bug一般都隐藏的比较深并且还可能是偶发性的,比较棘手。
在划水摸鱼之际,突然听到有的用户反映增加了多条一样的数据,这用户立马就不干了,让我们要马上修复,不然就要投诉我们。 这下鱼也摸不了了,只能去看看发生了什么事情。据用户反映,当时网络有点卡,所以多点了几次提交,最后发现出现了十几条一样的数据。只能说现在的人都太心急了,连这几秒的时间都等不了,惯的。心里吐槽归吐槽,这问题还是要解决的,不然老板可不惯我。 其实想想就知道为啥会这样,在网络延迟的时候,用户
在分布式系统下,使用Java中的synchronized或者Lock已经不能满足需求了。关于分布式锁的实现,
学习ReentrantLock之前,先了解一下可重入锁的概念。何为可重入锁,顾名思义,就是可重入的。真是听君一席话,胜听一席话啊。正经点,可重入锁就是能够支持同一个线程对资源的重复加锁。注意两个关键字:同一线程和重复。像synchronized关键字也实现了可重入。用synchronized修饰的方法,在进行递归调用时,执行线程在获取了锁之后仍然能够连续多次获得该锁,并不会出现阻塞的情况。再比如说
1、AQS介绍AQS全称AbstractQueuedSynchronizer,是一个同步器,用来构建锁或者其他同步组件的基础框架。内部主要使用一个volatile修饰的state变量和一个FIFO双向队列来实现的。 /** * Head of the wait queue, lazily initialized. Except for * initialization, it is modified only via method setHead. Note: * If
http协议可能存在信息窃听或身份伪造等安全问题,使用https通信机
本文基于LeetCode第146. LRU 缓存机制进行实现。题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。
673. 最长递增子序列的个数
2021-09-14 LeetCode每日一题链接:https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting/标签:数组、双指针、字符串、排序题目给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,
给定平面上 n 对 互不相同 的点 points ,其中 points[i] = [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序)。 返回平面上所有回旋镖的数量。
2021-09-15 LeetCode每日一题链接:https://leetcode-cn/problems/find-peak-element/标签:数组、二分查找题目峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞
链接:https://leetcode-cn.com/problems/russian-doll-envelopes/标签:数组、二分查找、动态规划、排序题目给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如
1、分布式系统中CAP分别代表什么?对它们的理解?CAP即一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。一致性(Consistency):所有节点同时看到相同的数据可用性(Availability):任何时候,读写都是成功的分区容错性(Partition tolerance):当部分节点出现消息丢失或者分区故
4核的服务器突然很卡,急忙跑上去看看发生了什么事。top命令查看占用率最高的进程pid为12033,top -Hp 12033查看进程下面线程的使用情况这俩罪魁祸首用的最多jstack 12033 > check.txt查看进程的堆栈信息,输出到文件后,通过线程的16进制看看在干啥printf "%x\n" 12035打印16进制,然后在check.txt里面进行搜索0
2021-09-05 LeetCode每日一题链接:https://leetcode-cn.com/problems/implement-rand10-using-rand7/标签:数学、拒绝采样、概率与统计、随机化题目已有方法 rand7 可生成 1 到 7 范围内的均匀随机
2021-08-19 LeetCode每日一题链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string/标签:字符串、双指针题目给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串
2021-08-20 LeetCode每日一题标签:字符串、双指针题目给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
2021-08-21 LeetCode每日一题标签:字符串、双指针题目给你一个字符数组 chars ,请使用下述算法压缩:从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 :如果这一组长度为 1 ,则将字符追加到 s 中。否则,需要向 s 追加字符,后跟这一组的长度。
2021-08-22 LeetCode每日一题链接:https://leetcode-cn.com/problems/escape-the-ghosts/标签:数组、数学题目你在进行一个简化版的吃豆人游戏。
1、vue-quill-editor动态禁用项目中把vue-quill-editor单独封装成了一个组件,通过props传递readOnly参数来设置是否禁用editor。开发中发现可以实现禁用效果,但取决于第一次打开这个编辑器的状态,如果第一次打开时readOnly参数为true,那么后面一直都是true,尽管传入的readOnly参数不同。<editor v-model="form.noticeContent" :min-height="192" :read-only="form.status
本人业余前端开发,因为公司(很坑)觉得我很牛逼,所以让我前后端一起玩,无奈的我只能磕磕碰碰的研究起了vue。开发项目的时候,用到文件上传的功能很常见,包括单文件上传和多文件上传,上传各种类型的文件。在vue里面要实现多文件上传功能,还是很方便的。本文就一起来学习一下,如何把多文件上传功能封装成一个组件,后面需要使用的时候,直接两三行代码就能搞定。1、前端代码首先我们先看前端,如何把它封装成一个组件。我们在调用它的时候,可能需要从外部传入一些参数给它,所以我们需要定义一些传入参数。这些参数我们可以放到
2021-08-14 LeetCode每日一题链接:https://leetcode-cn.com/problems/count-unhappy-friends/标签:数组、模拟题目给你一份 n 位朋友的亲近程度列表,其中 n 总是 偶数 。对每位朋友 i,preferences[i] 包含一份 按亲近程度从高到低排列 的朋友列表。换句话说,排在列表前面的朋友与 i 的亲近程度比排在列表后面的朋友更高。每个列表中的朋友均以 0 到 n-1 之间的整数表示。所有的朋友被分成几对,配对情况以列表
最近项目中需要实现点击按钮下载文件的需求,前端用的vue,因为文件是各种类型的,比如图片、pdf、word之类的。这里后端是可以返回文件的地址给前端的,但我看了下网上各种五花八门的答案,感觉都不是我想要的。因为不确定文件是哪种类型的,所以我们在保存文件到数据库的时候,应该把文件的Content-Type一起存入,这样从数据库取出返回前端的时候,带上Content-Type标识是哪种类型的文件,前端解析即可。1、后端代码这里我先写后端的接口,考虑一下后端需要什么东西。因为文件信息已经提前存入数据库,所以
2021-08-10 LeetCode每日一题链接:https://leetcode-cn.com/problems`
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号