![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构设计
文章平均质量分 94
daiwei-dave
剖开表象,理解实质.一个领域深入的越深,扩展另一个领域时则更全面
展开
-
数据库选型
关系数据库经过几十年的发展后已经非常成熟,强大的 SQL 功能和 ACID 的属性,使得关系数据库广泛应用于各式各样的系统中,但这并不意味着关系数据库是完美的,关系数据库存在如下缺点。关系数据库缺点以微博的关注关系为例,“我关注的人”是一个用户 ID 列表,使用关系数据库存储只能将列表拆成多行,然后再查询出来组装,无法直接存储一个列表。原创 2024-02-26 12:06:57 · 934 阅读 · 1 评论 -
架构设计-分布式ID
比如单机 MySQL 数据库,前期因为业务量不大,只是使用单个数据库存数据,后期发现业务量一下子就增长,单机 MySQL 已经不能满足于现在的数据量,单机 MySQL 已经没办法支撑了,这时候就需要进行分库分表。原创 2023-04-29 22:24:38 · 1994 阅读 · 0 评论 -
架构设计导论
它通过 Façade 服务适配不同的前端,通过服务组合和编排,组织和协调微服务。BFF 微服务可根据需求和流程变化,与前端应用版本协同发布,避免中台微服务为适配前端需求的变化,而频繁地修改和发布版本,从而保证微服务核心领域逻辑的稳定。企业级业务流程往往是多个微服务一起协作完成的,每个单一职责的微服务就像积木块,它。,微服务内的应用服务也是处理服务的组合和编排,那这二者有什么差异呢?BFF 位于中台微服务之上,主要职责是微服务之间的服务协调;BFF主要职责是处理微服务之间的服务组合和编排。原创 2023-01-16 19:53:00 · 936 阅读 · 0 评论 -
NoSQL
关系数据库的表结构 schema 是强约束,操作不存在的列会报错,业务变化时扩充列也比较麻烦,需要执行 DDL(data definition language,如 CREATE、ALTER、DROP 等)语句修改,而且修改时可能会长时间锁表(例如,MySQL 可能将表锁住 1 个小时)。以微博的关注关系为例,“我关注的人”是一个用户 ID 列表,使用关系数据库存储只能将列表拆成多行,然后再查询出来组装,无法直接存储一个列表。列式数据库:解决关系数据库大数据场景下的 I/O 问题,以 HBase 为代表。原创 2022-11-20 22:53:20 · 341 阅读 · 0 评论 -
SPI机制
SPI (Service Provider Interface),主要用于扩展的作用。举个例子来说,假如有一个框架有一个接口,他有自己默认的实现类,但是在代码运行的过程中,你不想用他的实现类或者想扩展一下他的实现类的功能,但是此时你又不能修改别人的源码,那么此时该怎么办?这时spi机制就有了用武之地。原创 2022-11-06 22:42:33 · 490 阅读 · 1 评论 -
如何设计一个秒杀系统
高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商品(比如:手机),以极低的价格(比如:0.1元),让大量用户参与活动,但只有极少数用户能够购买成功。这类活动商家绝大部分是不赚钱的,说白了是找个噱头宣传自己。虽说秒杀只是一个促销活动,但对技术要求不低。下面给大家总结一下设计秒杀系统需要注意的9个细节。原创 2022-10-22 20:26:57 · 724 阅读 · 0 评论 -
Excel导入导出设计
一、poi有三种解析方式:1、eventmodel方式,基于事件驱动,SAX的方式解析excel(.xlsx是基于OOXML的),CPU和内存消耗非常低,但是只能读不能写,塔式应用程序一边读取数据,一边处理数据。2、usermodel,就是我们一般使用的方式,这种方式可以读可以写,但是CPU和内存消耗非常大3、SXSSF,POI3.8以后开始支持,这种方式只能写excel@see http://www.cnblogs.com/tootwo2/p/6683143.htmlHSSF .原创 2021-07-27 16:35:26 · 472 阅读 · 0 评论 -
sso单点登录
一、单系统登录机制1.1 http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系.但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求;要鉴别浏览器请求,必须清楚浏览器请求状态。既然htt..原创 2021-04-08 15:54:21 · 1450 阅读 · 2 评论 -
im消息中台
核心模型客户端:发送消息服务端:接受消息,并调用底层sdk,并存储消息第三方sdk:如腾讯sdk设计模式模版模式:抽象发送流程,提供各模型构造方法和子流程抽象方法工厂模式:生产各种模型实例对象(策略工厂)策略模式:每种模型对各自的接口实现(消息body解析等)建造者模式:构造消息体和参数等...原创 2021-04-06 15:36:34 · 1786 阅读 · 0 评论 -
Java设计原则和设计模式
一、创建型模式(5种)1.1 工厂模式简单的说本质是实列工厂,即按照不同的业务类型去取对应业务bean,常常伴随着策略模式使用。而工厂模式的核心是就是在容器启动时就已经注册好了,即开箱即用。1.2 单例模式一个类产生一个对象1.2.1 双重检查加锁1.2.2懒汉和饿汉模式3.建造者模式将内部复杂的对象属性构建流程封装起来,便于客户端快速构建类的属性。如典型lombok插件构造属性值,当然你也可以自己写一个建造者方法构建属性4.原型模式通过给出一个原型对象...原创 2021-03-28 23:35:23 · 407 阅读 · 1 评论 -
saas-多租户架构
一、SaaS基础概念SaaS 是 Software-as-a-Service(软件即服务)的简称,是一种区别于传统软件购买和安装的、互联网化的“按需租用”软件交付模式,也是一种面向软件应用的云服务模式。(SaaS可以理解为服务器、数据库、网络、代码等都放在云上)举个例:现在公司需要一套管理软件系统,老板交给你负责。那么你可以有三种解决方案:自己开发一套买一套回来安装租一个线上系统SaaS产品大概分为几类业务垂直型专门针对某个特定的业务环节,例如人事、财税、项目协同等等;原创 2016-10-15 20:32:42 · 11431 阅读 · 1 评论