快乐的程序员
单点登录(SSO)的三种实现方式 单点登录(SSO)的三种实现方式
什么是单点登录单点登录(SSO,Single Sign On),是在企业内部多个应用系统(如考勤系统、财务系统、人事系统等)场景下,用户只需要登录一次,就可以访问多个应用系统。同理用户只需注销一次,就可以从多个应用系统退出登录。简单来说就是
2024-04-02
关系型数据库与非关系型数据库如何选型 关系型数据库与非关系型数据库如何选型
写在前面这个问题在面试中经常遇到,在工作中也会遇到数据库选型的问题,本文将从定义、优缺点方面介绍关系型数据库和非关系型数据库。 关系型数据库定义 关系型数据库指的是使用关系模型(二维表格模型)来组织数据的数据库。 关系数据库具有严格的、静
2024-04-01
Go 的 DDD 工程化项目实践 Go 的 DDD 工程化项目实践
Go 通用项目结构关于 Go 项目的目录结构如何设计这一问题?Go 官方其实并没有定义标准的项目结构分层,但社区维护了一个 project-layout 仓库,其中包含了一个通用的项目结构示例,大家在实践中基本会遵循这个规范。下面是一个通用
2024-03-28
数据在两个服务之间传到的方式 数据在两个服务之间传到的方式
要想在多个实体直接做数据同步,一般有两种方式: 1. 异步异步一般是a调用完b之后就不管了,不用等b返回成功或者失败。直接发下一个请求。在回调函数中处理请求的结果。如果成功则commit,失败则rollback。 或者不管发送成功或者失败,
2024-03-20
“WatchDog式”软件开发和“故障驱动式”软件开发 “WatchDog式”软件开发和“故障驱动式”软件开发
写在前面今天看到左耳朵耗子在自己博客酷壳上写的一篇文章开发团队的效率,我觉得写得太对了,作为一个在小公司待过的后端程序员来说,我深有体会。 经常听到“先这样”,“先简单实现功能,后面再改”,甚至在相关代码地方写一个TODO,“先一个星期上线
2024-03-14
如何设计一个短链接系统 如何设计一个短链接系统
写在前面这是一个面试高频问题,今天好好总结一下,希望读者能学到,自己也记录一下 短链好处 链接变短,在对内容长度有限制的平台发文,可编辑的文字就变多了最典型的就是微博,限定了只能发 140 个字,如果一串长链直接怼上去,其他可编辑的内容就所
2024-03-14
SOLID原则 SOLID原则
写在前面在程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期引入,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个
2024-03-13
架构 秒杀系统优化思路 架构 秒杀系统优化思路
写在前面秒杀系统是经常需要优化的系统,对架构设计要求很高,面试过程中也经常问到,今天就来系统学习一下如何优化秒杀系统 秒杀场景 每个人都读自己的数据:im系统,如qq,微博 一个人读多个人的数据:微博关注人的动态、微信朋友圈动态、抖音关注的
2024-03-13
架构设计:反向依赖与解耦 架构设计:反向依赖与解耦
写在前面你有没有遇到过,修改db地址需要同时修改上有多个服务的配置?者某个db不可用了导致上有多个服务不可用? 这是架构耦合问题,多个服务之间相互依赖,当某个服务不可用或者做出修改,需要上游服务同时做出修改。这就是你的问题,导致我需要修改(
2024-03-13
高性能的4个指标 高性能的4个指标
响应时间系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。 吞吐量单位时间内处理的请求数量。 QPS每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。 用户并发数同时承载
2024-03-13
如何解决单点故障问题 如何解决单点故障问题
写在前面虽然目前都是微服务,多机房、多实例部署,但难免还是会存在单点服务。例如写数据服务、登录服务、服务发现等,如何解决单点故障问题呢? 什么是单点故障通常分布式系统采用主从模式,一个主机连接多个处理节点,主节点负责分发任务,而子节点负责处
2024-03-13
面试:如何设计高并发系统 面试:如何设计高并发系统
写在前面面试的时候经常会被问到如何设计一个高并发系统,很多人都只能说出缓存、读写分离、异步等几个常见方法,今天就系统全面总结一下这个问题,希望能帮助到大家。 什么是高并发系统简单说就是你的系统要能支持瞬间大量的请求。比如淘宝双11、过年抢红
2024-03-13
1 / 2