elixir 高可用系列(四) Task】的更多相关文章

1. elixir 高可用系列(一) Agent 2. elixir 高可用系列(二) GenServer 3. elixir 高可用系列(三) GenEvent 4. elixir 高可用系列(四) Task 5. elixir 高可用系列(五) Supervisor…
概述 OTP 平台的容错性高,是因为它提供了机制来监控所有 processes 的状态,如果有进程出现异常, 不仅可以及时检测到错误,还可以对 processes 进行重启等操作. 有了 supervisor,可以有效的提高系统的可用性,一个 supervior 监督一个或多个应用, 同时, supervior 也可以监督 supervior,从而形成一个监督树,提高整个系统的可用性. 注意 ,supervior 最好只用于监督,不要有其他的业务逻辑处理,越是接近监督树根部的 supervior…
概述 之前学习的 Agent,GenSever以及GenEvent,都是用来管理状态或者处理消息的. 但是在很多时候,我们需要的是执行某个任务,这时如果使用 GenSever 或者 GenEvent,就会显得比较笨重. 这时,我们就可以使用 Task 模块,使用 Task 模块时注意以下几点: 每个 task 只执行一个特定的功能,要让 task 处理的业务尽量简单(如果业务复杂的话,考虑使用 GenSever 或者 GenEvent) task 之间尽量不要交互,也尽量不要和其他 proces…
概述 GenEvent 是事件处理的通用部分的抽象. 通过 GenEvent ,我们给已有的服务 动态 的添加 事件处理. GenEevent 和 GenServer 的区别 之前已经介绍了 GenServer ,GenServer 和 GenEvent 的主要区别在于: GenServer 是服务器的抽象,除了封装处理 同步/异步 事件的方法之外,还封装了服务器本身的启动/停止等方法. GenEvent 是事件的抽象,封装了 同步/异步 事件的处理方法,GenEvent 可以绑定到任何服务器上…
概述 如果我们需要管理多个进程,那么,就需要一个专门的 server 来集中监控和控制这些进程的状态,启停等. OTP 平台中的 GenServer 就是对这个 server 通用部分的抽象. 利用 GenServer 中已经提供的通用操作, 可以很方便的开发出可靠,健壮的程序. 下面首先通过一个示例演示 GenServer 的方便和强大之处,然后再对其进行介绍. GenServer 示例 这是一个 GenServer 管理多个进程的示例,模拟控制各个进程的启动,停止,以及状态查询. defmo…
概述 elixir 本身是一种 immutable 的语言,默认情况下,进程间是不共享任何状态的,进程之间通过消息来交互. 而 Agent 则封装了一种进程间共享状态的方式,通过这种方式,不用显式的写 send/receieve 的代码,就能方便的在进程之间共享状态. 使用方法 不用 Agent 来管理状态 首先,看一个在不用 Agent 的情况下,如何获取进程状态的例子. defmodule WithoutAgent do def start do Map.new() end def get(…
一.基于GTID的异步复制(一主一从)无数据/少数据搭建 二.基于GTID的无损半同步复制(一主一从)(mysql5.7)基于大数据量的初始化 正文: [0]概念 [0.5]GTID 复制(mysql 在 5.6.2 及之后开始支持GTID): [2.5.1]GTID(Global Transaction Identifiers)概念: 对于一个已提交事务的编号,事务的唯一编号,并且是一个全局唯一的编号.GTID和事务会记录到binlog中,用来标识事务. GTID是用来替代以前,传统复制方法(…
一 简介:介绍下高可用通用的方案 二 目的:一个中间件提供服务,故障后,另一个中间件提供服务 三 手段: 应用keepalived的vrrp_scripts服务 四 具体配置 global_defs { notification_email { root@localhost } script_user root //这里一定要写} vrrp_script chk_nginx { script "/etc/keepalived/check.sh" interval 1}vrrp_inst…
一 简介:建立读写分离模式 二 keepalived相关配置 vrrp_instance VI_1 {  state MASTER  // 可修改  interface eth0  virtual_router_id //两边必须一样  priority 100     //主比从高  advert_int 1  authentication {  auth_type PASS  auth_pass 123456  }  virtual_ipaddress {  VIP/24  }  } vir…
简介:今天咱们来聊聊keepalived一 keepalived 架构 1  标准架构: keepalived+lvs/haproxy+后端 real server(mysql从库,nginx.mycat) 实现静态的高可用和负载均衡     1 特点 : 1 keepalived在独立的服务器上,为后端多组集群提供高可用服务 2 配置文件 包含后端真实IP和端口检测    2 检测后端服务脚本:        1 手段 1 TCP 2 HTTP 3 MISC_CHECK(自定义脚本)     …