• Transformer:内部工作原理及拆解
    LLMs是基于大量文本数据训练的AI系统,能够生成类似人类的文本、翻译语言、撰写不同类型的创意内容,以及回答问题。Transformer架构使这些模型能够以全新的方式处理和理解语言,从而实现过去无......
    Transformer:内部工作原理及拆解
  • 浅谈系统性能提升的经验和方法
    资金核对的数据组装-执行-应急链路,有着千万级TPS并发量,同时由于资金业务特性,对系统可用性和准确性要求非常高;日常开发过程中会遇到各种各样的高可用问题,也在不断地尝试做一些系统设计......
    浅谈系统性能提升的经验和方法
  • GIT协作流程规范
    目前团队使用的模式属于老旧的集中式分支模型,简单的总结就是:开发时:团队的所有成员都在dev分支上开发(也支持少部分的特性分支feature-xxx)。测试时:当功能需要上测试环境测试时,把dev......
    GIT协作流程规范
  • SpringBoot 实现异步记录复杂日志
    最近接手一个任务,需要给当前项目加一个较为复杂的日志。有多复杂呢?要有日志类型、不同日志类型要有不同的操作和备注等。作为小白的我最开始的做法是在业务层写代码记录日志,好处就是方便,......
    SpringBoot 实现异步记录复杂日志
  • 一文读懂敏捷开发的发布策略
    发布策略是不是发布方案、发布计划、发布方法?我们常听到的蓝绿发布、滚动发布、灰度发布是不是就是发布策略呢?下面我们就一起看一下。......
    一文读懂敏捷开发的发布策略
  • 万字长文说 Code Review
    发现不少同学codereview与写出好代码的水平有待提高。在这里,想分享一下我的一些理念和思路。......
    万字长文说 Code Review
  • Redis 内存优化在 vivo 的探索与实践
    本文主要是通过分析Redis内存结构、介绍内存优化手段,同时结合生产案例,帮助大家在优化内存使用,快速定位Redis相关内存异常问题。......
    Redis 内存优化在 vivo 的探索与实践
  • Redis 使用规范
    在公司项目中,redis属于高频使用,在使用中,我们遇到了各种各样的redis问题,于是针对自身情况梳理了一个redis使用规范。......
    Redis 使用规范
  • Linux 实时查看日志文件的 4 种方法
    在Linux下如何才能实时查看日志内容呢?有很多工具可以帮助我们在文件持续修改的同时输出文件内容,最常用的莫过于tail命令了。......
    Linux 实时查看日志文件的 4 种方法
  • Redis 最佳实践指南:7个维度+43条使用规范
    Redis的性能之所以如此之高,原因就在于它的数据都存储在「内存」中,所以访问Redis中的数据速度极快。但从资源利用率层面来说,机器的内存资源相比于磁盘,还是比较昂贵的。......
    Redis 最佳实践指南:7个维度+43条使用规范
  • 自动注入(autowire)详解
    依赖注入中的手动注入,所谓手动注入是指在xml中采用硬编码的方式来配置注入的对象,比如通过构造器注入或者set方法注入,这些注入的方式都存在不足......
    自动注入(autowire)详解
  • 三分钟实现 Spring Boot 集成 RabbitMQ,实现消息队列服务
    SpringBoot提供了spring-bootstarter-amqp组件对消息队列进行支持,使用非常简单,仅需要非常少的配置即可实现完整的消息队列服务。......
    三分钟实现 Spring Boot 集成 RabbitMQ,实现消息队列服务
  • 常用的后台性能优化六种方式:缓存化+服务化+异步化
    常用的后台性能优化六大方式01.缓存化缓存可以称的上是性能优化的利器,使用缓存时需要考虑缓存命中率、缓存升级、数据一致性、缓存穿透及雪崩、Value过大等问题......
    常用的后台性能优化六种方式:缓存化+服务化+异步化
  • 如何采用Sharding-JDBC解决分库分表
    Sharding-JDBC是当当网研发的开源分布式数据库中间件,从3.0开始Sharding-JDBC被包含在Sharding-Sphere中,之后该项目进入进入Apache孵化器,4.0版本之后的版本为Apache版本。......
    如何采用Sharding-JDBC解决分库分表
  • Java 性能优化的 50 个细节
    在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。......
    Java 性能优化的 50 个细节
  • 商业智能(BI)选型手册
    互联网时代企业数据呈现爆发式增长,全面考验着企业的数据处理和分析能力。面对大容量、多样性、高增长的数据很多企业往往无所适从,除了耗费大量管理和存储成本外并没有给企业带来真正的价值,大......
    商业智能(BI)选型手册
  • SpringCloud下的用户鉴权方案
    Java下常用的安全框架主要有SpringSecurity和shiro,都可提供非常强大的功能,但学习成本较高。在微服务下鉴权多多少少都会对服务有一定的入侵性。为了降低依赖,减少入侵,让鉴权功能相对应用服务......
    SpringCloud下的用户鉴权方案
  • Python结合RFM模型实现用户分层
    通过分析发现原来几个重要的客户被竞争对手挖走了,而这几个用户对平台贡献了80%的销售额。之前对所有用户采用一样的运营策略,为了解决这个问题,需要对用户进行分类,了解当前用户分层情况,进行精......
    Python结合RFM模型实现用户分层
  • 企业微信万亿级日志检索系统
    虽然现网保留7天最新日志,但是由于某些模块请求量大或日志打印不合理,我们也会限制一个小时日志打印量,超过阈值后不再保存......
    企业微信万亿级日志检索系统
  • Java日志体系权威总结
    本文的目的是搞清楚Java中各种日志Log之间是怎么的关系,如何作用、依赖,好让我们平时在工作中如果遇到“日志打不出”或者“日志jar包冲突”等之类的问题知道该如何入手解决,以及在各种场景下......
    Java日志体系权威总结
  • 40个问题让你快速掌握Java多线程的精髓
    多线程可以理解为在同一个程序中能够同时运行多个不同的线程来执行不同的任务,这些线程可以同时利用CPU的多个核心运行。多线程编程能够最大限度的利用CPU的资源。本文将通过以下几个方向为大家......
    40个问题让你快速掌握Java多线程的精髓
  • Kafka、RabbitMQ、RocketMQ 之间的区别是什么 ?
    Kafka采用拉取(Pull)方式消费消息,吞吐量相对更高,适用于海量数据收集与传递场景,例如日志采集和集中分析。......
    Kafka、RabbitMQ、RocketMQ 之间的区别是什么 ?
  • 使用SpringBoot AOP 记录操作日志、异常日志
    平时我们在做项目时经常需要对一些重要功能操作记录日志,方便以后跟踪是谁在操作此功能;我们在操作某些功能时也有可能会发生异常,但是每次发生异常要定位原因我们都要到服务器去查询日志才能......
    使用SpringBoot AOP 记录操作日志、异常日志
  • SpringBoot最最最常用的注解梳理
    @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让springBoot扫描到Config......
    SpringBoot最最最常用的注解梳理
  • 还分不清 Cookie、Session、Token、JWT
    通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功)......
    还分不清 Cookie、Session、Token、JWT
  • SpringBoot写后端接口,看这一篇就够了
    本文演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。......
    SpringBoot写后端接口,看这一篇就够了
  • SpringBoot注解大全
    @SpringBootApplication:申明让springboot自动给程序进行必要的配置,这个配置等同于:@Configuration,@EnableAutoConfiguration和@ComponentScan三个配置......
    SpringBoot注解大全
  • java中的 9 个处理Exception的最佳实践
    在Java中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。......
    java中的 9 个处理Exception的最佳实践
  • 分布式事务基础篇
    数据库事务(简称:事务),是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。......
    分布式事务基础篇
  • 一文讲清Spring Cloud 微服务架构的五脏六腑!
    SpringCloud是一个基于SpringBoot实现的微服务框架,它包含了实现微服务架构所需的各种组件。......
    一文讲清Spring Cloud 微服务架构的五脏六腑!
  • Spring Boot发邮件和附件
    SpringBoot集成邮件服务竟如此简单,快速掌握邮件业务类的核心逻辑和企业邮件的日常服务。......
    Spring Boot发邮件和附件
  • Java线程池实现原理及其在美团业务中的实践
    本文开篇简述线程池概念和用途,接着结合线程池的源码,帮助读者领略线程池的设计思路,最后回归实践,通过案例讲述使用线程池遇到的问题,并给出了一种动态化线程池解决方案。......
    Java线程池实现原理及其在美团业务中的实践
  • 在 Java 中遍历 HashMap 的5种最佳方式
    在本文中,我们将通过示例讨论在Java上遍历HashMap[3]的五种最佳方法。使用Iterator遍历HashMapEntrySet使用Iterator遍历HashMapKeySet......
    在 Java 中遍历 HashMap 的5种最佳方式
  • 使用枚举简单封装一个优雅的 Spring Boot 全局异常
    通过这篇文章,可以搞懂如何在SpringBoot中进行异常处理。但是,光是会用了还不行,我们还要思考如何把异常处理这部分的代码写的稍微优雅一点。下面我会以我在工作中学到的一点实际项目中异常处......
    使用枚举简单封装一个优雅的 Spring Boot 全局异常
  • 面试常问的 25+个Linux命令
    本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用--help查看帮助或者直接通过google搜索学习。......
    面试常问的 25+个Linux命令
  • 12 种使用 Vue 的优秀做法
    随着VueJS的使用越来越广泛,出现了几种最佳实践并逐渐成为标准。在本文中,主要分享在平时开发中一些有用资源和技巧,废话少说,我们开始吧。......
    12 种使用 Vue 的优秀做法
  • 互联网后端基础设施
    使用Java后端技术的目的就是构建业务应用,为用户提供在线或者离线服务。因此,一个业务应用需要哪些技术、依赖哪些基础设施就决定了需要掌握的后端技术有哪些。......
    互联网后端基础设施
  • “新冠疫情”对中国SaaS的深远影响
    无论是那些业务量暴增的少量SaaS企业,还是这几家平台公司,大家要面临的关键问题是,大潮退去后,沙滩上能留下多少真正长期使用的用户?这些用户中,又有多少能够转化为付费的客户......
    “新冠疫情”对中国SaaS的深远影响
  • 手摸手教学之:梳理数据指标体系
    因为几乎所有数据分析工作都会提“建立数据指标体系”。同学们现实的困惑是:你说报表我就见过,我天天都在更新。可这玩意怎么就体系了呢?做了体系又怎么样呢?......
    手摸手教学之:梳理数据指标体系
  • 彻彻底底给你讲明白啥是SpringMvc异步处理
    分工的产生与协作代表着一种更加先进和高效的生产方式,至少从理论上来看是这样的,他们各司其职,然后再强强联合,结果可想而知。......
    彻彻底底给你讲明白啥是SpringMvc异步处理
  • 分布式定时任务调度框架实践
    分布式任务调度框架几乎是每个大型应用必备的工具,本文介绍了任务调度框架使用的需求背景和痛点,对业界普遍使用的开源分布式任务调度框架的使用进行了探究实践,并分析了这几种框架的优劣势和......
    分布式定时任务调度框架实践
  • OPPO异地多活实践缓存篇
    互联网后台服务的常用经典架构中,整个后台服务框架一般可以分四层:接入层,一般用于请求的安全校验、频率和流量控制逻辑层,用于用户数据的请求和返回逻辑控制缓存层,为了加快访问性能,cach......
    OPPO异地多活实践缓存篇
  • 终于有人把 Docker 的原理讲清楚了
    Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实......
    终于有人把 Docker 的原理讲清楚了
  • 详解 Nginx 服务器的六种负载均衡策略
    在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。......
    详解 Nginx 服务器的六种负载均衡策略
  • Redis 超详细总结笔记
    Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库......
    Redis 超详细总结笔记
  • 使用nginx的负载均衡机制实现用户无感更新服务
    目前市面上优秀的请求转发有很多种,比如:Nginx、F5、Kong、Tengine等,其中Tengine是阿里巴巴基于Nginx进行封装......
    使用nginx的负载均衡机制实现用户无感更新服务
  • SpringBoot集成JWT实现token验证
    Jsonwebtoken(JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC7519).定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息......
    SpringBoot集成JWT实现token验证
  • Redis数据库及其基本操作
    Redis是一个高性能的key-value数据库,支持主从同步,完全实现了发布/订阅机制,因此可以用于聊天室等场景.主要表现于多个浏览器之间的信息同步和实时更新.......
    Redis数据库及其基本操作
  • Spring Boot中配置定时任务、线程池与多线程池执行的方法
    基本的配置方法,而且这样配置定时任务是单线程串行执行的,也就是说每次只能有一个定时任务可以执行,可以试着声明两个方法,在方法内写一个死循环,会发现一直卡在一个任务上不动,另一个也没......
    Spring Boot中配置定时任务、线程池与多线程池执行的方法
  • Spring Boot整合MyBatis连接Oracle数据库的步骤全纪录
    本文主要分享了SpringBoot整合MyBatis连接Oracle数据库的相关内容,下面话不多说了,直接来详细的步骤吧。......
    Spring Boot整合MyBatis连接Oracle数据库的步骤全纪录
  • 2019 年 22 款最佳软件开发工具
    市面上有海量的软件开发工具,因此,选择最佳软件开发工具可能是一项挑战。本文是22款顶级软件开发工具的精选列表。......
    2019 年 22 款最佳软件开发工具
  • SpringBoot基于数据库的定时任务实现
    在我们平时开发的项目中,定时任务基本属于必不可少的功能,那大家都是怎么做的呢?但我知道的大多都是静态定时任务实现。......
    SpringBoot基于数据库的定时任务实现
  • Linux最常用命令:简单易学,但能解决95%以上的问题
    linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。......
    Linux最常用命令:简单易学,但能解决95%以上的问题
  • 快速图解Spring Cloud微服务架构
    通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。......
    快速图解Spring Cloud微服务架构
  • Spring Boot 构建多租户SaaS平台核心技术指南
    SaaS平台的难度在于商业上的运营,而非技术上的实现。就技术上来说,SaaS是这样一种架构模式:它让多个不同环境的用户使用同一套应用程序,且保证用户之间的数据相互隔离。现在想想看,这也有点......
    Spring Boot 构建多租户SaaS平台核心技术指南
  • 为什么分布式一定要有redis,redis的一些优缺点
    edis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。因此,这个问题主要从性能和并发两个角度去答。......
    为什么分布式一定要有redis,redis的一些优缺点
  • java类加载过程
    JVM将类描述数据从.class文件中加载到内存,并对数据进行,解析和初始化,最终形成被JVM直接使用的Java类型。类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、......
    java类加载过程
  • HashMap的数据结构
    HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的即哈希表和红黑树。......
    HashMap的数据结构
  • java中快速失败(fail-fast)和安全失败(fail-safe)的区别是
    当一个或多个线程正在遍历一个集合Collection,此时另一个线程修改了这个集合的内容(添加,删除或者修改)。这就是并发修改......
    java中快速失败(fail-fast)和安全失败(fail-safe)的区别是
  • Vector,ArrayList,LinkedList有何区别?
    三者都属于List的子类,方法基本相同。比如都可以实现数据的添加、删除、定位以及都有迭代器进行数据的查找,但是每个类在安全,性能,行为上有着不同的表现。......
    Vector,ArrayList,LinkedList有何区别?