Java
文章平均质量分 80
Java架构师公社
分享Java后端开发工作上的一些工作经验与心得
展开
-
面试官:Spring@Transaction注解是如何执行事务的?
前言相信小伙伴一定用过 @Transaction 注解,那 @Transaction 背后的秘密又知道多少呢?Spring 是如何开启事务的?又是如何进行提交事务和关闭事务的呢?画图猜测在开始 debug 阅读源码之前,小伙伴们应该已经知道 MySQL 是如何开启事务的。因此可以得出猜测:那下面跟着源码一起读一读,Spring 的 @Transaction 注解是如何执行事务逻辑的?Spring 事务执行流程开启事务这里使用的是 Spring Boot + MySQL转载 2021-06-23 15:21:20 · 670 阅读 · 0 评论 -
SpringBoot整合定时器:定时任务不再硬编码,动态定时刷起来
前言传统定时器是硬编码。但是有的时候业务上需要不断地调整问题描述我们开发了一个定闹钟的功能。这个功能肯定是定时器开发。但是这就存在一个问题这个定时是动态的。那么我们如何实现呢?请接着看简介定时器在开发中真的算是一种福利了。通过定时器我们省去了很多人力。我们通过定时器将一些繁琐定期的事情通过代码去完成。在Java开发中我们通过Timer类可以简单实现定时器功能。既然是springboot课程今天我们就来看看srpingboot整合定时器的事情传统定时器这里使用的是之前课程一的配置。spr转载 2021-06-18 18:22:15 · 314 阅读 · 0 评论 -
优质高效!基于Spring-boot-admin的微服务监控系统实现
什么是spring boot adminspring boot actuator 可以监控应用的各种信息, 唯一的缺点就是返回的监控信息是JSON格式的数据,还有一点就是在微服务架构下,服务的实例会很多,一个个去看监控信息这似乎有点不太可能,而且这么多地址信息也只能去Eureka中去找,有没有一个功能能够集中的管理Eureka中的服务信息,并且可以通过界面的方式查看actuator 提供的监控信息,它就是Spring Boot Admin。Spring Boot admin是一个用于管理和监视 Sp转载 2021-06-15 19:27:20 · 333 阅读 · 0 评论 -
监听器模式和观察者模式的关系,写点你不知道的
前言无论大家在实践中是否自己实现过观察者模式或监听器模式,但肯定间接使用过。比如Spring的事件机制,大多数人肯定都用过,只是没留意而已。今天这篇文章主要围绕观察者模式、监听器模式,以及它们之间的关系展开。不仅用实例介绍它们的使用,而且也会聊一聊Spring事件机制对观察者模式的实践。监听器模式和观察者模式怎么看起来是一样的?先聊聊设计模式为什么要使用监听模式,直接调用不好吗?这我们就要说说设计模式的好处了。设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分转载 2021-06-08 16:28:38 · 247 阅读 · 1 评论 -
基于Netty实现RPC框架
RPC全称Remote Procedure Call,即远程过程调用,对于调用者无感知这是一个远程调用功能。目前流行的开源RPC 框架有阿里的Dubbo、Google 的 gRPC、Twitter 的Finagle 等。本次RPC框架的设计主要参考的是阿里的Dubbo,这里Netty 基本上是作为架构的技术底层而存在的,主要完成高性能的网络通信,从而实现高效的远程调用。Dubbo的架构与Spring其实在之前的文章中《谈谈京东的服务框架》,探讨过Dubbo的组成和架构。另外使..转载 2021-05-24 15:44:29 · 277 阅读 · 0 评论 -
String拼接出现null?你看到的分析可是错的
前言String类型真是个神奇的存在,动不动就会出现一些迷惑人的错误。今天看到一篇文中提到当String的值为null时,进行字符串相加拼接,会出现把null当做字符串拼接的现象。比如下面这段代码:String s = null;s = s + "hello";System.out.println(s + " world");你预期的结果可能是“hello world”,但实际的结果是“nullhello world”,神奇吧。其实这倒没什么,实践一下就可以看到结果。但当你好奇心原创 2021-05-12 16:05:03 · 805 阅读 · 0 评论 -
服务网格Istio自身服务的安全风险
Istio是目前最受关注的服务网格之一,越来越多的公司开始落地Service Mesh架构,并将已有的系统接入Service Mesh。同时随着零信任网络的发展,东西向,南北向流量都需要提供足够的安全保护,因为Istio自身提供了多种安全特性,所以也出现不少基于Istio的零信任架构。在安全中通常关注的重点是南北流量,而我们应该认识到,在云原生的环境下,东西流量安全也应该受到足够的重视。在Istio默认的配置中,其在集群内暴露了许多未授权和明文传输的服务。通常情况下,这会引起攻击者的注意,当恶意攻击者进原创 2021-05-11 15:22:48 · 2554 阅读 · 0 评论 -
使用IDEA模拟Git命令使用的常见场景
使用IDEA模拟git命令使用的常见场景大家好,最近白泽第一次开始参与小组合作开发,以前都是自己用git保存自己的代码,自己维护,用git的场景也比较单一,没有遇到过拉取代码合并出现冲突的问题。但是小组开发拉取远程仓库的代码时,遇到他人所提交代码与自己的本地代码出现冲突在所难免,所以白泽特意去学习了一下git的冲突处理,接下来用一个小demo复现一下我学习的过程前期准备新建一个远程仓库在一个文件夹内建立两个子文件夹作为两个本地仓库的存放位置之所以建立两个文件夹,这样做的目的是为了模拟转载 2021-04-30 16:47:32 · 123 阅读 · 1 评论 -
Mybatis 自定义拦截器与插件开发
在Spring中我们经常会使用到拦截器,在登录验证、日志记录、性能监控等场景中,通过使用拦截器允许我们在不改动业务代码的情况下,执行拦截器的方法来增强现有的逻辑。在mybatis中,同样也有这样的业务场景,有时候需要我们在不侵入原有业务代码的情况下拦截sql,执行特定的某些逻辑。那么这个过程应该怎么实现呢,同样,在mybatis中也为开发者预留了拦截器接口,通过实现自定义拦截器这一功能,可以实现我们自己的插件,允许用户在不改动mybatis的原有逻辑的条件下,实现自己的逻辑扩展。本文将按下面的结构进行m转载 2021-04-28 16:47:16 · 616 阅读 · 0 评论 -
Spring:SpringIoC大致流程
SpringIoC是什么?官方文档的解释是:IoC也称为依赖注入(DI)。在此过程中,对象仅通过构造函数参数,工厂方法的参数或在构造或从工厂方法返回后在对象实例上设置的属性来定义其依赖项(即,与它们一起使用的其他对象) 。然后,容器在创建bean时注入那些依赖项。从本质上讲,此过程是通过使用类的直接构造或诸如服务定位器模式之类的机制来控制其依赖关系的实例化或位置的Bean本身的逆过程(因此,其名称为Control Inversion)。 简单来说:就是我们将一个个的bean对象交给IoC去管理转载 2021-04-28 16:45:29 · 176 阅读 · 0 评论 -
什么?你们项目没用过主从复制和读写分离?
温馨提示:大概需要半小时到一小时安装成功。目录1、Master库搭建(主库搭建和从库搭建一毛一样)2、Slave库搭建(参考主库搭建 ↑)3、绑定主从关系(这一步主要是修改一些配置文件)1.初始化一个SpringBoot工程,并添加Sharding-jdbc依赖提示:随着项目数据量的增大,我们不得不开始考虑主从复制和读写分离。一、主从复制搭建1、Master库搭建(主库搭建和从库搭建一毛一样)这里我只准备了一台服务器进行搭建测试,遂主库和从库均在一台服务器上,只不过是访问转载 2021-04-28 16:24:53 · 134 阅读 · 0 评论 -
应“云”而生的 Java 框架:构建本机可执行文件
今天来看一下 Quarkus 构建出来的本机可执行文件到底比 Spring 应用能快多少, 生态的成熟度不在这里讨论 。TLDR先上结论, 与只有一个 Controller 的Spring Web 应用做下对比。应用启动时间:0.012s vs 2.294s镜像大小:49MB vs 237 MBSpring 应用镜像使用 openjdk:11.0-jre-slim 作为 base 镜像,大小为 220MB。docker imagesREPOSITORY原创 2021-04-20 14:36:08 · 120 阅读 · 0 评论 -
应“云”而生的 Java 框架:构建本机可执行文件
今天来看一下 Quarkus 构建出来的本机可执行文件到底比 Spring 应用能快多少, 生态的成熟度不在这里讨论 。TLDR先上结论, 与只有一个 Controller 的Spring Web 应用做下对比。应用启动时间:0.012s vs 2.294s镜像大小:49MB vs 237 MBSpring 应用镜像使用 openjdk:11.0-jre-slim 作为 base 镜像,大小为 220MB。docker imagesREPOSITORY原创 2021-04-17 19:40:07 · 271 阅读 · 0 评论 -
线上服务线程数过高的问题定位与解决方法
线上服务线程数过高的问题定位与解决方法问题现象:富仁小站线上API服务在2021年3月21号下午出现问题,不能提供对外服务,导致线上设备和相关业务流程中断临时解决方案: 为了防止服务中断时间过久,重启服务问题定位:在3月21号之后的几天连续观察服务的线程和内存变化 1 、观察服务线程数的变化:pstree -p > threadNum.txt复制代码 PS: 因为线上服务过多,直接在控制台执行命令,容易出现刷屏,直接将线程树打印到文本中进行调查2、拿到线程树原创 2021-04-17 19:38:24 · 832 阅读 · 0 评论 -
Nginx架构浅析:为什么不用多线程模型管理连接与处理逻辑业务?
1.Nginx 基础架构nginx 启动后以 daemon 形式在后台运行,后台进程包含一个 master 进程和多个 worker 进程。如下图所示:master与workernginx 是由一个 master 管理进程,多个 worker 进程处理工作的多进程模型。基础架构设计,如下图所示:基础架构设计master 负责管理 worker 进程,worker 进程负责处理网络事件。整个框架被设计为一种依赖事件驱动、异步、非阻塞的模式。如此设计的优点:1.可以充分利用多原创 2021-04-14 21:22:44 · 401 阅读 · 0 评论 -
雪花算法中超级好用的ID生成工具
为什么用雪花ID?❄ 因为大厂也在用,推特、百度、美团、滴滴等等。❄ 雪花ID是走向分布式架构的垫脚石,如果只会Guid和数据库自增,怎敢说会分布式系统架构。❄ 雪花ID适合小项目、大项目、超级大项目。本算法介绍❄ 这是优化的雪花算法(雪花漂移),它生成的ID更短、速度更快。❄ 支持 k8s 等容器环境自动扩容(自动注册 WorkerId),可在单机或分布式环境生成数字型唯一ID。❄ 原生支持 C#/Java/Go/Rust/C 等语言,并提供 PHP 扩展及 Python、原创 2021-04-14 21:21:22 · 1231 阅读 · 0 评论 -
Spring5 WebFlux和SpringMVC的关系
Spring WebFluxSpring框架中包含的原始web框架springweb mvc是专门为Servlet API和Servlet容器构建的。反应式堆栈web框架SpringWebFlux是在5.0版本中添加的。它是完全无阻塞的,支持反应流背压,并在Netty、Undertow和servlet3.1+容器等服务器上运行。两个web框架都反映了它们的源模块(和springwebflux)的名称,并且在spring框架中并排共存。每个模块都是可选的。应用程序可以使用一个或另一个模块,在某些情..原创 2021-04-09 23:39:47 · 1081 阅读 · 0 评论 -
我佛了!居然有人用古代皇帝与臣子的关系讲清了JDK动态代理
代理模式Proxy Pattern,代理模式,一个类可以代表另一个类的功能。在生活中代理模式也是比比皆是,房产中介、委托律师、海外代购、同城闪送,他们都是代理了实际用户的一些行为,并且极大地提供了专业性、方便性和扩展性。代理模式的类图如下。静态代理根据代理模式的思想,可以用以下这个例子来说明。在古代皇帝下圣旨、口谕,给王公大臣升职加薪、给后宫嫔妃册封,都是大总管去送信儿,王公大臣也得老老实实磕头谢恩,大总管就是皇帝的代理。/** * @author lyqiang */原创 2021-04-09 23:38:08 · 133 阅读 · 0 评论 -
dJYLKqeFwP
javayyds原创 2021-04-08 00:01:07 · 133 阅读 · 0 评论 -
从本质彻底精通Git——4个模型1个周期1个史观1个工作流
一、什么是Git? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git是Linus Torvalds为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。二、分布式VS集中式 VisualSVN、TortoiseSVN、Bazzar为集中式版本控制系统,而Mercurial、Git、Bitkeeper为分布式版本控制系统。 1. 集中式版本控制 优点:可以对具体的文件或目录进行权限控制,有全局的版本号。 缺点:原创 2021-03-29 15:11:47 · 181 阅读 · 0 评论 -
一个SQL错误的问题让我找到了公司框架中三个bug
本文是对之前开发中遇到的问题的一个总结,文章其实早就写好,但是觉得自己写得不够深入,就让文章一直躺在草稿箱里。昨天突然想起来了,就将文章重新修改了一下,还是发出来吧!问题1当时我在开发一个异常日志记录接口,其实业务流程很简单,就是前端提交错误日志到后台,后台接受到信息处理一番,然后插入数据库。因为这个接口的并发量比较高,为了不影响其他业务,并且同时提高响应的速度。于是采用 @Async 注解+ Spring线程池的方案来实现。线程池的配置如下:<task:annotation-drive原创 2021-03-24 23:00:09 · 183 阅读 · 0 评论 -
apollo在Spring boot加载过程解析
前言apollo 是一个开源的配置中心项目,功能很强大,apollo 本身的配置项并不复杂,但是因为配置的路径特别多,非常容易搞混了, 所以本文试图聚焦 spring-boot 的场景,在 spring-boot 微服务场景下,搞清楚 apollo-client 的加载过程集成使用1、添加 gradle 依赖 implementation "com.ctrip.framework.apollo:apollo-client:1.6.0"2、配置 application.pro原创 2021-03-24 22:58:26 · 608 阅读 · 0 评论 -
JVM之调优及常见场景分析
JVM调优GC调优是最后要做的工作,GC调优的目的可以总结为下面两点:减少对象晋升到老年代的数量 减少FullGC的执行时间通过监控排查问题及验证优化结果,可以分为:命令监控:jps、jinfo、jstack、jmap、jstat、jhat 图形化监控: JConsole和VisualVM 阿里巴巴开源的 Java 诊断工具: Arthas(阿尔萨斯) :如果GC执行时间满足下列所有条件,就没有必要进行GC优化了:Minor GC执行非常迅速(50ms以内) Minor.原创 2021-03-19 20:55:29 · 535 阅读 · 0 评论 -
盘点一下数据库的误操作有哪些后悔药?
前言无论是开发、测试,还是DBA,都难免会涉及到数据库的操作,比如:创建某张表,添加某个字段、添加数据、更新数据、删除数据、查询数据等等。正常情况下还好,但如果操作数据库时出现失误,比如:删除订单数据时where条件写错了,导致多删了很多用户订单。 更新会员有效时间时,一次性把所有会员的有效时间都更新了。 修复线上数据时,改错了,想还原。还有很多很多场景,我就不一一列举了。如果出现线上环境数据库误操作怎么办?有没有后悔药?答案是有的,请各位看官仔细往下看。1.不要用聊天工具原创 2021-03-19 20:49:20 · 427 阅读 · 0 评论 -
Spring boot记录sql探索
目标记录每次请求内的http、es、mysql耗时,本篇讨论mysql部分为什么说要探索,这不是很简单的事么?但是能满足以下几点么?能记录limit等参数 能将参数和sql写一起,能直接使用 能记录耗时 能计数累加,统计一次请求中sql执行的总数和总耗时spring原生能力#logging.level.org.hibernate.SQL=debuglogging.level.org.hibernate.type.descriptor.sql.BasicBinder=tr..原创 2021-03-16 22:13:30 · 243 阅读 · 0 评论 -
解析分布式应用框架Ray架构源
摘要:Ray的定位是分布式应用框架,主要目标是使能分布式应用的开发和运行。Ray是UC Berkeley大学 RISE lab(前AMP lab) 2017年12月 开源的新一代分布式应用框架(刚发布的时候定位是高性能分布式计算框架,20年中修改定位为分布式应用框架),通过一套引擎解决复杂场景问题,通过动态计算及状态共享提高效率,实现研发、运行时、容灾一体化Ray架构解析业务目标Ray的定位是分布式应用框架,主要目标是使能分布式应用的开发和运行。业务场景具体的粗粒度使用场景包括.原创 2021-03-16 22:12:02 · 972 阅读 · 0 评论 -
灵魂一问:SpringBoot启动流程你真的清楚吗?
一切从SpringApplication.run()开始,最终返回一个ConfigurableApplicationContext构造了一个SpringApplication对象,然后调用它的run方法。下面看下构造方法都做了什么1、推断Web应用类型(WebApplicationType),本例中是SERVLET2、设置 Bootstrapper、ApplicationContextInitializer 和 ApplicationListener3、推断main方法注意到,在原创 2021-03-16 22:08:47 · 109 阅读 · 0 评论 -
分布式事务之LCN、TCC特点、事务补偿机制缘由以及设计重点
在亿级流量架构之分布式事务解决方案对比中, 已经简单阐明了从本机事务到分布式事务的演变过程, 文章的最后简单说明了TCC事务, 这儿将会深入了解TCC事务是原理, 以及理论支持, 最后会用Demo举例实现。XA协议在上面提到的文章中, 分布式事务直接将二阶段提交, 思维逻辑有些断层, 但是那毕竟是比较解决方案, 在这儿从理论上推导分布式事务的根基, 也就是为什么要二阶段提交。在单体应用中, 往往由自己来保证事务的一致性, 但是分布式中, 涉及到跨网络调用就难以保证, 从理论上讲两台机器理论上无法原创 2021-03-16 22:05:38 · 430 阅读 · 0 评论 -
五位一体全方位解析Spring Boot,阿里爆款SpringBoot实战笔记也太香了
开发模式:本篇讲解了历史悠久,但现在依然被广泛使用的分层应用开发模式MVC ( ModelView Controller ),还讲解了当下逐渐火热的响应式开发模式WebFlux。ORM ( Object Relational Mapping,对象关系映射)框架:数据库的操作是程序开发中非常重要的一块,根据国内外用户的习惯,本书对比讲解了全球最火的JPA和中国最流行的MyBatis。安全框架:安全框架是必备的内容。本书讲解了相关书籍、资料非常少,国内很少用,但是超级实用和好用的Spring Boot官原创 2021-03-15 15:45:35 · 136 阅读 · 0 评论 -
想进阿里?RocketMQ必须要掌握!阿里内部强推RocketMQ核心笔记太香了!
前几天一个朋友跟我说,他拿到了阿里 Java 开发的 offer,准备入职了。半个多月的时间里,前前后后面试了4轮,而让他印象最深的一点是,想进阿里,RocketMQ 必须掌握。确实如此,一个用消息队列的人,不知道为啥用,就有点尴尬。尤其是在面对面试官的连环追问时,你很容易被问蒙,然后就开始胡扯了。其实这个问题,咱只答三个最主要的应用场景就没毛病,解耦、异步、削峰,但前提是你真的掌握底层原理,还真的在项目中有熟练应用才能说出个一二三来。毕竟,大厂面试官对知识点和项目经验的细节是一定会深究的。原创 2021-03-13 14:05:33 · 238 阅读 · 0 评论 -
MySQL基础:CharacterSet和Collation
A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set.Character Set: 一套字符及其编码,即字符集;(文中很多地方也用 charset 一词) Collation:在字符集内用于比较或排序字符的一套规则,即校验规则。操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13原创 2021-03-12 16:06:38 · 1214 阅读 · 2 评论 -
Sentinel流量控制&服务熔断降级详解
Sentinel流量控制&服务熔断降级介绍流量控制介绍在这里我用景区的例子解释一下一个旅游景点日接待游客数量为8K,8K以后的游客就无法买票进去景区。对应编程来说就是,一个接口QPS(每秒请求数)最大为100,在QPS100之后的请求我们就要限制其访问,并给出友好提示。不限制QPS无限的次数就会造成服务器的宕机。服务熔断降级在调用系统的时候,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积,进而导致级联错误而熔断降级就可以解决这个问题,所谓的熔断降原创 2021-03-12 16:03:50 · 977 阅读 · 0 评论 -
金三银四面试技术储备:阿里Spring Security Oauth2.0认证授权全套技术笔记开源分享!
金三银四即将到来,楼主也在疯狂的准备中,也在全网搜集面试题,也有一些面试中常问的面试知识点,今天就来分享最近Java面试热门技术框架:Spring Security Oauth2.0认证授权!总计分为五篇,前四篇为Spring Security相关的内容,最后一篇是Oauth2.0认证授权!同时也为大家整理了Oauth2.0认证授权的源码,皆是免费分享给大家!需要资料的小伙伴,点赞加收藏,关注我之后添加小助理vx:1426687161 即可获取免费下载方式下面我们先来看Spring Se原创 2021-03-10 14:32:12 · 219 阅读 · 0 评论 -
2021网络系统流行架构
2021年了,看看网络系统的流行架构。系统的质量属性要满足客户需求,所以架构的第一出发点也是需求。有偏好的需求构成场景,架构的取舍就是基于应用场景的偏好。网络系统在管道的位置,大致分为两类:傻快型:内容无感知,以交换和路由为主。如各种交换机,路由器等设备,主要靠硬件。纯软件实现上的需求主要是牺牲一些硬件的高性能,换取管理和维护的方便和统一,如SDN,NFV。目前为了融合硬件与软件,一般都采用x86的架构配合高速可编程的NIC和转发芯片(如支持P4)。以获得性能与管理的双重优势。原创 2021-03-09 17:15:03 · 247 阅读 · 0 评论 -
面试被吊打系列:气得我直接把简历上的精通数据库给删掉了
小张兴冲冲去面试,结果被面试官吊打!小张:面试官,你好。我是来参加面试的。面试官:你好,小张。我看了你的简历,精通MySQL数据库。那你肯定知道事务吧,你能说说事务有哪些特性吗?小张:一个事务有4个特性,即ACID。原子性(Atomicity):事务开始后的所有操作,要么全部成功要么全部失败。 一致性(Consistency):事务开始前后数据库的完整性约束没有被破坏,比如:A向B转钱,不可能出现A扣了钱,B没收到钱。 隔离性(Isolation):多个事务并发访问时,事务之间是...原创 2021-03-09 17:13:18 · 160 阅读 · 0 评论 -
2021金三银四阿里+腾讯+字节+滴滴+美团java面试题全梳理(高清脑图+面试答案)!
今天偶然获得了这份阿里+腾讯+字节+滴滴+美团java面试题及答案(2021版)的面试题,共计是1379道题,共享出来和大家一起学习目录大纲详细内容(脑图版)为了不影响大家的阅读体验,就不把全部内容展示出来了,脑图内容已全部收录成册(如下所示)需要的朋友点赞收藏,关注我之后直接添加小助理vx:1426687161 即可百分百免费获取!...原创 2021-03-09 15:08:21 · 209 阅读 · 0 评论 -
面试官:小伙子你给我说说MySql并发事务处理细节
❝最近同事开发时遇到了一个事务阻塞的问题,通过网上查询发现关于MySQL事务、锁这一块的资料都比较絮乱,让人看得云里雾里,所以借着这个机会,刚好也对这一块内容做一个总结梳理,希望能比较全面去写一下MySQL的并发事务处理。❞本文主线:简述事务的特性与隔离级别 聊聊MySql中各种类型的锁 然后再聊聊MVCC是个什么东东 接着再聊聊数据库锁的触发及升级,以及死锁 最后说下出现锁问题时的常见排查命令简述事务的特性与隔离级别:❝在讲锁之前,必须要先聊聊「 事务的特性与隔离级别 .原创 2021-03-07 18:23:59 · 148 阅读 · 0 评论 -
悟了!原来这才是分布式事务的正确打开方式
一、分布式事务的概念1,什么是事务事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。2,本地事务数据库事务的四大特性 ACID:A(Atomic): 原子性 ,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。 C(Consistency): 一致性 ,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向李四转100元,转账前和转账后的数据是正确状态这叫一致性,如果出现张三转出100元,李四账户没有增加100原创 2021-03-07 18:22:38 · 313 阅读 · 0 评论 -
前端抱怨API响应慢,我们后端该做些什么?
分析API的耗时是将API的总耗时拆分为不同的部分,清晰地知道是什么原因导致耗时过高。我们借助不同的工具,在不同的网络环境下进行耗时分析,从而提出相应的优化建议。请求发送过慢导致耗时增加; DNS解析过慢导致耗时增加; 恶劣的网络环境导致耗时增加; 一直在排队导致响应过慢; 服务端响应过慢导致耗时增加; 响应体积过大导致耗时增加; 等等……一般从感官上觉得API接口响应慢,大部分人会直接归结于服务端处理慢,其实是不合理的。通过在内网环境下的API耗时分析和外网环境下的API耗时分析的对.原创 2021-03-07 17:54:39 · 598 阅读 · 0 评论 -
2021普通Java程序员如何在行业中脱颖而出?阿里进阶架构师不传之秘终于开源!
“倒挂”一词大家都不陌生,在程序员领域里更是屡见不鲜,尤其是在公司工作了一段时间后就会发现,后来的每个新人的工资都比自己高,你的工资是15k,新人的工资是30k,奈何人家能力强呢。而我们想要涨工资,那也是万万不可能的,除非你的工作能力突飞猛进,晋升成为大佬级别。所以就有了那句笑话,要想涨薪,不是去问领导,而是去换领导。不管是换领导还是要求涨薪,想要有更高的收入,就要看自己能不能在行业中脱颖而出,与同龄人相比是否有着更高的技术水平。从上面的招聘信息就可以看出现在企业所需要的是怎样.原创 2021-03-06 16:30:23 · 112 阅读 · 0 评论