author avatar

Wanxp

[实践]如何让我们的线上系统实现高性能、高可用、高扩展性的

背景 我们已经有很多种业务系统在生产环境上跑了。大多数项目初期都是小规模的业务,或者是新开辟的业务,都是要求快速迭代上线,所以在规范和要求上都没有做太多的考虑。开发模式都是来一个业务就直接上一个springboot web项目。导致各大业务系统都是独立的,数据都不互通,还不好管理。后来我们将公司所有

[简记]rust中借用与可变借用理解

背景 rust语言是最近几年比较火的一门语言,被称为编程界的“原神”,就是喜欢玩的人的都说好,去给没玩过的人说特别好玩,不喜欢的人看不惯这种到处吹的,中立派也觉得就那样,甚至看着Rust吹到处吹,就反着黑下[1] 介绍 所有权 所有权(ownership)是 Rust 用于如何管理内存的一组规则。规

[实践]如何在分布式微服务中使用Redis实现分布式锁-1

背景 锁 在谈到分布式锁之前,为什么要用锁?好端端代码或者数据为啥要加锁呢? 我的理解是,因为值的读取和写入是两个步骤,如果在读取和写入之间有其他线程修改了数据,就会导致数据不一致的问题。锁的作用就是在读取和写入操作之间提供一个互斥的环境,保证在同一时间中只有一个线程可以进行操作。 这就像你买股票,

[异常]EasyExcel问题之Lombok的Accessors注解与CGLib BeanMap冲突

最近在使用EasyExcel时,遇到读取到的行记录的属性都为null问题。最终一番排查发现时Lombok的Accessors注解与CGLib BeanMap冲突问题导致

[理论]生产微服务-1.微服务的简介

背景微服务究竟是什么?为什么要使用微服务?怎么设计以及开发微服务项目?对于这致命问题三连,应该怎么回答?从开发至今,接触了蛮久的微服务项目,对于这些问题也很少去关注。我想诸君也有想过这些问题。我之前有主导过单体应用重构微服务的项目,当时主要是有新需求的场景,以及一些情况使得微服务的重构工作迫在眉睫。下面仅以个人的见解对Uber系统可靠性工程师Susan J Fowler的《生产微服务》总结内容简单介绍微服务。

[简记]Mysql存储过程实战:批量修改类型与批量新增字段

背景有些时候我们会遇到一些需要批量新增字段的需求。比如原有系统部分表去烧基础字段:更新人ID、更新人名称、操作url等等。但是有些表已经包含了这些字段,所以为了能统一基础字段,就需要批量操作,去新增基础字段(需要注意的是更改表结构是会锁表的,所以这种批量修改表结构的方式是适合项目前期或者项目的流量不

[算法]广度优先搜索BFS

BFS(广度优先搜索 Breadth-First Search)[1]BFS基本介绍是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。广度优先搜索的实现一般采用open-closed表。BFS实现方法首先将根节点放入队列中。从队列中取出第

[算法]深度优先搜索DSF

DFS(深度优先搜索 Depth-First-Search)[1]DFS基本介绍是一种用于遍历或搜索树或图的算法。这个算法会尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则

[笔记]HikariCP浅析2-HikariCP与其他连接池对比

背景Hikari能作为了pring默认的数据库连接池组件,想必它相比其它组件有一定的优势,而其它的数据库连接池存在也有它们的优势。常用数据库连接池有:C3P0、DBCP2、Tomcat、OracleUcp,和其它的。在 @被纵养的懒猫 博客带你读《HikariCP数据库连接池实战》之二:数据库连接池

[源码]HikariCP浅析1-SpringBoot与HikariCP

背景最近遇到一个问题:数据库长时间下线后,微服务应用数据库连接池超时后挂起,整个应用为假死状态,不能对外提供任何服务,当数据库恢复后,连接池没有重连,服务还是保持下线状态。项目背景是使用:spring-data-jdbc + mybatis + dynamic-datasource + hikari