上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 目前绝大多数项目还是采用 mysql 作为数据存储,对于用户访问量较高的网站来说,mysql 读写性能有限,我们通常会把 mysql 中的数据实时同步到 Redis、mongodb、elastic search 等中间件中,应对高并发访问场景,减轻 mysql 压力,防止数据库宕机。在项目开发中,为 阅读全文
posted @ 2024-01-20 22:59 乔京飞 阅读(12085) 评论(0) 推荐(0)
摘要: 使用 JVM 进程缓存的优点就是没有网络开销,性能速度最快;缺点就是容量有限,无法共享;比较适合性能要求高,缓存数据量小的场景。如果我们自己实现 JVM 进程缓存的话,会使用到 Map 数据类型,相关的过期移除策略以及容量控制都得自己实现,比较麻烦。Caffeine 是一个基于 Java8 开发的提 阅读全文
posted @ 2023-12-31 15:23 乔京飞 阅读(11785) 评论(0) 推荐(0)
摘要: 上篇博客介绍了 Redis 哨兵集群的搭建,虽然已经解决了 master 在宕机后,与 slave 之间会自动切换的问题,但是其承载的数据量天花板仍然是单机的最大内存容量,无法承载更多的数据量。 本篇博客介绍 Redis 分片集群的搭建,集群内部拥有多个 master 节点,每个 master 存放 阅读全文
posted @ 2023-12-24 18:43 乔京飞 阅读(12007) 评论(0) 推荐(0)
摘要: 上篇博客介绍的 Redis 主从集群搭建,有一个缺点就是 master 和 slave 的角色是固定的,不会发生变化。一旦 master 节点宕机,那么集群就只能提供读服务,无法提供写服务。本篇博客介绍 Redis 哨兵集群的搭建,可以监控 Redis 集群的 master 和 slave 节点,最 阅读全文
posted @ 2023-12-23 21:16 乔京飞 阅读(12301) 评论(0) 推荐(0)
摘要: 单机版的 Redis 能够承载并发访问的能力有限,对于绝大多数的系统而言,都是读多写少,系统之所以宕机,一般都是因为并发读操作太高导致的宕机,因此搭建 Redis 主从集群,实现读写分离,是一种有效的提高并发访问能力的方案。 本篇博客介绍在一台虚拟机上,使用 docker-compose 模拟搭建一 阅读全文
posted @ 2023-12-19 23:10 乔京飞 阅读(13873) 评论(0) 推荐(1)
摘要: Redis 是非常流行的缓存中间件,其具有功能强大和部署简单的优势,我们在 CentOS 上使用 yum 就能够在线安装 Redis。之所以要介绍使用 Docker 进行容器化部署 Redis ,主要原因是当前容器化部署是主流,而且能够保障服务器文件系统的整洁。 本篇博客主要介绍如何使用 docke 阅读全文
posted @ 2023-12-17 17:36 乔京飞 阅读(15038) 评论(0) 推荐(1)
摘要: Seata 的 TCC 模式需要通过人工编码来实现数据的回滚恢复,有点麻烦,但是性能最高。TCC 是 3 个方法的首字母缩写,即 Try 方法、Confirm 方法、Cancel 方法。Try 方法进行资源的检查和冻结,Confirm 方法是当所有事务都成功后调用的方法,Cancel 方法是当整体事 阅读全文
posted @ 2023-12-05 22:45 乔京飞 阅读(12560) 评论(0) 推荐(1)
摘要: 有了上篇博客实现 XA 模式的基础,本篇博客在实现 AT 模式时,不需要修改任何代码,只需要增加一张数据库表,修改以下 application.yml 配置即可实现。AT 模式也是分两个阶段提交的事务模型,它缺弥补了 XA 模型中资源锁定周期过长的问题。 其实现的两个阶段的工作原理如下: 第一阶段注 阅读全文
posted @ 2023-12-04 22:39 乔京飞 阅读(12901) 评论(0) 推荐(0)
摘要: 上篇博客已经搭建了分布式事务 Seata 的集群,本篇博客主要介绍如何使用 Seata 的 XA 模式。 XA 模式的规范是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 模式规范描述了全局的 TM 与局部的 RM 阅读全文
posted @ 2023-12-03 14:30 乔京飞 阅读(12391) 评论(0) 推荐(0)
摘要: Seata 是蚂蚁金服和阿里巴巴共同开源的一款分布式事务项目,致力于在微服务架构下提供高性能和简单易用的分布式事务解决方案。自诞生以来就备受国内开发人员推崇,在实际工作中使用者甚多。Seata 提供了四种不同的分布式事务解决方案: XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入 T 阅读全文
posted @ 2023-11-20 22:39 乔京飞 阅读(15255) 评论(0) 推荐(1)
摘要: 实际工作中生成二维码,通过手机进行扫码查看的需求比较多。Hutool 工具包中有很多实用的工具类,其中就包含二维码生成和识别的 QrCodeUtil 工具类,默认生成白底黑色的二维码,也可以自定义二维码的样式,比如设置背景色、前景色、设置边距以及在二维码中心显示自定义的 logo 等等,使用起来非常 阅读全文
posted @ 2023-11-16 21:27 乔京飞 阅读(18918) 评论(0) 推荐(2)
摘要: Sentinel 是阿里的一款微服务请求监控组件,能够通过配置实现流量控制,降级熔断,热点参数限流,授权规则限流,使用非常方便。官方默认只提供了流量控制配置规则持久化代码实现,这也是我们最常用的,上篇博客已经实现并进行了部署。 本篇博客基于上篇博客搭建好的 Sentinel 和 Nacos 环境,介 阅读全文
posted @ 2023-11-09 22:26 乔京飞 阅读(13315) 评论(0) 推荐(1)
摘要: 早期大家都使用 netflix 公司的 Hystrix 组件,通过编写代码实现对微服务接口的限流、熔断、隔离等保护措施,由于 Hystrix 组件不再更新迭代,逐渐被大家抛弃。当前大家基本上都使用阿里的 Sentinel 技术实现对微服务接口的访问监控和保护,其最大的优点就在于基本上不需要编代码,只 阅读全文
posted @ 2023-11-07 20:43 乔京飞 阅读(12627) 评论(0) 推荐(0)
摘要: 前面介绍了注解加拦截器的权限控制方式,在拦截器中解析注解配置进行权限控制。拦截器的方案:优点是比较简洁,缺点是只能在 controller 及其下面的方法配置注解控制权限。已经可以满足绝大多数项目的需求。 本篇博客介绍第二种方案,在 AOP 切面中解析注解配置进行权限控制。AOP 方案,优点是可以通 阅读全文
posted @ 2023-10-31 14:58 乔京飞 阅读(13509) 评论(0) 推荐(0)
摘要: 前面介绍了使用 SpringSecurity 进行权限控制,其中一个非常方便的特点就是:可以在类和方法上使用注解,从而实现对资源访问的权限控制。但是 Spring Security 具有一定的学习成本和复杂度,想要灵活驾驭并用好框架并非一件容易的事情,比如跟其它系统进行单点登录集成等等。 本篇博客介 阅读全文
posted @ 2023-10-30 22:17 乔京飞 阅读(12515) 评论(0) 推荐(0)
摘要: 对于 ElasticSearch8 集群,比较容易的方式就是无密码集群搭建。对于 ElasticSearch 来说,一般都是运行在内网中,可以通过防火墙限制来源 ip 或者通过 ElasticSearch 自身的配置来限制来源 ip。这种保障安全的方式比较类似于 Redis 。 对于 Kibana 阅读全文
posted @ 2023-10-24 17:05 乔京飞 阅读(13683) 评论(0) 推荐(0)
摘要: 在搜索过程中,大部分情况下会有智能提示功能,也就是开头匹配的自动补全功能,这就需要用到 ElasticSearch 的 Suggest 查询功能。用户也可能输入拼音或者查询关键字的首字母简写,比如我想查询华为手机,我可以输入 hwsj 进行查询,这就需要用到拼音分词器。本篇博客将介绍如何安装拼音分词 阅读全文
posted @ 2023-10-22 15:11 乔京飞 阅读(12673) 评论(0) 推荐(0)
摘要: 前面已经搭建好了单机版的 ElasticSearch 和 Kibana,接下来就可以通过 DSL 和 Java 代码操作 ElasticSearch。对于 ElasticSearch 来说,DSL(domain specific language )语言其实就是将 restful 请求和 Json 阅读全文
posted @ 2023-10-19 14:37 乔京飞 阅读(13125) 评论(0) 推荐(0)
摘要: ElasticSearch 是一款底层是基于 lucene 实现,功能强大的搜索引擎中间件,也可以认为 ElasticSearch 是一款 NoSql 数据库。每一种 NoSql 数据库的诞生,都是为了解决传统关系型数据库无法解决的问题,ElasticSearch 能够从海量数据中快速找到所需要的内 阅读全文
posted @ 2023-10-10 23:18 乔京飞 阅读(13703) 评论(0) 推荐(0)
摘要: RabbitMQ 是基于 Erlang 语言开发的,该语言天然支持集群分布式模式,因此部署 RabbitMQ 集群非常简单。 RabbitMQ 的集群部署有两种模式: 普通集群:又称为标准集群,是一种分布式集群,将队列分散到集群的各个节点,提高整个集群的并发能力。 镜像集群:在普通集群的基础上,添加 阅读全文
posted @ 2023-10-06 09:19 乔京飞 阅读(15080) 评论(0) 推荐(1)
上一页 1 2 3 4 5 6 7 ··· 9 下一页