随笔
文章平均质量分 88
靓仔聊编程
某知名上市公司码农
展开
-
略懂设计模式之策略模式
一个阳光明媚的上午,靓仔正在开心的划水摸鱼,耳机里传来音乐“不是吧不是吧,难道单压也算压…”产品经理突然出现在身后,拍了拍我的肩膀产品经理:又在摸鱼,看来工作不饱和啊,正好有个需求你做一下。公司推出了会员制度,分普通会员和超级会员,普通会员购买商品打九折,超级会员购买商品打八折。靓仔:就这?简单public Double computePrice(String type, Double price) { if ("VIP".equals(type)) { // 普通会员9折原创 2021-09-25 18:57:16 · 145 阅读 · 0 评论 -
基于 Mysql 实现一个简易版搜索引擎
前言前段时间,因为项目需求,需要根据关键词搜索聊天记录,这不就是一个搜索引擎的功能吗?于是我第一时间想到的就是 ElasticSearch 分布式搜索引擎,但是由于一些原因,公司的服务器资源比较紧张,没有额外的机器去部署一套 ElasticSearch 服务,而且上线时间也比较紧张,数据量也不大,然后就想到了 Mysql 的全文索引。简介其实 Mysql 很早就支持全文索引了,只不过一直只支持英文的检索,从5.7.6 版本开始,Mysql 就内置了 ngram 全文解析器,用来支持中文、日文、韩文分原创 2021-08-29 10:04:46 · 345 阅读 · 0 评论 -
如何保证接口的幂等性?
今天我们来聊聊关于接口的幂等性问题。什么是幂等性所谓幂等,就是任意多次执行所产生的影响均与一次执行的影响相同。在 restful 规范中,常见的请求方式和接口幂等性关系如下:请求方式操作是否幂等GET查询数据是POST新增数据否PUT更新数据直接更新为某个值,满足幂等,如:set a = 1;累加操作的更新,不满足,如:set a = a+1DELETE删除数据根据唯一条件删除,满足幂等;否则,不满足,幂等,比如:根据某一条件删除一批数据后,又原创 2021-08-22 10:41:24 · 294 阅读 · 0 评论 -
你必须了解的分布式事务解决方案
前言上一篇文章《就这?分布式 ID 发号器实战》之后,我朋友辉哥在后台留言让靓仔聊聊分布式事务,既然辉哥都开口了,那必须得满足啊,安排!温馨提示:文章很干,请多喝水什么是分布式事务什么是事务想必大多数朋友应该都很清楚了,不清楚的可以看前面的文章《就这?一篇文章让你读懂 Spring 事务》。分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说,就是一个大的操作由 N 个小操作组成,这些小的操作分布在不同的服务器上,且属于不原创 2021-08-16 09:06:40 · 177 阅读 · 0 评论 -
就这?分布式 ID 发号器实战
分布式 ID 需要满足的条件:**全局唯一:**这是最基本的要求,必须保证 ID 是全局唯一的。**高性能:**低延时,不能因为一个小小的 ID 生成,影响整个业务响应速度。**高可用:**无限接近于100%的可用性。**好接入:**遵循拿来主义原则,在系统设计和实现上要尽可能简单。**趋势递增:**这个要看具体业务场景,最好要趋势递增,一般不严格要求。让我来先捋一捋常见的分布式 ID 的解决方案有哪些?1、数据库自增 ID这是最常见的方式,利用数据库的 auto_increment .原创 2021-08-14 10:08:14 · 260 阅读 · 0 评论 -
略懂设计模式之工厂模式
前言工厂模式应该是大家的老朋友了,相信很多朋友在学习和工作中一定遇到过,但是不一定很了解,这篇文章将通过几个例子,带大家一起进一步了解工厂模式。简介工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。 这种类型的设计模式属于创建型模式 ,它提供了一种创建对象的最佳方式。在创建型模式中工厂模式是比较重要的一种,之所以名称中包含“工厂”二字,是因为用工厂代替了 new 操作,将对象实例化的过程交给工厂来实现。工厂模式关心的是最终创建的对象, 而不关心创建的过程。 举个例子,原创 2021-08-08 10:01:43 · 136 阅读 · 0 评论 -
就这?Spring 事务失效场景及解决方案
小明:靓仔,我最近遇到了很邪门的事。靓仔:哦?说来听听。小明:上次看了你的文章《就这?一篇文章让你读懂 Spring 事务》,对事务有了详细的了解,但是在项目中还是遇到了问题,明明加了事务注解 @Transactional,却没有生效。靓仔:那今天我就给你总结下哪些场景下事务会失效。1、数据库引擎不支持事务Mysql 常用的数据库引擎有 InnoDB 和 MyISAM,其中前者是支持事务的,而后者并不支持,MySQL 5.5.5 以前的默认存储引擎是:MyISAM,之前的版本默认的都是:InnoD原创 2021-08-04 21:03:22 · 249 阅读 · 0 评论 -
就这?一篇文章让你读懂 Spring 事务
什么是事务▲ 百度百科概括来讲,事务是一个由有限操作集合组成的逻辑单元。事务操作包含两个目的,数据一致以及操作隔离。数据一致是指事务提交时保证事务内的所有操作都成功完成,并且更改永久生效;事务回滚时,保证能够恢复到事务执行之前的状态。操作隔离则是指多个同时执行的事务之间应该相互独立,互不影响。靓仔和小明的银行账户都有1000元,靓仔要给小明转账500元。这个过程看似简单,实际上涉及了一系列的数据库操作,可以简单地视为两步基本操作,即从靓仔帐户的金额中扣除500元,以及将小明帐户中金额添加500元原创 2021-07-28 20:37:47 · 130 阅读 · 0 评论 -
什么?你还不会在GitHub上搜索资源?还不点进来看看?
GitHub 作为全球最大“同性交友“网站,上面有很多优秀的开源项目和学习教程,那么怎样才能高效的在 GitHub 上搜索你想要的内容呢,别着急,接着往下看。搜索项目in 关键字搜索该关键字可以根据 GitHub 上的资源名称 name、说明 description 和 readme 文件中的内容进行搜索# 语法[关键字] in:[name|description|readme]# 示例springcloud in:name,description,readme # 逗号分割原创 2021-07-27 17:43:46 · 1064 阅读 · 0 评论 -
最详细的图文解析Java各种锁
前言通过本篇文章,你将了解到:1、锁的全家福 2、如何验证公平/非公平锁 3、底层如何获取锁/释放锁 4、自旋锁与自适应自旋 5、为什么需要等待/通知机制1、锁的全家福关注公众号【靓仔聊编程】回复【java锁高清图】,即可获得高清图2、如何验证公平/非公平锁公平与非公平区别之处在于获取锁时的策略。如上图:1、线程1持有锁。 2、线程2、线程3、线程4 在同步队列里排队等候锁。这时线程5也想要获取锁,根据公平与否分为两种不同策略。公平锁转载 2021-07-11 15:36:15 · 265 阅读 · 0 评论 -
一定要收藏的5个优秀的SpringCloud开源项目
上一期为大家推荐了几个前端模板,没看过的点下面一定要收藏的5个后台管理系统的前端框架今天再为大家推荐几个优秀的SpringCloud开源脚手架项目,开箱即用,不管是学习还是开发新项目,都非常不错。伟大的作家鲁迅先生曾说过:能直接用,绝不重复造轮子好了,不多bb,上才艺!1、pig基于 Spring Cloud 2020 、Spring Boot 2.5、 OAuth2 的 RBAC 权限管理系统。gitee star 23.8k项目地址:htt原创 2021-07-10 12:53:16 · 2145 阅读 · 0 评论 -
一定要收藏的5个后台管理系统的前端框架
当你开发新项目的时候,如何快速的完成一个项目的搭建,这个时候就需要借助到一些模板了,现在网上各类UI模板都是相当的齐全的,本文就介绍几个靓仔觉得非常不错的前端框架,感兴趣的可以了解一下。1、vue-element-admin开源地址:https://github.com/PanJiaChen/vue-element-admin文档地址:https://panjiachen.github.io/vue-element-admin-site/zh/效果预览:https://panjiache原创 2021-07-10 00:36:18 · 1499 阅读 · 0 评论