Redis

后端架构师技术图谱

ε祈祈猫儿з 提交于 2021-02-13 15:28:50
后端架构师技术图谱 原文链接: github.com 最后更新于20180502 数据结构 队列 集合 链表、数组 字典、关联数组 栈 树 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑树 B-,B+,B*树 LSM 树 BitSet 常用算法 排序、查找算法 选择排序 冒泡排序 插入排序 快速排序 归并排序 希尔排序 堆排序 计数排序 桶排序 基数排序 二分查找 Java 中的排序工具 布隆过滤器 字符串比较 KMP 算法 深度优先、广度优先 贪心算法 回溯算法 剪枝算法 动态规划 朴素贝叶斯 推荐算法 最小生成树算法 最短路径算法 并发 多线程 线程安全 一致性、事务 事务 ACID 特性 事务的隔离级别 MVCC 锁 Java中的锁和同步类 公平锁 & 非公平锁 悲观锁 乐观锁 & CAS ABA 问题 CopyOnWrite容器 RingBuffer 可重入锁 & 不可重入锁 互斥锁 & 共享锁 死锁 操作系统 计算机原理 CPU 多级缓存 进程 线程 协程 Linux 设计模式 设计模式的六大原则 23种常见设计模式 应用场景 单例模式 责任链模式 MVC IOC AOP UML 微服务思想 康威定律 运维 & 统计 & 技术支持 常规监控 APM 统计分析 持续集成(CI/CD) Jenkins 环境分离 自动化运维 Ansible puppet chef

最新 房多多java校招面经 (含整理过的面试题大全)

时光毁灭记忆、已成空白 提交于 2021-02-13 07:43:33
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火、京东、去哪儿、房多多等10家互联网公司的校招Offer,因为某些自身原因最终选择了房多多。6、7月主要是做系统复习、项目复盘、LeetCode与牛客刷题等准备工作,并且投了字节跳动、拼多多、猿辅导在内的几家公司的提前批,当然还是挂在了简历,因为毕竟自己的学校、学历、项目经验肯定比不过牛客网上那些大厂实习的大佬了,有时间也给自己做个总结,也希望能帮助到大家 (PS:再次编辑,感谢大家的支持,受宠若惊。私信问我要这些面试答案的,希望交流的朋友很多,但是很多不能及时看到,没办法一个个发给大家,大家注意下中间的百度网盘链接,整理成了pdf分享下给大家,也包括我之前面试准备的题跟视频,也可以进群交流,这样沟通成本少点) 校招心得 注重实力,保持良好心态 :面试过程中,继续巩固好自己的技术栈,然后保持一个良好的心态,尤其是还没有Offer的时候,心态别崩,其实到最后大家都会找到工作的,唯一的区别就是公司的方向、规模、待遇方面,也别太在意别人拿到了牛X的Offer,尤其是牛客网,天天神仙打架,刚开始自己也是很纳闷,怎么就能这么牛,最后也都见怪不怪了~。好多之前一直没Offer的人,可能突然某一天就收获到了几份Offer,所以不断提升自己的综合能力才是关键,与其在这羡慕别人,不如让自己心态沉静下来,认真复习、厚积薄发。 多交流,多思考

kubernetes 的pod控制器

回眸只為那壹抹淺笑 提交于 2021-02-13 02:46:58
pod是kubernetes的最小单元,自主式创建的pod删除就没有了,但是通过资源控制器创建的pod如果删除还会重建。pod控制器就是用于实现代替我们去管理pod的中间层,并帮我们确保每一个pod资源处于我们所定义或者所期望的目标状态,pod资源出现故障首先要重启容器,如果一直重启有问题的话会基于某种策略重新编排。自动适应期望pod数量 pod控制器类型简介:   1.ReplicaSet:     代用户创建指定数量的pod副本数量,确保pod副本数量符合用户期望的数量状态,如果少了多退少补,并且支持滚动式自动扩容和缩容机制。     ReplicaSet主要三个组件组成:         (1)用户期望的pod副本数量          (2)标签选择器,判断哪个pod归自己管理          (3)pod资源模板(当现存的pod数量不足,会根据pod资源模板进行新建帮助用户管理无状态的pod资源,精确反应用户定义的目标数量。不直接使用)   Deployment: (无状态,守护进程类,只关注群体不关注个体)     工作在ReplicaSet之上,用于管理无状态应用,目前来说最好的控制器。支持滚动更新和回滚功能,还提供声明式配置。(pod数量和node没有精确的配比,没有一对一的关系)   DaemonSet:(无状态,守护进程类,只关注群体不关注个体)    

kubernetes 的pod控制器

守給你的承諾、 提交于 2021-02-13 01:57:04
转载于网络 pod是kubernetes的最小单元,自主式创建的pod删除就没有了,但是通过资源控制器创建的pod如果删除还会重建。pod控制器就是用于实现代替我们去管理pod的中间层,并帮我们确保每一个pod资源处于我们所定义或者所期望的目标状态,pod资源出现故障首先要重启容器,如果一直重启有问题的话会基于某种策略重新编排。自动适应期望pod数量 pod控制器类型简介:   1.ReplicaSet:     代用户创建指定数量的pod副本数量,确保pod副本数量符合用户期望的数量状态,如果少了多退少补,并且支持滚动式自动扩容和缩容机制。     ReplicaSet主要三个组件组成:         (1)用户期望的pod副本数量          (2)标签选择器,判断哪个pod归自己管理          (3)pod资源模板(当现存的pod数量不足,会根据pod资源模板进行新建帮助用户管理无状态的pod资源,精确反应用户定义的目标数量。不直接使用)   Deployment: (无状态,守护进程类,只关注群体不关注个体)     工作在ReplicaSet之上,用于管理无状态应用,目前来说最好的控制器。支持滚动更新和回滚功能,还提供声明式配置。(pod数量和node没有精确的配比,没有一对一的关系)   DaemonSet:(无状态,守护进程类,只关注群体不关注个体)

java版本springcloud+springboot+mybatis 分布式 微服务 多租户 电子商务 直播带货 短视频带货 社交电商平台

一笑奈何 提交于 2021-02-12 21:21:41
涉及平台:平台管理(包含自营店面)、商家端(PC端、手机端)、买家平台(PC端、H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 核心架构:Spring Cloud、Spring Boot、Mybatis、Redis、SFTP 前端框架:VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序 核心思想:分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端分离、支持阿里Docker 开发模式:前后端分离、微服务开发 社交模式:VR全景虚拟现实、直播带货、短视频带货、分销分润、代跑腿配送等 源码来源 来源: oschina 链接: https://my.oschina.net/u/3613013/blog/4952492

微服务架构的四大金刚利器

可紊 提交于 2021-02-12 19:37:52
Photo @Christopher Campbell 文 | 孔凡勇 概述 互联网应用发展到今天,从单体应用架构到 SOA 以及今天的微服务,随着微服务化的不断升级进化,服务和服务之间的稳定性变得越来越重要,分布式系统之所以复杂,主要原因是分布式系统需要考虑到网络的延时和不可靠,微服务很重要的一个特质就是需要保证服务幂等,保证幂等性很重要的前提需要分布式锁控制并发,同时缓存、降级和限流是保护微服务系统运行稳定性的三大利器。 随着业务不断的发展,按业务域的划分子系统越来越多,每个业务系统都需要缓存、限流、分布式锁、幂等工具组件, distributed-tools 组件(暂未开源)正式包含了上述分布式系统所需要的基础功能组件。 distributed-tools 组件基于 tair、redis 分别提供了 2 个 springboot starter ,使用起来非常简单。 以使用缓存使用 redis 为例, application.properties 添加如下配置: redis.extend.hostName= 127.0 .0.1 redis.extend.port= 6379 redis.extend.password=pwdcode redis.extend.timeout= 10000 redis.idempotent.enabled= true 接下来的篇幅

从零开始搭建后台管理系统(一)--创建SpringBoot项目

不打扰是莪最后的温柔 提交于 2021-02-12 18:58:42
最近我在搭建一个SpringBoot的后台管理系统,写到一半想起来博客好像很久很久没更新了,所以准备把这个项目的开发过程记录到博客系统里,这个系统现在已经集成了Mysql、Mybatis-Plus、Redis、Shiro、Druid、lombok。这个系统我开发了两个星期了,主要时间花在Shiro上了,现在Shrio使用Redis作为Catch和Session存储器,未来准备集成Kafka作为日志记录系统,把日志数据写到数据库里。 第一步我们要创建一个SpringBoot项目,我个人习惯使用IDEA,所以使用IDEA创建SpringBoot项目。 打开IDEA,点击File->New->Project。然后选择SpringInitializr,点next,配置项目信息。我自己本地装的还是JDK8,所以JavaVersion就选8。配置信息配置好之后,就要选择引用的包,我们到时候自己在pom文件里添加就行,继续next,配置项目名称。最后配置一下项目名称和创建地址,我们就搭建成了。 这个是项目的地址 https://github.com/Raindtop/Spring-Backstage,这个后台搭建的所有代码都在这里面。 来源: oschina 链接: https://my.oschina.net/u/4109273/blog/4952473

明年跳槽,我劝你千万别忽略这些“细节”!不然……

自闭症网瘾萝莉.ら 提交于 2021-02-12 13:00:51
招聘黄金季,大厂每月都要吸纳几十名 Java 开发,对普通人来说,那可是几十张通往财务自由的船票。经验要求一般 3 年起,但很多 3 年经验的 Java,却在一面就挂得很惨。 Java 3 年 的“坎”,究竟是什么呢?耐心看完,一定对你有帮助。 技术岗,不是靠工作年限吃饭的岗位。3年经验是个幌子,我整理过一份详细的大厂岗位需求表,很多 20K 以上的 Java 岗,基本都要求具备 高并发分布式的相关经验。老练的 面试官知道,对于一个 Java 程序员而言, 如果对并发编程有全面而深入的了解,那说明技术功底足够扎实。 某招聘网站真实岗位需求 所以,并发编程也是大厂面试的必考项。 例如悲观锁和乐观锁分别适合在什么场景应用?线程、进程和协程的本质区别是什么?常见的高并发分布式系统架构有哪些?互联网流量激增的时代,对 应用程序的 并发性能、处理能力、处理时效性 有着更高要求 ,高并发编程,直接成为资深开发和小白开发本质的分水岭。 然而,高并发场景各不相同,在学习过程中,我们只能死记硬背全部方案吗?当然不是。前58技术委员会主席孙玄(江湖人称“玄姐”)认为, 并发编程的学习不同于其他技术 ,深入理解 JVM、 JMM、Volatile、锁、CAS、Synchronized、AQS 等 底层核心的基础上,再通过实践 Dubbo、Redis 等服务构建高并发系统,这样就能从点到面

spring cloud gateway 之限流篇

。_饼干妹妹 提交于 2021-02-12 11:55:35
转载请标明出处: https://www.fangzhipeng.com 本文出自 方志朋的博客 在高并发的系统中,往往需要在系统中做限流,一方面是为了防止大量的请求使服务器过载,导致服务不可用,另一方面是为了防止网络攻击。 常见的限流方式,比如Hystrix适用线程池隔离,超过线程池的负载,走熔断的逻辑。在一般应用服务器中,比如tomcat容器也是通过限制它的线程数来控制并发的;也有通过时间窗口的平均速度来控制流量。常见的限流纬度有比如通过Ip来限流、通过uri来限流、通过用户访问频次来限流。 一般限流都是在网关这一层做,比如Nginx、Openresty、kong、zuul、Spring Cloud Gateway等;也可以在应用层通过Aop这种方式去做限流。 本文详细探讨在 Spring Cloud Gateway 中如何实现限流。 常见的限流算法 计数器算法 计数器算法采用计数器实现限流有点简单粗暴,一般我们会限制一秒钟的能够通过的请求数,比如限流qps为100,算法的实现思路就是从第一个请求进来开始计时,在接下去的1s内,每来一个请求,就把计数加1,如果累加的数字达到了100,那么后续的请求就会被全部拒绝。等到1s结束后,把计数恢复成0,重新开始计数。具体的实现可以是这样的:对于每次服务调用,可以通过AtomicLong#incrementAndGet(

靶机知识点汇总

a 夏天 提交于 2021-02-12 09:49:19
做了二十个靶机了(公众号发会留两个存货 ),对一些知识点做个汇总 一些没啥意思的用 exp 直接打的,不计进来 nmap 在做靶机之前,我对于 web 安全的了解仅限于一些基础的 CTF 题目,压根就没用过 nmap,虽然看过几篇介绍的文章 nmap -sC -A -T 4 -n -p- 10.10.10.171 nmap参数: -sC 根据端口识别的服务,调用默认脚本 -A OS识别,版本探测,脚本扫描和traceroute -T(0-5) 时间优化 -n/-R 不对IP进行域名反向解析/为所有的IP都进行域名的反向解析 -p- 扫描所有端口 searchsploit searchsploit 是一个命令行搜索 exp 的工具,可以直接在 kali 终端中搜 exp,使用空格来区分关键词 例如:searchsploit opennetadmin 加上 -m 可以把 exp 复制到当前目录 netstat netstat 各个参数解释 -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字 -l 仅列出有在 Listen (监听) 的服务状态 -p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s