摘要: RABC权限管理 一、权限管理的目的 1、统一精细化、标准化权限管理。 2、业务应用数据权限多样性,不同的应用数据管控的方式要求不同;同一个应用不同的场景和功能对权限的控制不同,需要建设通用性的权限模型; 3、权限模型的建模需要支持多级管控。 4、权限自管控 二、RABC权限管理 1、基本概念 基于 阅读全文
posted @ 2021-05-19 20:42 majingyun 阅读(1973) 评论(0) 推荐(0) 编辑
摘要: Stream +nacos 一、消息队列 1、消息队列的作用 1)削峰填谷 2)应用解耦 3)异步处理 4)消息通讯 2、发送方式 1)点对点 2)发布-订阅模式 3、Kafka 中间是kafka的集群,包含多个broker,每一个broker相当于一个kafka的实例。Kafka消息不丢失的机制就 阅读全文
posted @ 2021-05-18 18:57 majingyun 阅读(287) 评论(0) 推荐(0) 编辑
摘要: Spring Cloud Gateway 一、网关理论介绍 1、定义 把暴露在service之前的组件,都可以叫网关。是service前置的架构。 2、BFF(backend for frontend) 专门为前端定制的一个后端接口, 一个页面即在手机、web等页面中显示。不同的展示需要访问不同的s 阅读全文
posted @ 2021-05-14 13:50 majingyun 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 算法题常见框架 一、树的遍历 刷题要先刷二叉树,因为二叉树最容易培养框架思维。 1、二叉树的遍历 分为前中后序遍历。 DLR--前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面) LDR--中序遍历(根在中,从左往右,一棵树的左子树永远在根前面,根永远在右子树前面) 阅读全文
posted @ 2021-05-11 18:03 majingyun 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 基础数据结构与算法 一、实战 问题1:我们程序里的数据存储方式有几种? 数组(顺序存储)链表(链式存储) 数据结构 存储形式 队列、栈 数组、链表 树 链表 图 数组(邻接矩阵) 哈希表 数组 数组:连续存储。 通过索引可以查找到对应的元素,查找快,查找的时间复杂度O(1); 存在扩容问题,扩容的时 阅读全文
posted @ 2021-05-09 18:40 majingyun 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 服务治理 一、服务的演变之路 1、单体服务 优点:① 架构简单 ② 部署简单,对运维人员比较友好; 缺点:① 代码量日益庞大 ② 上线部署特别特别慢;③ 有的模块是IO密集型的,有的模块是cpu密集型的,对硬件的要求不一样,cpu密集型提升cpu核数;如果是IO密集型的,可以将机器硬盘变为固态硬盘, 阅读全文
posted @ 2021-04-28 19:47 majingyun 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 服务治理 一、微服务架构与传统单体架构 1、微服务架构与SOA服务化的区别 SOA服务 微服务 目标 强调异构服务之间协作和集成 拆分模块、快速拓展 管理 着重中央管理 重在分散管理 粒度 通常粒度粗 粒度细,职责单一 二、常用微服务架构的设计模式 1、聚合器微服务设计模式 用户对聚合器进行单个调用 阅读全文
posted @ 2021-04-23 21:09 majingyun 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 一、AQS相关面试 1、synchronized 与Rentrantlock 的区别是什么? Synchronized,java关键字,可以自动去操作加锁和释放锁,不需要手动编码实现。它的底层行为是由jvm实现的。 Rentrantlock需要调用加锁和解锁的方法,它的底层是AQS实现的。 区别 S 阅读全文
posted @ 2021-04-23 20:14 majingyun 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 线程池 一、线程池介绍 目的:为了避免系统频繁地创建和销毁,我们可以让创建的线程复用。 意义:在线程池中,总有那么几个活跃线程,当你需要使用线程时,可以从池子里随便拿一个空闲线程,当完成工作时,并不着急关闭线程,而是将这个线程退回到线程池中,方便他人使用。这样减少了频繁地创建和销毁线程,提高性能。 阅读全文
posted @ 2021-04-16 14:13 majingyun 阅读(233) 评论(0) 推荐(0) 编辑
摘要: AQS并发框架介绍 一、jdk高级并发组件介绍 1、CyclicBarrier 协调多线程阻塞在某个屏障点,并在指定数量线程全达到屏障点后同时解除阻塞。(面包车的例子) 可以循环使用 使用lock.condition实现 如何使用: Await 当我们拿到1个CyclicBarrier实例时,如果调 阅读全文
posted @ 2021-04-14 17:23 majingyun 阅读(128) 评论(0) 推荐(0) 编辑