首页
学习
活动
专区
工具
TVP
发布

架构之美

专栏作者
195
文章
197090
阅读量
63
订阅数
从实现原理谈谈低代码
我们在低代码领域探索了很多年,从2015 开始研发低代码前端渲染(amis),从 2018 年开研发后端低代码数据模型,发布了爱速搭低代码平台,这些年调研过了几乎所有市面上的相关技术和产品,发现虽然每家产品细节都不太一样,但在底层技术上却只有少数几种方案,因此我们认为不同产品间的最大区别是实现原理,了解这些实现原理就能知道各个低代码平台的优缺点,所以本文将会介绍目前已知的各种低代码实现方案,从实现原理角度看低代码。 — 1 — 本文里的「低代码」指的是什么? 在讨论各个低代码方案前,首先要明确「低代码
孙玄@奈学教育
2022-05-20
1.5K1
Redis 最全解读
— 1 — Redis简介 Redis 是C语言开发的一个开源高性能键值对的内存数据库,可以用来做数据库、缓存、消息中间件等场景,是一种NoSQL(not-only sql,非关系型数据库)的数据库 — 2 — Redis特点 优秀的性能,数据是存储在内存中,读写速度非常快,可支持并发10W QPS 单线程但进程,是线程安全的,采用IO 多路复用制 可作为分布式锁 支持五种数据类型 支持数据持久化到磁盘 可以作为消息中间件使用,支持消息发布及订阅 — 3 — 数据类型 下表是我列举的五种数据
孙玄@奈学教育
2022-04-22
2300
一个 Mybatis 开发神器:Fast MyBatis 超好用
fastmybatis 是一个 mybatis 开发框架,其宗旨为:简单、快速、有效。零配置快速上手,无需编写 xml 文件即可完成 CRUD 操作。同时支持 mysql、sqlserver、oracle、postgresql、sqlite。 支持自定义 SQL,对于基本的增删改查不需要写 SQL,对于其它特殊 SQL(如统计 SQL )可写在 xml 中,支持与 Spring-Boot 集成,依赖 starter 即可,支持插件编写,支持 ActiveRecord 模式,提供通用 Service,轻量级,
孙玄@奈学教育
2022-03-29
7300
你在 Docker 中跑 MySQL?恭喜你,可以下岗了!
容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。 目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:数据库 MySQL 是否需要容器化? 认真分析大家的各种观点,发现赞同者仅仅是从容器优势的角度来阐述 MySQL 需要容器化,几乎没有什么业务场景进行验证自己的观点;反过来再看反对者,他们从性能、数据安全等多个因素进行阐述 MySQL不需要容器化,也举证了一些不适合的业务场景。下面,我们就聊一
孙玄@奈学教育
2022-03-25
6690
一年之计:如何构建知识体系?
先说一件值得思考的事情:高考的时候大家都是一样的教科书,同一个教室,同样的老师辅导,时间精力基本差不多,可是最后别人考的是清华北大或者一本,而你的实力只能考个三本,为什么?当然这里主要是智商的影响,那么其他因素呢?智商解决的问题能不能后天用其他方式来补位一下? 大家平时都看过很多方法论的文章,看的时候很爽觉得非常有用,但是一两周后基本还是老样子了。其中有很大一部分原因那些方法对脑力有要求、或者方法论比较空缺少落地的步骤。下文中描述的方式方法是不需要智商也能学会的,非常具体的。 —1— 关键问题点 为什么你的
孙玄@奈学教育
2022-03-03
2500
API快速开发平台设计思考
—1— 前言 在我之前谈API网关的时候曾经谈到过快速开发平台,即将API快速开发的一些内容放入到API网关中,实际来看围绕API全生命周期管理,本身包括了开发态,运行态,运维态。 对于API网关更多的是解决运行态的问题,API网关本身应该轻量化设计,不做太多的协议转换,适配,数据映射等工作,这些工作应该放到API开发平台来完成。API开发平台最终就是开发完成并暴露一个标准的Http API接口,并将接口注册和接入到API网关。 API全生命周期管理 围绕API全生命周期管理来看,整个子系统划分如下:
孙玄@奈学教育
2022-03-03
7900
又到一年金三银四,还敢不重视 MySQL 原理吗?
过了年,2022年的金三银四黄金招聘季也就近在眼前了。卧薪尝胆也罢、踌躇满志也好,作为一名技术人,想要进阶大厂或者升级加薪,首先必须要拥有能够通关打怪的实力加持,这样才可能在千军万马中脱颖而出成为优胜者。每到这个时候各路面经也往往铺面而来,以我往年参加的大咖闭门分享会的经验而言:选对方向好过自我感动式的盲目努力。在数智化时代,围绕数据存储、处理和分析的技能都是必须要掌握的,而MySQL作为数据库里使用最广的开源软件,是技术人怎么都绕不开的全方位支撑技能。而大厂面试重基础早已闻名业界,只不过偶尔表述的套路不同
孙玄@奈学教育
2022-03-03
8240
Redis和MySQL如何保持数据一致性?
—1— 前言 在高并发的场景下,大量的请求直接访问Mysql很容易造成性能问题。所以,我们都会用Redis来做数据的缓存,削减对数据库的请求。但是,Mysql和Redis是两种不同的数据库,如何保证不同数据库之间数据的一致性就非常关键了。 —2— 数据不一致的原因 1.导致数据不一致的原因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。 所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。 读取缓存步骤一般没有什么问题,但是一旦涉及到数
孙玄@奈学教育
2022-03-03
1.9K0
为什么不建议在 Docker 中跑 MySQL?
—1— 前言 容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。 目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:数据库 MySQL 是否需要容器化? 认真分析大家的各种观点,发现赞同者仅仅是从容器优势的角度来阐述 MySQL 需要容器化,几乎没有什么业务场景进行验证自己的观点;反过来再看反对者,他们从性能、数据安全等多个因素进行阐述 MySQL不需要容器化,也举证了一些不适合的业务场景。下
孙玄@奈学教育
2022-03-03
2.9K0
Redis 之布隆过滤器与布谷鸟过滤器
大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景:
孙玄@奈学教育
2021-11-23
6480
面向对象思想:DDD 领域驱动设计的真正追求
对象是对世界的理解和抽象,世界又代称为万物。理解世界是比较复杂的,但是世界又是由事物组成的。
孙玄@奈学教育
2021-10-12
6170
干货丨一文讲透消息幂等去重通用解决方案
我们通常会认为,消息中间件是一个可靠的组件——这里所谓的可靠是指,只要我把消息成功投递到了消息中间件,消息就不会丢失,即消息肯定会至少保证消息能被消费者成功消费一次,这是消息中间件最基本的特性之一,也就是我们常说的“AT LEAST ONCE”,即消息至少会被“成功消费一遍”。
孙玄@奈学教育
2021-07-29
6710
ES 不香吗,为啥还要 ClickHouse?
Elasticsearch 是一个实时的分布式搜索分析引擎,它的底层是构建在 Lucene 之上的。简单来说是通过扩展 Lucene 的搜索能力,使其具有分布式的功能。
孙玄@奈学教育
2021-07-29
5K0
深入浅出 TiDB 框架
TiDB主要分为3个核心组件:TiDB Server ,PD Server 和TiKV Server,还有用于解决用户复杂OLAP需求的TiSpark组件。部署一个单机版的TiDB,这三个组件都需要启动。如果用生产环境,需要使用Ansible部署TiDB集群。
孙玄@奈学教育
2021-07-06
6420
何谓架构?
在这个知识分享的爆炸时代,鉴于java生态的完整和繁荣,各种框架、中间件和工具包供我们使用。连新培训出来的人都知道ssm,微服务、集群、多线程、队列、高并发等技术,技术的间隔性正变得越来越小,仿佛我们只需要按部就班的去使用别人说的框架等技术就可以解决问题。如果刨除redis、rabbitmq、kafka、dubbo、springcloud这些具体的技术框架,你有没有静下心来真正思考过架构是什么呢?这些框架是究竟是扮演怎么样的角色?如果让你给架构下一个定义,你会选择如何去描述架构呢?
孙玄@奈学教育
2021-03-10
4690
深度剖析不一样的Redis架构设计!
那么,接下来,上面提到的这些,都会一一给大家解答,带大家系统剖析一下Redis的架构设计魅力!
孙玄@奈学教育
2020-11-25
5770
万亿级企业MySQL海量存储分库分表设计实践
互联网业务往往使用MySQL数据库作为后台存储,存储引擎使用InnoDB。我们针对互联网自身业务特点及MySQL数据库特性,讲述在具体业务场景中如何设计表和分表。本文从介绍MySQL相关基础架构设计入手,并结合企业实际案例介绍分表和索引的设计实战技巧。
孙玄@奈学教育
2020-11-25
8180
如何实现一个连接池?一文带你深入浅出,彻底搞懂!
【2w1h】是技术领域中一种非常有效的思考和学习方式,即What、Why和How;坚持【2w1h】,可以快速提升我们的深度思考能力。
孙玄@奈学教育
2020-11-17
1.4K0
迎接双11,深度剖析高并发数据库Sharding的道与术
在服务器后端技术人员的成长路线上,分片(Sharding)思想的理解和把握是绕不过去的门槛,而数据库分库分表可能是讲述拆分思想最好的教材,大部分后端技术人员都会在成长过程中遇到数据库分库分表的问题。
孙玄@奈学教育
2020-11-17
2.8K0
一文彻底读懂优秀开源产品MyBatis一级缓存设计!
缓存是 MyBatis 中非常重要的特性。合理使用缓存能够减少数据库 IO,显著提升系统性能。但是在分布式环境下,如果使用不当,则可能会带来数据一致性问题。MyBatis 提供了一级缓存和二级缓存,其中一级缓存基于 SqlSession 实现,而二级缓存基于 Mapper,本文将会详细讲解一级缓存。
孙玄@奈学教育
2020-11-09
4951
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档