MyCat:取代Cobar数据库中间件

Activity的LaunchMode

如何是MyCAT?简单来讲,MyCAT就是:
一个干净开源的,面向集团应用开发的“大数据库集群”
协理工作、ACID、可以代替Mysql的加强版数据库 ?
一个得以算得“Mysql”集群的商号级数据库,用来取代昂贵的Oracle集群 ?
一个齐心协力内存缓存技术、Nosql技术、HDFS大数量的风行SQL Server ?
结合传统数据库和流行分布式数据仓库的新一代公司级数据库产品 ?
一个流行的数据库中间件产品。

一、LaunchMode简介

默认情形下,当我们反复启动同一个Activity时,系统会创制几个实例并把它们一一放入任务栈中,当大家单机back键,会发觉这一个Activity会一两次退,直到栈空停止,当栈中无任何Activity时,系统就会回收那多少个职责栈。任务栈是一种”先进后出”的栈结构。所以为了避免频繁启动同个Activity,系统重新创设两个实例的图景时有暴发,Android提供了四种启动情势来修改系统的默认行为。

目标

低本钱的将长存的单机数据库和行使平滑迁移到“云”端,解决数量存储和业务范围快速增长状态下的数量瓶颈问题。

standard(标准启动情势)

这是系统默认的开行形式。无论此实例是否留存,每便启动一个Activity就会新成立一个新的实例,被创建的Activity生命周期正常。

重要特性

支撑 SQL 92标准 协助Mysql集群,可以用作Proxy使用
辅助JDBC连接ORACLE、DB2、SQL Server,将其模拟为MySQL Server使用
援助galera for mysql集群,percona-cluster或者mariadb
cluster,提供高可用性数据分片集群,自动故障切换,高可用性
,协助读写分离,补助Mysql双主多从,以及一主多从的情势,帮助全局表,数据自动分片到三个节点,用于高效表关联查询
,匡助独有的基于E-R
关系的分片策略,实现了飞跃的表关联查询多平台支撑,部署和执行简单。

singleTop(栈顶复用情势)

这种场馆下,如若新的Activity已放在任务栈的栈顶,则次Activity不会被另行创造,同时它的onNewIntent方法会被回调,通过此方法的参数大家得以取出当前伏乞的消息。此时这么些Activity的onCreate、onStart方法不会被调用。

优势

据悉阿里开源的Cobar产品而研发,Cobar的安静、可靠性、非凡的架构和总体性,以及广大成熟的行使案例使得MyCAT一上马就有着一个很好的起点,站在巨人的双肩上,大家能观察更远。广泛吸取业界非凡的开源项目和翻新思路,将其融入到MyCAT的基因中,使得MyCAT在许多方面都超过于近期其
他有的同类的开源项目,甚至逾越某些商业产品。MyCAT背后有一只强有力的技能团队,其参加者都是5年以上资深软件工程师、架构师、DBA等,优异的技术
团队保证了MyCAT的产质地地。
MyCAT并不依托于其他一个生意公司,由此不像一些开源项目,将一部分最紧要的风味封闭在其商业产品中,使得开源项目成了一个布置。

singleTask(栈内复用情势)

是一种单实例情势,当一个存有singleTask格局的Activity请求启动时,只要此Activity存在于自由一个职责栈中,多次起步此Activity不会再次创制实例,系统会回调onNewIntent方法。具体来说,即便此Activity不存在于它想要的职责栈,系统会重复创建一个职责栈,然后创立此Activity的实例并放入栈内;当此Activity存在于它想要的任务栈,这时要看此Activity是否在栈中存在实例,若是有实例存在,系统会把Activity调到栈顶并调用onNewIntent方法,倘诺实例不设有,就创立Activity实例并压入栈中。
*特另外,设置singleTask格局的Activity需要存在的栈,要在AndroidManifest内安装taskAffinity属性,具体代码如下。
<activity android:name=".MainActivity" android:launchMode="singleTask" android:taskAffinity="com.ryg.task1"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>

遥远计划

在帮忙Mysql的基本功上,后端扩充更多的开源数据库和商业数据库的匡助,包括原生襄助PosteSQL、FireBird等开源数据库,以及经过
JDBC等措施间接帮助其他非开源的数据库如Oracle、DB2、SQL
Server等落实更为智能的自我调节特性,如自行总结分析SQL,自动创制和调整目录,按照数据表的读写频率,自动优化缓存和备份策略等落实更宏观的监
控管理职能与HDFS集成,提供SQL命令,将数据库装入HDFS中并可以神速分析集成优异的开源报表工具,使之富有一定的数额解析的力量。

singleInstance(单实例格局)

那是一种提升版singleTask形式,特其余此种情势的Activity只好单独位于一个职责栈中。具体来说,当启动一个此格局的Activity,系统会为它创造一个新的天职栈,然后使此Activity堵在在这么些新职责栈内。后续如果再请求启动此Activity,除非这一个特殊的职责栈被系统销毁,则均不会创制新的Activity。


MyCat架构

图片 1

官网:http://www.mycat.org.cn/

不行指出读一读Mycat权威指南率先版,作者写得很好。摘抄多少个截图:

图片 2

图片 3

 

二、设置启动形式的方法

有三种艺术,第一是透过AndroidManifest来安装,具体代码如下。
<activity android:name=".MainActivity" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>

另一种是经过在Intent中设置标志位来安装,具体代码如下。
Intent intent=new Intent(); intent.setClass(MainActivity.this,SecondActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
预先级上,第二种方法高于第一种。

发表评论

电子邮件地址不会被公开。 必填项已用*标注