`
Technoboy
  • 浏览: 153757 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论
文章列表
1. 介绍   Disconf是一套完整的基于zookeeper的分布式配置统一解决方案。它支持配置(配置项+配置文件)的分布式化管理。 2. 安装   依赖Mysql, Tomcat, Nginx, Zookeeeper, Redis。   路径配置:   将你的配置文件放到此地址目录下(以下地址可自行设定): /home/work/dsp/disconf-rd/online-resources     如果不确定如何配置,可以拷贝/disconf-web/profile/rd/目录下的文件,拷贝过去后,依次修改配置文件内容即可。配置文件包括: jdbc-mysql.propert ...
1. 简介   Producer发送一条消息到broker后,如何存储到commitlog文件,又是如何构建的consumequeue,index文件,将从源码的角度剖析。 2. SendMessageProcessor   该类是负责响应Producer发消息到broker的入口处理逻辑类。其processRequest响应两种请求: CONSUMER_SEND_MSG_BACK:  consumer消费失败的消息发回broker。 default: producer发消息到broker。   由default,进入sendMessage方法,首先,我们看到对opaque的操作,表示透传 ...
1. 介绍   Consumer默认使用DefaultMQPushConsumerImpl长轮询拉消息的方式来消费,可以保证实时性同Push一样。还可以参考example项目,使用DefaultMQPullConsumerImpl,由业务控制如果拉消息,更新消费进度等方式。 2. 集群模式VS广播模式   集群模式: 消息的消费进度,即consumerOffset.json保存在broker上。 所有consumer平均消费topic的消息。 消息消费失败后,consumer会发回broker,broker根据消费失败次数设置不同的delayLevel进行重发。 相同topic不同的con ...
1.启动     producer通过配置的namesrv列表,启动时随机选择一个进行相连。首先引出,设置namesrv的几种方式,优先级依次由高到低: 第一种:代码中指定namesrv地址       producer.setNamesrvAddr(namesrvAddr);       consumer.setNamesrvAddr(namesrvAddr); 第二种:Java启动参数中指定:       -Drocketmq.namesrv.addr=192.168.0.1:9876 第三种:环境变量       NAMESRV_ADDR 第四种为http方式获取。       如果启动 ...
1. 介绍   当broker为slave且有master的情况下,通过HAService,slave从master同步commitlog数据,并通过ReputMessageService异步构建consumequeue。通过SlaveSynchronize定时每分钟从master同步config目录下的四个文件。默认,master监听broker端口+1。 2. 启动   slave可以通过配置指定master地址,也可以从namesrv获取master地址。broker启动,在BrokerController#initialize方法: if (BrokerRole.SLAVE == ...
1. 部署方式     Broker可部署为2m-2s-async, 2m-2s-sync, 2m-noslave。推荐的部署方式为1. 2. 文件结构     abort:broker启动后会创建此空文件,当正常关闭broker后,将其删除。该文件的作用是,当broker启动后检测到该文件存在,说明上次 ...
1. 介绍     Namesrv的功能,就相当于RPC中的注册中心。对于MQ而言,broker启动,将自身创建的topic等信息注册到Namesrv上。consumer和producer需要配置namesrv的地址,启动后,首先和namesrv建立长连接,并获取相应的topic信息(比如,哪些broker有topic路由信息),然后再和broker建立长连接。Namesrv本身无状态,可集群部署。所有的注册信息,都保存在namesrv的类似map内存数据结构中。 2. 启动     Namesrv启动后,首先会加载KVConfig服务,然后监听本地端口(默认9876),等待客户端连接,并定时 ...
1. 下载     https://github.com/alibaba/RocketMQ.git     下载后,运行install.sh或install.bat会在target目录下产生alibaba-rocketmq-broker.tar.gz(如果编译过程出现checkstyle不通过,注释掉pom文件的checkstyle plugin),然后解压复制到相应目录。 2. 启动     到MQ的bin/目录: namesrv:nohup sh mqnamesrv >> /opt/ns.log & broker:nohup sh mqbroker -c ../con ...
1. 介绍   索引文件指,发送一条消息后,MQ通过(topic和uniqKey)或(topic和keys)构建的索引,然后通过queryMsgByKey可以查询到结果。注意,通过queryMsgById的查询,不是索引查询。索引文件存在于/store/index/文件夹下,以时间戳命名,如20151209213520685。每个索引文件,默认存储2000w条数据,文件大小默认为420000040字节。索引文件由头信息,槽位,内容组成。 2. 组成   头信息包含6个字段,分别为: beginTimestamp:long型,第一条消息的存储时间。 endTimestamp:long型, 最 ...
1. Overview   对于web应用,Shiro提供了认证和授权的过滤器实现。 2. Architecture a. ServletContextSupport   提供了对ServletContext访问的支持。 b. AbstractFilter   提供了对过滤器初始化的配置。如果想在过滤器初始化时添加逻辑,可通过覆 ...
1. Overview   为了降低使用Quartz的难度,并能以Spring风格的方式使用Quartz,Spring为Quartz提供了Scheduler, Trigger, JobDetail的FactoryBean类,以及一些工具类,使Quartz能很好的注入容器,并可以结合Spring容器的生命周期,启动和关闭job。 2. JobDetailBean   使用JobDetailBean,需要设置其JobClass属性,指定实现了Job接口的实现类。JobDetailBean默认使用bean名作为job名,DEFAULT作为组名,并可以通过applicationContextJobDa ...
7 JobStore   Quartz 为所有类型的 Job 存储提供了一个接口。这个接口位于 org.quartz.spi 包中,叫做 JobStore。JobStore 用于对 Job、Trigger、Calendar、Listener和 Scheduler 状态进行存储。Quartz使用者通常不用直接访问JobStore接口的方法,它们在运 ...
1 Overview   Quartz是一个开源的作业调度框架,可被集成到任何的Java EE 或者Java SE程序中。 2 Scheduler   通过SchedulerFactory接口创建Scheduler对象。当 Scheduler 实例被创建之后,就会被保存到一个仓库中(org.quartz.impl.SchedulerRepository)。Scheduler对象可以被start、standby和shutdown。一旦Scheduler被shutdown,那么不应该重新启动它。Scheduler对象被启动后,Triggers才会被触发。在Trigger被触发时,Schedule ...
1. 说明:   maven项目,基于Spring3.1,MyBatis3.1,Shiro1.1,EHCache2.2。   项目的sql目录下的init_schema.sql文件为数据库脚本,例子中使用SQLServer。如果使用MySQL,只需将pom.xml中的MySQL依赖打开,然后修改db.properties文件,将配置改为MySQL即可。如果你不想使用数据库,将main_config.properties中的mockUserServiceFlag设置为true,应用就会使用MockUserServiceImpl类作为授权和验证的实现。对于第二个例子,添加了过滤器链,并使用EHCac ...
Apache Shiro用户手册中文版。
Global site tag (gtag.js) - Google Analytics