持久化

2--Master主备切换机制原理剖析与源码分析

折月煮酒 提交于 2019-12-01 19:52:29
原理剖析 Master实际上可以配置两个(防止单点故障),那么Spark原生的standalone模式是支持Master主备切换的。也就是说,当Active Master节点挂掉时,可以将StandBy master节点切换为Active Master。 Spark Master主备切换可以基于两种机制,一种是基于文件系统的,一种是基于Zookeeper的。基于文件系统的主备切换机制,需要在Active Master挂掉之后,由我们手动切换到StandBy Master上;而基于Zookeeper的主备切换机制,可以自动实现切换Master。 所以这里说的主备切换机制,实际上指的是在Active Master挂掉之后,切换到StandBy Master时,Master会执行的操作。 流程说明: Standby Master模式 1. 使用持久化引擎读取持久化的storeApps、storeDrivers、storeWorkers,持久化引擎有FileSystemPersistenceEngine和ZookeeperPersistenceEngine 2. 判读如果storedApps、storedDrivers、store的Workers有任何一个非空就继续向后执行. 3. 持久化引擎的Application、Driver

ActiveMQ 持久化(数据库),查询队列剩余消息数、出队数的实现

天涯浪子 提交于 2019-12-01 14:01:27
《ActiveMQ 持久化(文件),查询队列剩余消息数、出队数的实现》分析了消息队列持久化保存,假如activemq服务器突然停止,服务器启动后,还可以继续查找队列中的消息。现在分析队列中的消息使用数据库持久化。 本人博客开始迁移,博客整个架构自己搭建及编码http://www.cookqq.com/ 消息生产者: package com.activemq.mysql; import java.io.File; import java.util.Properties; import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Session; import javax.sql.DataSource; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.broker.BrokerService; import org.apache.activemq.store.jdbc

Nginx入门和redis持久化集群

前提是你 提交于 2019-12-01 13:02:13
推荐的歌: 浪子回头 mariadb 1.yum安装 yum install mariadb-server mariadb -y 2.yum安装好之后,启动服务端,只有通过yum安装的软件才可以用systemctl systemctl start mariadb 3.数据库初始化 4.mysql -uroot -p redis 1.源码包安装redis 2.指定了/opt/redis/工作目录 3.启动redis服务端 redis-server redis.conf 4.redis.conf软件的配置文件作用? 给这个软件,指定开放/关闭一些功能 改redis端口 改redis密码 redis的安全模式 bind参数,指定redis启动的ip地址 杀死redis服务的方法 1.kill pid 2.pkill redis-server 根据服务名 杀死进程,可以杀死所有有关redis-server 1.在linux服务器上安装软件 分好几种: -yum安装 -配置yum源,配置163,清华,阿里云的yum源 -清空yum缓存 -生成新的yum缓存 -源码安装 -下载软件的源码压缩包 -解压缩,切换目录 -释放makefile,编译,编译安装 -rpm软件包安装 远程连接工具 xshell( ssh root@ip ) mac同学 ssh root@ip 今年所学 redis发布订阅

Consul 知识点

时光毁灭记忆、已成空白 提交于 2019-12-01 10:08:23
平时开发时,一般使用consul dev模式,开发模式下kv存储不会持久化存储,全在内存中(重启consul就丢了!),所以一般建议yml配置文件内容,在项目中单独存一个文件,启动调试时,直接把配置文件内容贴到Value框里即可。 以上出处: https://www.cnblogs.com/duanxz/p/9660766.html 来源: https://www.cnblogs.com/cag2050/p/11679144.html

C#的分布式消息队列介绍

懵懂的女人 提交于 2019-12-01 09:58:41
EQueue架构 EQueue是一个分布式的、轻量级、高性能、具有一定可靠性,纯C#编写的消息队列,支持消费者集群消费模式。 主要包括三个部分:producer, broker, consumer。producer就是消息发送者;broker就是消息队列服务器,负责接收producer发送过来的消息,以及持久化消息;consumer就是消息消费者,consumer从broker采用拉模式到broker拉取消息进行消费,具体采用的是long polling(长轮训)的方式。这种方式的最大好处是可以让broker非常简单,不需要主动去推消息给consumer,而是只要负责持久化消息即可,这样就减轻了broker server的负担。同时,consumer由于是自己主动去拉取消息,所以消费速度可以自己控制,不会出现broker给consumer消息推的太快导致consumer来不及消费而挂掉的情况。在消息实时性方面,由于是长轮训的方式,所以消息消费的实时性也可以保证,实时性和推模型基本相当。 EQueue是面向topic的架构,和传统的MSMQ这种面向queue的方式不同。使用EQueue,我们不需要关心queue。producer发送消息时,指定的是消息的topic,而不需要指定具体发送到哪个queue。同样,consumer发送消息也是一样,订阅的是topic

主席树(可持久化线段树)

狂风中的少年 提交于 2019-12-01 09:57:02
模板介绍 基础要求 线段树 能灵活运用 线段树 前缀和,差分 概念 可持久化:在某个历史版本上更改;查询某个历史版本上的值 引入 洛谷P3919 可持久化数组 这道可持久化线段树的题 大概就是单点修改&单点查询 代码大致就是在线段树的基础上改变她存点的方式 以前 tree[k].l == k << 1 tree[k].r == k << 1 | 1 对于可持久化线段树 tree[k].l != k << 1 tree[k].r != k << 1 | 1 inline int tree_build(int k,int l,int r) { k = ++cnt; 每次这样来存点 但l和r仍然保留 表示一个递归和原序列位置的过程 if(l == r) { tree[k].val = seq[l]; return k; } int mid = l + r >> 1; tree[k].l = tree_build(tree[k].l,l,mid); tree[k].r = tree_build(tree[k].r,mid + 1,r); return k; } 大概酱紫 #include <map> #include <cstdio> #include <iostream> using namespace std; #define reg register int #define

Quartz任务调度(3)存储与持久化操作配置详细解

两盒软妹~` 提交于 2019-12-01 08:57:40
内存存储RAMJobStore Quartz默认使用RAMJobStore,它的优点是速度。因为所有的 Scheduler 信息都保存在计算机内存中,访问这些数据随着电脑而变快。而无须访问数据库或IO等操作,但它的缺点是将 Job 和 Trigger 信息存储在内存中的。因而我们每次重启程序,Scheduler 的状态,包括 Job 和 Trigger 信息都丢失了。 Quartz 的内存 Job 存储的能力是由一个叫做 org.quartz.simple.RAMJobStore 类提供。在我们的quartz-2.x.x.jar包下的org.quartz包下即存储了我们的默认配置quartz.properties。打开这个配置文件,我们会看到如下信息 # Default Properties file for use by StdSchedulerFactory # to create a Quartz Scheduler Instance, if a different # properties file is not explicitly specified. # org.quartz.scheduler.instanceName: DefaultQuartzScheduler org.quartz.scheduler.rmi.export: false org.quartz

React中refs持久化

扶醉桌前 提交于 2019-12-01 07:22:10
根据使用React的版本,选择合适的方法。 字符串模式 :废弃不建议使用 回调函数,React版本 < 16.3 React.createRef() :React版本 >= 16.3 回调函数 特点 可以优雅在组件销毁时回收变量。每次组件重新渲染的时候,行内函数都会执行两次,第一次的ele的值为空,第二次才为真正的DOM对象,因为在每次渲染中React都会 创建一个新的函数实例 ; 很好的支持静态类型检测; 针对数组遍历时可以直接转换为对应的数组, CodePen示例 ; 可以将父组件的ref 传入 孙组件。 【持久化方法】 因为存在回收变量的特点,会导致有些时刻ref会变成null,要想在初始化的时候讲ref持久化下来,可以通过将 ref 的回调函数定义成类的静态函数的方式解决。 回调函数 CodePen示例 createRef React V16版本新增一个API:React.createRef(); 通过这个API,我们可以先创建一个ref变量,然后再将这个变量赋值给组件声明中ref属性就好了。 不同在于,需要通过 this.textInput.current,即真实的DOM是通过current属性来引用的。 CodePen示例 来源: https://www.cnblogs.com/dahe1989/p/11668246.html

ActiveMQ持久化到MySQL以及使用SSL协议通讯

烂漫一生 提交于 2019-12-01 02:20:02
最近公司事情稍微少了点,研究下怎么优化几个系统的交互,因为我们目前使用的是长链接的同步接口,就考虑用下MQ来处理下。 由于公司对安全有要求且和CA业务有关,则使用了SSL协议。此文使用的是Activemq的SSL协议+MYSQL作为持久化数据库,后续可能使用NIO+SSL协议。 其他实现了JMS的MQ应该也大同小异。 此文大多是参考官网文档 持久化: http://activemq.apache.org/persistence.html 相关协议: http://activemq.apache.org/configuring-transports.html 先说说我对activemq的理解,由于是用java语言开发的,给我的感觉是依赖spring并且跑在jetty上的一个java程序。有了个大概的概念里面配置的东西就更好理解。 配置mysql持久化,默认持久化是使用的kahadb写入文件里,这里修改成jdbc方式连接mysql,既然是jdbc就需要一个数据库驱动的jar包, 所以我们需要在lib文件夹下放入mysql-connector-java-5.1.34-bin.jar(其他版本一样),因为使用的是官网推荐的dbcp数据源,相关其他的依赖包在lib下面已经有了。 想要使用其他的数据源则需要引入相关依赖的jar包即可。 以下是activemq.xml的mysql持久化配置。

2--Master主备切换机制原理剖析与源码分析

╄→гoц情女王★ 提交于 2019-12-01 00:43:16
原理剖析 Master实际上可以配置两个(防止单点故障),那么Spark原生的standalone模式是支持Master主备切换的。也就是说,当Active Master节点挂掉时,可以将StandBy master节点切换为Active Master。 Spark Master主备切换可以基于两种机制,一种是基于文件系统的,一种是基于Zookeeper的。基于文件系统的主备切换机制,需要在Active Master挂掉之后,由我们手动切换到StandBy Master上;而基于Zookeeper的主备切换机制,可以自动实现切换Master。 所以这里说的主备切换机制,实际上指的是在Active Master挂掉之后,切换到StandBy Master时,Master会执行的操作。 流程说明: Standby Master模式 1. 使用持久化引擎读取持久化的storeApps、storeDrivers、storeWorkers,持久化引擎有FileSystemPersistenceEngine和ZookeeperPersistenceEngine 2. 判读如果storedApps、storedDrivers、store的Workers有任何一个非空就继续向后执行. 3. 持久化引擎的Application、Driver