- 博客(11)
- 收藏
- 关注
原创 轻量级安全框架-Shiro
目录shiro1.简介2.整体结构与重要组件从demo开始分析3.认证4.授权spring跟shiro整合配置shiro内置过滤器shiro1.简介Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目
2022-05-03 14:33:34
275
原创 Rocketmq源码解析-文件存储模块设计
目录1.消息存储2.文件体系介绍2.1 消息存储整体架构CommitLogConsumeQueueIndexFile2.2 页缓存与内存映射1.消息存储消息存储是RocketMQ中最为复杂和最为重要的一部分,本节将分别从RocketMQ的消息存储整体架构、PageCache与Mmap内存映射以及RocketMQ中两种不同的刷盘方式三方面来分别展开叙述。2.文件体系介绍2.1 消息存储整体架构消息存储架构图中主要有下面三个跟消息存储相关的文件构成。如图所示:CommitLog消息主体以及元数
2022-04-29 14:37:44
214
原创 Rocketmq源码解析-Broker部分之消息接收
目录问题点broker接收流程图消息接收1.启动入口`NettyRemotingServer.start()`创建NettyServer通信通道问题点1.Producer发送消息之后Broker是如何接收的?2.Broker接收消息之后是如何存储的?broker接收流程图消息接收我们在之前的RocketMQ源码解析-Broker部分之Broker启动过程文章中分析过,broker的启动会调用BrokerStartup.start(),另外rocketmq是采用netty进行底层通信,所以bro
2022-02-11 14:31:07
2534
1
原创 Rocketmq源码解析-客户端实例MQClientInstance
目录`MQClientInstance`介绍`MQClientInstance`的内部变量Producer创建入口`producer.start()1.MQClientManager.getInstance().getOrCreateMQClientInstance2.`mQClientFactory.start()`MQClientInstance介绍为什么把MQClientInstance单独拿出来说呢?是因为无论是生产者还是消息者底层都会与broker进行打交道,从源码层面上,这部分的功能被抽象成
2022-02-08 17:05:43
857
1
原创 RocketMQ源码解析-Namesrv启动过程
NameServer通常也是集群的方式部署,各实例间相互不进行信息通讯。Broker是向每一台NameServer注册自己的路由信息,所以每一个NameServer实例上面都保存一份完整的路由信息。当某个NameServer因某种原因下线了,Broker仍然可以向其它NameServer同步其路由信息,Producer,Consumer仍然可以动态感知Broker的路由的信息。
2022-02-04 20:59:41
3294
原创 分布式调度系统-Elastic-Job-Lite介绍及源码解析
Elastic-Job是当当网在2015年开源的一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供最轻量级的分布式任务的协调服务,外部依赖仅Zookeeper。
2022-02-03 23:11:17
2518
原创 分布式调度系统-Quartz
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。
2022-02-03 23:00:39
2049
原创 Rocketmq源码解析-Producer部分之消息重试和延迟容错逻辑(2)
生产者消息重试生产者在发送消息的时候,3种通信模式默认都不进行重试(同步、异步、oneway)。消息重试原则上是可以保证消息发送成功并且不丢失,但是消息重试可能会造成消息重复消费问题,所以Rocketmq是不保证消息幂等性的,所以开发者需自行保证幂等性。Rocketmq开启消息重试配置: // 消息发送失败重试次数,默认2次 producer.setRetryTimesWhenSendFailed(2); // 消息重试配置,消息没有存储成功是否发送到另外一个broker
2022-02-02 14:50:47
363
原创 RocketMQ-Docker中RocketMQ的安装与Springboot整合
最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及Springboot整合过程踩到的一些坑。1.准备工作在搭建之前,我们需要做一些准备工作,这里我们需要使用 docker搭建服务,所以需要提前安装docker。此外,由于 rocketmq 需要部署 broker 与 nameserver ,考虑到分开部署比较麻烦,这里将会使用 docker-compose。docker教程:https://www.runoob.com/docker/do
2022-01-30 21:07:35
1499
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人