摘要: 如果一个队列设置了死信交换机,该队列的消息就有了极大的可靠性保障,当出现以下情况时,消息就会投递到死信交换机中: 队列中的消息在被消费者处理后,抛出异常,返回了 nack 或者 reject 如果队列设置了 ttl 或者消息本身设置了 ttl ,消息因为超时而未消费 队列容量已经满了,后续发来的消息 阅读全文
posted @ 2023-10-05 10:41 乔京飞 阅读(12262) 评论(0) 推荐(0)
摘要: 在一些比较重要的场景中,我们必须要保障 RabbitMQ 消息的可靠性,也就是发送给 rabbitmq 的消息必须最终成功,消费者接收消息进行处理也必须最终成功。即使是中间失败了,也必须要有其它保障措施,哪怕最后进行人工进行干预处理。 消息出现丢失的场景主要有: 发送消息时丢失:比如消息发送到交换机 阅读全文
posted @ 2023-10-04 10:22 乔京飞 阅读(12683) 评论(0) 推荐(0)
摘要: 现在的网站开发,基本上都是前后端分离,后端提供 api 接口并进行权限控制。使用 Spring Security 框架可以大大简化权限控制的代码实现。对于后端接口而言,为了能够实现多节点负载均衡部署,更好的方案是不再使用 Session 了,绝大多数情况下,通过提交 JWT Token 来进行身份认 阅读全文
posted @ 2023-09-25 22:07 乔京飞 阅读(12694) 评论(0) 推荐(0)
摘要: Spring Security 是基于 Spring 框架提供的一套 Web 应用安全的完整解决方案,核心功能主要是认证和授权。认证主要是判断用户的合法性,主要体现在登录操作,最常用的认证方式是【基于表单的认证】和【基于OAuth2的认证】。授权主要体现在权限控制,也就是控制用户是否能够访问网站的相 阅读全文
posted @ 2023-09-17 19:35 乔京飞 阅读(12321) 评论(0) 推荐(0)
摘要: 生产环境中一般不可能将用户上传的文件存放在单机,绝大多数情况下会搭建文件服务器集群,确保文件的互相备份和高可用。上一篇博客已经对 FastDFS 分布式文件系统进行了介绍,这里不再赘述。由于我个人笔记本电脑性能有限,因此本篇博客将使用 2 台虚拟机搭建 FastDFS 集群,实现 2 台机器之间文件 阅读全文
posted @ 2023-09-05 22:56 乔京飞 阅读(13414) 评论(0) 推荐(0)
摘要: 我们工作中经常会有上传和下载文件的需求,早些年代我们一般会将上传的文件保存在网站所在的服务器上,但是现在一般网站都是负载均衡多服务器部署,因此必须要有独立的文件服务器才行。早些年代,如果有一台独立的文件服务器,一般会搭建 NFS 共享服务,给多个网站服务器之间使用。如果有多台文件服务器的话,各个服务 阅读全文
posted @ 2023-09-03 23:44 乔京飞 阅读(12559) 评论(0) 推荐(0)
摘要: 工作中难免会有一些定时调度需求,比如定时统计数据,定时清理垃圾等等。你可能用过 Quartz 框架,但是现在基本上已经被淘汰了,因为其使用起来还是有些复杂。目前单机定时任务基本上都使用基于 Spring 注解的定时调度,分布式定时任务基本上都使用 xxl job 定时调度,原因就是使用起来很非常简单 阅读全文
posted @ 2023-08-30 23:32 乔京飞 阅读(11779) 评论(0) 推荐(0)
摘要: 目前越来越多的项目和产品,需要具有空间查询的需求,如外卖送餐时骑手的定位,地图上搜索以自己为中心点附近的餐厅等等,所以当前基本上所有的关系型数据库以及 nosql 数据库都具有空间查询的函数功能。但是总体而言 nosql 数据库的空间查询性能更高,这里不深入探讨具体的原因,有兴趣可以自行查询资料或动 阅读全文
posted @ 2023-08-26 19:58 乔京飞 阅读(12163) 评论(0) 推荐(1)
摘要: 前面我们搭建了 mongodb 单机环境,但是在实际生产环境中,为了高可用,肯定需要搭建 mongodb 集群。mongodb 集群主要分为两种:副本集群和分片集群。其中副本集群搭建容易,是生产环境中使用最多的集群,因此很有必要掌握。 副本集群比较类似于 mysql 的主从复制,一主多从,每个节点的 阅读全文
posted @ 2023-08-20 11:51 乔京飞 阅读(15076) 评论(0) 推荐(0)
摘要: 本篇博客主要介绍 SpringBoot 如何通过 SpringData 操作 Mongodb。在上篇博客部署的 mongodb 为了方便,在 admin 库中创建了一个 root 角色的账号,使用这个账号具有最高权限,可以访问和操作任何库。在实际项目中强烈建议为每个 mongodb 数据库创建一个低 阅读全文
posted @ 2023-08-15 20:59 乔京飞 阅读(12104) 评论(0) 推荐(1)
摘要: Mongodb 是最像关系型数据库的 NoSql 数据库,其数据类型非常丰富,数据结构松散,采用类似 Json 的 Bson 二进制格式存储数据,还支持对索引功能。主要应用在数据量大、读多写少或者读写都比较频繁、数据价值较低的场景中,如果社交平台的点赞和评论、游戏、物流信息和轨迹存储等。 由于在企业 阅读全文
posted @ 2023-08-13 13:56 乔京飞 阅读(19001) 评论(0) 推荐(2)
摘要: 我们在工作中经常会遇到这样的场景,我们写了很多非常实用的工具类,这些类在多个项目工程中使用非常频繁。如果在每个要使用的项目工程中都去编写加载 bean 的代码的话,那么重复的代码就太多了。如果你想追求完美只写一份代码的话,使用 SpringBoot 的自动装载的特性是一个很不错的方案选择。 本篇博客 阅读全文
posted @ 2023-07-23 12:33 乔京飞 阅读(11381) 评论(0) 推荐(0)
摘要: SpringCloud 是当前比较流行的微服务开发框架,因此很有必要介绍一下 SpringCloud 集成和使用 Dubbo 技术。本篇博客在上一篇博客的 Demo 基础上,对 pom 文件和 yml 配置文件进行了修改,就可以完成 SpringCloud 集成和使用 Dubbo 的 Demo。是的 阅读全文
posted @ 2023-07-15 21:26 乔京飞 阅读(11989) 评论(0) 推荐(0)
摘要: Dubbo 是阿里开源的产品,采用二进制通信,相比 OpenFeign 的 http 通信,具有性能优势,可以轻松集成到 SpringBoot 和 Spring Cloud 中使用,对于性能要求比较高的场景,使用比较广泛。早期的 Dubbo 都采用 Zookeeper 作为注册中心,现在基本上大家都 阅读全文
posted @ 2023-07-11 22:33 乔京飞 阅读(11875) 评论(0) 推荐(1)
摘要: RabbitMQ 采用 Erlang 语言开发,同时具有高可用性、高可靠性、消息低延迟,支持的多种开发语言的等优点,是当前比较流行的综合性最好的消息队列。当然有些杠精肯定会拿 RocketMQ 和 Kafka 等消息队列的相关性能跟 RabbitMQ 进行对比说事儿,这里不进行评价,你们这些杠精开心 阅读全文
posted @ 2023-06-23 20:48 乔京飞 阅读(11819) 评论(0) 推荐(0)
摘要: 我们获取镜像,绝大多数情况下,从 Docker 官方仓库或者知名第三方仓库(如阿里云)中获取,但是对于公司内基于自身的业务生成的 Docker 镜像,很有可能涉及到商业利益,肯定不能对外公开,因此需要存放在公司的 Docker 私有镜像仓库中。 有关 Docker 的私有仓库的搭建过程,也非常简单, 阅读全文
posted @ 2023-06-14 19:47 乔京飞 阅读(13924) 评论(0) 推荐(0)
摘要: 对于一些常用的 Docker 镜像,我们可以从 Docker 官方仓库或者国内的阿里云仓库中获取,比如 mysql、redis、nginx 等等。但是对于一些我们自己开发的程序,要想很方便的在 Docker 中部署,还是需要自己制作镜像。 这里不介绍 Docker 常用命令的使用,网上学习资料很多, 阅读全文
posted @ 2023-06-07 19:53 乔京飞 阅读(11530) 评论(0) 推荐(0)
摘要: 从 Docker 官网上也能够找到 CentOS7 安装 Docker 的文档,但是文档比较简略,为了能够在安装过程中少走一些弯路,还是很有必要写一下 Docker 安装的博客总结,方便后续提高工作效率。 CentOS7 安装 Docker 的官网文档地址为:https://docs.docker. 阅读全文
posted @ 2023-06-06 12:31 乔京飞 阅读(11683) 评论(0) 推荐(0)
摘要: 最近工作遇到这样的情景:一大堆 linux 内网服务器,上面部署了 mysql,nacos,xxl job 等中间件,当然也给了一个很干净的 windows 内网服务器,什么软件都没有安装。比较欣慰的是:可以通过浏览器访问 nacos、xxl job 的管理页面。不幸的是:没有安装 mysql 客户 阅读全文
posted @ 2023-06-05 19:29 乔京飞 阅读(11399) 评论(0) 推荐(0)
摘要: Nacos 不但可以作为注册中心,同时也可以作为配置中心,方便我们对 SpringCloud 中的各个 SpringBoot 微服务的配置进行统一的管理维护。尤其是当微服务数量较多,并且在不同的服务器上进行部署时,使用配置中心进行统一管理维护的优势就更加明显。 本篇博客仍然使用之前搭建的 Nacos 阅读全文
posted @ 2023-05-28 12:33 乔京飞 阅读(12642) 评论(0) 推荐(0)