我看到这问题都有点懵逼,现实项目中怎么可能会有 10000 个 if else 的代码,至少我工作 10 余年没见过样的代码。 关键要写完这 10000 行的 if else 代码,如果每天写 100 个,是不是意味着也要 100 天才能写完,并且每次请求都要执行几千上万次的判断, 代码难以维护不说,还会严重影响系统性能 。…
Session 和 JWT(JSON Web Token)都是用于在用户和服务器之间建立认证状态的机制,但它们在工作原理、存储方式和安全性等方面存在着一些差异,下面我们一起来看。 1.什么是JWT? Session 我们已经很熟悉了,那什么是 JWT 呢? JWT(JSON Web Token)是一种开放标准(RFC…
分库分表后就不能使用自增 ID 来作为表的主键了,因为数据库自增 ID 只适用于单机环境,但如果是分布式环境,是将数据库进行分库、分表或数据库分片等操作时,那么数据库自增 ID 就会生成重复 ID,从而导致业务查询上的问题。所以此时,可以使用 UUID 或雪花 ID 来作为全局主键 ID。 1.UUID作为全局ID UUID(Universally…
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。 那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系统呢? 实现方案概述 在 Spring Boot 启动之后,可以通过以下手段实现缓存预热: 使用启动监听事件实现缓存预热。 使用…
今年进入我工作的第四个年头, 三年多的时间里, 算上实习, 经历过3家公司. 见过了各种各样的同事, 也算见过各式各样的代码. 这篇文章主要是想分享一下一个java后端三年的一些感悟, 关于编程上的, 工作上的, 和同事相处上的. 我把关于编程的写在最前面, 我觉得对于开发人员来讲, 编程能力才是混饭的手艺,…
对有迫切意愿把”问题”讲清楚的同学,建议按本文走完”想清楚”-“讲明白”-“要资源”这个流程。 为什么要把问题讲清楚 假设你正在吃炒面,突然收到 Boss 打过来的电话,问你线上出现的故障是怎么回事,这时的你会是什么状态?以第三方视角,大概有以下几种情况: 你懵了(半天没声音):线上什么时候出问题了?大脑一片空白,我是谁,我在哪?…
网络基础 TCP三次握手 三次握手过程: 客户端——发送带有SYN标志的数据包——服务端一次握手Client进入syn_sent状态; 服务端——发送带有SYN/ACK标志的数据包——客户端二次握手服务端进入syn_rcvd; 客户端——发送带有ACK标志的数据包——服务端三次握手连接就进入Established状态; 为什么三次:…
本文是技术人面试系列分布式篇,面试中关于分布式都需要了解哪些基础?一文带你详细了解,欢迎收藏! 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 发展历程 入口级负载均衡 网关负载均衡 客户端负载均衡 单应用架构 应用服务和数据服务分离 应用服务集群 应用服务中心化SAAS 数据库主备读写分离…
本文是技术人面试系列Kafka篇,面试中关于Kafka都需要了解哪些基础?一文带你详细了解,欢迎收藏! Why kafka 消息队列的作用: 异步、削峰填谷、解耦 中小型公司 ,技术挑战不是特别高,用 RabbitMQ (开源、社区活跃)是不错的选择;大型公司,基础架构研发实力较强,用 RocketMQ (Java二次开发) 是很好的选择。 如果是…
引言 我们来看一下几类在程序员成长、发展的常见问题,如果你或多或少存在一些,那么恭喜你,这篇文章值得你仔细往下看了: 你自认为付出了跟别人同样的努力,但是你的成长确实更慢一些,比如学得比别人慢,排查问题比别人慢,出方案老是有漏洞等等;…