方案整合就能解决很多问题
档说明:只记录关键地方; 2022-11-04
方案收集
Datastore,Async Worker(异步工作),Task Queue(任务队列),以及 Scheduler(定时任务) 能解决大部分问题
CRUD 、数据权限、消息推送、工作流引擎,数据字典,消息队列,通用认证
领域模型(Domain) + 状态机 (FSM) + 工作流(workflow) +设计模式
分布式事务最终一致性常用方案 消息队列+定时补偿机制的最终一致性
状态机(state machine)、工作流(workflow) 、业务流(BMP)、 基于角色的权限管理(RBAC)、决策树
RBAC
分层设计
JWT是一种认证协议;
OAuth2是一种授权框架
WebAuthn(Web 身份验证) https://help.aliyun.com/document_detail/332907.htm
Sha256Hash+salt 加盐密码哈希
Microservices(微服务架构)和DDD(领域驱动设计)
状态机(state machine)、工作流(workflow) 、业务流(BMP)、 基于角色的权限管理(RBAC)、决策树
动作和状态分开
需求和问题分开
负载均衡模型分别为0层:DNS负载,第1层:ECMP路由;第二层:L4负载层;第三层:L7负载层
io_uring
关于Zero Trust (零信任)
零拷贝(Zero-Copy)
SO_REUSEPORT
密码验证设计
认证和授权是两个事情,
$password='passowrd';
$salt=bin2hex(openssl_random_pseudo_bytes(rand(8,20)));
$password=hash('sha256',$password,false).$salt;
常见解决思路算法
1.滑动窗口
2.二指针或迭代器
3.快速和慢速指针或迭代器
4.合并区间
5.循环排序
6.原地反转链表
7.树的宽度优先搜索(Tree BFS)
8.树的深度优先搜索(Tree DFS)
9.Two Heaps
10.子集
11.经过修改的二叉搜索
12.前 K 个元素
13.K 路合并
14.拓扑排序
IOC: Inversion of Control (控制反转 )
DI: Dependecy Injection (依赖注入)
AOP: Aspect Oriented Programming (面向切面编程)
SOA: service-Oriented Architecture ( 面向服务的架构)
Compiling Vs Transpiling
Compiling这个术语通常是将一种语言编写的源代码转换为另一种。
Transpiling是一个特定的术语,用于将一种语言编写的源代码转换为另一种具有相同抽象层次的语言。例子:JS中的Babel就是一个转码器,将新版本的JS代码转换为兼容的JS代码。
JIT(动态编译)和 AOT(静态编译)编译技术比较
Just In Time :动态解释
AOT:Ahead of Time 静态编译
帧、报文、报文段、分组、包、数据报的概念区别
应用层——消息
传输层——数据段(segment)
网络层——分组、数据包(packet)
链路层——帧(frame)
物理层——P-PDU(bit)
多路复用 Multiplexing
时分复用(Time Division Multiplexing,TDM)
频分复用(FDM,Frequency Division Multiplexing)
分组交换技术(Packet switching technology)
栈和队列、堆、堆栈的区别 :
堆是指程序运行是申请的动态内存,而栈只是指一种使用堆的方法(即先进后出)
堆(Heap)是应用程序在运行的时候请求操作系统分配给自己内存
经常熬夜的人:
经常熬夜的人:1、产生幻觉; 2、记忆力差; 4、不识数; 6神志不清。 就这九点大家要记住了。
微服务框架的情况,可以看到主要分为四种模式:
无服务治理类:gRPC、brpc 为代表
单语言带服务治理类:Dubbo、Spring Cloud 为代表,主要适用于 Java 语言
多语言带服务治理类:TARS
Service Mesh:SideCar 模式,仍在发展成熟期
PublishersSubscribers-VS-ObserverPattern (我忘了,我哪里下载的图)
额外
# 提醒
不自带团队空降的一般是为了洗人
参考文档
- 分布式事务最终一致性常用方案
- 当中台遇上 DDD,我们该如何设计微服务
- 当中台遇上DDD,我们该如何设计微服务?
- 领域驱动设计(DDD:Domain-Driven Design)
- 人工智能深渊
- dubbo-应用的架构演变
- jwt
- OAuth 2.0
- OAuth 2.0
- 一文理解如何实现接口的幂等性
- 一文理解分布式锁的实现方式
- 一文搞懂分布式锁的原理与实现
- 一文搞懂分布式锁的原理与实现
- 文理解JWT鉴权登录的应用
- 一文理解为什么需要使用消息队列
- 分布式一致性算法-Paxos、Raft、ZAB、Gossip
- 八大常用算法思想
- 14种模式解决问题的算法
- 常见 14 种算法解题模式一
- 常见 14 种算法解题模式二
- 14 Patterns to Ace Any Coding Interview Question
- 谈谈 MySQL 锁
- MySQL灵魂十连
- IO多路复用之select、poll、epoll的区别
- 软件架构的10个常见模式
- 全量同步Elasticsearch方案之Canal
- 是缓存穿透?击穿?雪崩?如何解决?
- 什么是惊群,如何有效避免惊群?
- SOA面向服务架构
- 手撕 STL 序列式容器源码
- 16 种设计思想 – Design for failure
- 这三年被分布式坑惨了,曝光十大坑
- 分布式系统之Quorum机制
- 设计模式--23种设计模式--常见的
- 一句话了解设计模式
- 设计模式
- 设计模式 维基
- DHT(Distributed Hash Table,分布式哈希表) 一种分布式存储方法
- 动态规划
- 零拷贝 ZERO-COPY ---- DMA技术
- Linux 异步 I/O 框架 io_uring:基本原理、程序示例与性
- I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor
- I/O模型之二:Linux IO模式及 select、poll、epoll详解
- I/O模型之一:Unix的五种I/O模型
- 高性能异步IO机制:IO_URING
- 使用socket so_reuseport提高服务端性能
- 编译型语言和解释型语言的区别
- 被编译器隐藏了的过程
- JIT(动态编译)和AOT(静态编译)编译技术比较
- 什么是 mmap?
- 进程和线程 协程 什么关系
- LINUX平台的开源多层负载均衡
- 关于Zero Trust (零信任)
- 浏览器,v8引擎,JavaScript,ECMAScript到底是什么关系?
- ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性
- 17个改变世界的数学公式
- 17-equations-that-changed-the-world-2014-3#1-the-pythagorean-theorem-1
- 帧、报文、报文段、分组、包、数据报的概念区别
- SQL 查询的一般执行顺序,并不是从 SELECT 开始的
- Difference Between Segments, Packets and Frames PDU (Protocol Data Unit) , the term PDU is generic
- 吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
- 构建PHP微服务生态
- rem满宽度适配原理
- 微服务12要素--12factor
- 语义化版本 2.0.0
- 软件版本号命名规则
- Docker+Wasm
- web搜索软件包或者应用程序的入口
- 容器的5种网络模式和 K8S pod使用的容器网络模式
- 央行万字工作论文:区块链能做什么、不能做什么?
- “五横两纵”的技术框架 单机智能与网联云控 云、网、边、端、用、人等融为一体的创新体系
- 未来网络白皮书——白盒交换机技术白皮书.pdf
- 国家标准查询
- 技能人才评价证书全国联网查询系统
- 职业技能等级评价机构公示查询系统
- 国家法律数据库
- 12300 电信用户申诉受理中心
- 国家邮政业申诉服务平台
- 全国普通高等学校名单查询