单例模式在各个方面都有着极为广泛的使用,所谓单例,顾名思义就是整个程序中只有一个该类的实例,所以它成功保证了整个程序的生命周期内该类的对象只能创建一次,并且提供全局唯一访问该类的方法:getInstance() 使用 关于单例模式主要分为两类: 懒汉模式 饿汉模式 由于饿汉模式是线程安全的,所以通常情况下,我们都尽量采用饿汉模式,具体原因常见这位大佬的博文:点击前往 本文主要结合 Android 分析下当例模式在 Android 中获得全局可用的 Context 对象 搭建饿汉模式基本框架 单例…
​ 在之前的操作中,我们已经实现了mysql机器的高可用,可以动态切换master,那么如果mycat崩溃了呢?我们应该如何处理呢?所以此时就需要搭建mycat的高可用集群了. ​ 在mycat的权威指南中,介绍了多种高可用的方案,在这里我们讲解一种使用最多的方案,使用HAProxy+Keepalived配合使用来实现myact的高可用. ​ HAproxy实现了mycat多借点的集群高可用和负载均衡,而HAProxy自身的高可用则可以通过Keepalived来实现. ​ 好了,如果这个图大家看…
创建一个Canvas画布的方法如下: 复制代码 代码如下: <canvas id=”canvas” width=”600” height=”400”></canvas> 可以在标签中添加<canvas>标签不可用时的替代文本,如下所示: 复制代码 代码如下: <canvas id=”canvas” width=”600” height=”400”><p>Your browserdoes not support the canvas element…
Context(在Android中翻译为场景):一个Activity就是一个Context,一个Service也是一个Context,应用程序中有多少个Activity或者Service,就会有多少个Context对象: Android把"场景"抽象为Context类,用户和操作系统的每一次交互都是一个场景: 如打电话为有界面的场景,后台服务service为没界面的场景: Context类本身是一个纯abstract类,为了使用方便,定义了ContextWrapper类,这只是一个包装…
一.下单函数 聚宽设计的函数(如前文所说准确叫法是API)的用法都写在API文档里,位置在聚宽网站导航栏-帮助-API文档 1.order按股数下单 order(security, amount, style=None, side='long', pindex=0, close_today=False) 买卖标的.调用成功后, 您将可以调用[get_open_orders]取得所有未完成的交易, 也可以调用[cancel_order]取消交易 参数 security: 标的代码 amount:…
玩一玩上下文(context)对象 多数时间,你可以通过传递一个完全填充(full populated)的字典给 Context() 来初始化 上下文(Context) . 但是初始化以后,你也可以从``上下文(Context)`` 对象添加或者删除条目,使用标准的Python字典语法(syntax): >>> from django.template import Context >>> c = Context({"foo": "bar&…
为什么需要一个全局的 (Activity)Context 需求1:在进入 app 的时候,要求做版本检测,有新的版本的时候,弹出一个 AlertDialog,提示用户版本更新 需求2:从别的设备挤下来的时候,不论当前 activity 是哪个,都能弹出来 AlertDialog(其实可以通过广播实现) 需求3:服务器发来类似微信在电脑端登录的提示,弹出来确认 activity . 使用 Dialog 的时候,为什么不可以使用 (Application)Context 使用 (Applicatio…
def log_file(LEVEL_NAME): # 设置日志的记录等级,常见的有四种,大小关系如下,DEBUG < INFO < WARNING <ERROR # 一旦设置级别,那么大于或等于改级别的信息全部会输出 logging.basicConfig(level=LEVEL_NAME) # 调试debug级 # 创建日志记录器,指明日志保存的路径.每个日志文件的最大大小.保存的日志文件个数上限 file_log_handler = RotatingFileHandler(&quo…
DDD分层架构之值对象(介绍篇) 前面介绍了DDD分层架构的实体,并完成了实体层超类型的开发,同时提供了验证方面的支持.本篇将介绍另一个重要的构造块——值对象,它是聚合中的主要成分. 如果说你已经在使用DDD分层架构,但你却从来没有使用过值对象,这毫不奇怪,因为多年来养成的数据建模思维已经牢牢把你禁锢,以致于你在使用面向对象方式进行开发时,还是以数据为中心. 当我们完成了基本的需求分析以后,如果说需要进行设计,那么你能想到的就是数据库表及表关系的设计,这就是数据建模.数据建模的主要依据是数据库范…
将JSON映射为实体对象(iOS篇) iOS开发人员已经习惯于将JSON转换为字典或者数组来进行操作了,接下来我要做的事情,可能匪夷所思,但是,对WP和Android开发人员而言,他们更倾向于将JSON转换为实体对象进行操作. 我所设计的客户端框架,三个平台之间互相取长补短,保持统一的思想,而其中最重要的一环就是,面向对象的编程方式. 书接上文,我在异步调用完MobileAPI并成功获取到JSON后,仅仅将其转换为jsonValue,如下所示: 后续要做的事情,就是把jsonValue转换为实体…
1.概述 今天这篇博客就是<高可用Hadoop平台>的尾声篇了,从搭建安装到入门运行 Hadoop 版的 HelloWorld(WordCount 可以称的上是 Hadoop 版的 HelloWorld ),在到开发中需要用到的各个套件以及对套件的安装使用,在到 Hadoop 的实战,一路走来我们对在Hadoop平台下开发的基本流程应该都熟悉了.今天我们来完成在高可用Hadoop平台开发的最后一步,导出数据. 2.导出数据目的 首先,我来说明下为什么要导出数据,导出数据的目的是为了干嘛? 我们…
一.前言 1. Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的设计模式来实现面向对象的编程,其中this “指针”就是实现面向对象的一个很重要的特性.但是this也是Javascript中一个非常容易理解错,进而用错的特性. 2.this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象. 二.进入正题 1.全局代码中的——this 1. 浏览器宿主的全局环境…
一.前言 1. Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的设计模式来实现面向对象的编程,其中this “指针”就是实现面向对象的一个很重要的特性.但是this也是Javascript中一个非常容易理解错,进而用错的特性. 2.this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象. 二.进入正题 1.全局代码中的——this 1. 浏览器宿主的全局环境…
基本的urlopen()函数不支持验证.cookie或其他HTTP高级功能.要支持这些功能,必须使用build_opener()函数来创建自己的自定义Opener对象. install_opener(opener) 安装opener作为urlopen()使用的全局URL opener,即意味着以后调用urlopen()时都会使用安装的opener对象.opener通常是build_opener()创建的opener对象. 一些复杂情况详细解决办法: 1. cookie处理 如果要管理HTTP c…
在 java 中, 常见的 Context 有很多, 像: ServletContext, ActionContext, ServletActionContext, ApplicationContext, PageContext, SessionContext ... 那么, Context 究竟是什么东西呢? 直译是上下文.环境的意思.比如像: "今天我收到了一束花, 男朋友送的!" 又或者 "今天我收到了一束花, 送花的人送错了的!" 同样是收到一束花, 在不同…
vue有两个方法可用 1. JSON.stringify(evtValue)=='{}' 2. Object.keys(xxx).length==0 js判断对象是否为空对象的几种方法 1.将json对象转化为json字符串,再判断该字符串是否为"{}" var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b);//true 2.for in 循环判断 var obj = {}; var b =…
本文Node.js版本为5.12.0,登录 https://nodejs.org/dist/v5.12.0/,需指定其他版本的话可以直接修改版本号进行登录. 为了方便使用tar命令对文件进行解压,我们选择node-v5.12.0-linux-x64.tar.gz  文件. 右键该文件,选择复制链接地址:https://nodejs.org/dist/v5.12.0/node-v5.12.0-linux-x64.tar.gz 1. 进入linux,执行 wget https://nodejs.or…
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512672630875619853/ 1.<Servlet简单实现开发部署过程> 2.<Servlet部署描述符> 3.<通过了解Servlet和Http之间的关系,了解web中http通信使用> 4.<通过了解Servlet和Http之间的关系,了解web中http通信使用(二)> 5.<Servlet生命周期> 总结下前面的内容: (1)Web应用是一组包含…
## $(function () { $.fn.shadow = function (opts) { return this.each(function () { var defaults = { /*指定默认值*/ copies: 5, opacity: 0.3 //copyOffset: function (index) { //回调函数 // return {}; //} }; var options = $.extend(defaults, opts);/*替换*/ var $origi…
关键词:mysql主从复制,mysql复制,MGR,mysql并行复制 目录 [1]mysql支持的复制类型 [2]mysql的主从4种同步方式介绍 (1)异步 (2)同步 (3)5.6 半同步 (4)5.7增强半同步 [3]MGR的介绍 [4]mysql并行复制 [4.1]并行复制的当前大三模式 [库间并发][组提交][WriteSet] 正文 [1]mysql支持的复制类型 基于binlog的3种模式(详情参考:binlog的3种日志记录模式),oracle在mysql5.5版本收购 [1.…
在创建型设计模式中,我们第一个学习的是单例模式(Singleton Pattern),这是设计模式中最简单的模式之一. 单例是什么意思呢? 单例就是单实例的意思,即在系统全局,一个类只创建一个对象,并且在系统全局都可以访问这个对象而不用重新创建. 一.单例模式的基本写法 单例模式示例代码: public class Singleton { // Singleton类自己持有这个单例对象 private static Singleton instance = new Singleton(); //…
前面介绍了DDD分层架构的实体,并完成了实体层超类型的开发,同时提供了验证方面的支持.本篇将介绍另一个重要的构造块——值对象,它是聚合中的主要成分. 如果说你已经在使用DDD分层架构,但你却从来没有使用过值对象,这毫不奇怪,因为多年来养成的数据建模思维已经牢牢把你禁锢,以致于你在使用面向对象方式进行开发时,还是以数据为中心. 当我们完成了基本的需求分析以后,如果说需要进行设计,那么你能想到的就是数据库表及表关系的设计,这就是数据建模.数据建模的主要依据是数据库范式设计,根据要求严格程度的递增分为…
在本文中我们将会讨论MySQL.Oracle.MongoDB.Redis以及Oceanbase数据库,大家可能会奇怪为什么看不到有名关系型数据库MSSQL.DB2或者有名NoSQL数据库Hbase.LevelDB等,最主要原因是我对这些数据库熟悉层度不够.但相信这些数据库都会有相应的解决方案. 首先我们看一下数据库以及常看到的HA以及分布式架构方案 数据库类型 架构方案 架构类型 MySQL Keepalived+MySQL Replication HA MHA+MySQL Replicatio…
Classes and objects(类和对象) 类(或者类类型)定义了一个结构,它包括字段(也称为域).方法和属性:类的实例叫做对象:类的字段.方法和属性被称为它的部件(components)或成员.• 字段在本质上是一个对象的变量.和记录的字段类似,类的字段表示一个类实例的数据项:• 方法是一个过程或者函数,它和类相关联.绝大多数方法作用在对象(也就是类的实例)上,其它一些方法(称为类方法)作用在类上面.• 属性被看作是访问对象的数据的接口,对象的数据通常用字段来存储.属性有存取设定,它决…
1.Keepalived高可用软件 1.1.Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx,Haproxy,MySQL等)的高可用解决方案软件. Keepalived软件主要是通过VRRP协议实现高可用功能的.VRRP是Virtual Router Redundancy Pro…
目录 一.理论概述 什么是harbor harbor要解决的问题 有了docker自带的registry为什么还要用harbor harbor的架构组件 Harbor工作原理 二.部署harbor及其主从复制 环境 三.总结 报错 一.理论概述 什么是harbor Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,可以用来构建企业内部的Docker镜像仓库. harbor是基于docker registry进行了相应的企业级扩展,从而获得了更加广泛的应用,新特性包括…
判断对象是否死亡的两种方法 引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1:当引用失效,计数器就减 1:任何时候计数器为 0 的对象就是不可能再被使用的. 优点: 简单 缺点: 无法解决相互循环引用 可达性分析算法 基本思想就是通过一系列的称为 “GC Roots” 的对象作为起点,从这些节点开始向下搜索,节点所走过的路径称为引用链,当一个对象到 GC Roots 没有任何引用链相连的话,则证明此对象是不可用的. 不可达的对象并非“非死不可” 出现两次标记,第一次标…
目录 二进制Metrics&Dashboard安装 二进制高可用集群可用性验证 生产环境k8s集群关键性配置 Bootstrapping: Kubelet启动过程 Bootstrapping: CSR申请和证书颁发原理 Bootstrapping: 证书自动续期原理 二进制Metrics&Dashboard安装 安装CoreDNS 安装Metrics Server 安装dashboard 安装CoreDNS 安装对应版本(推荐) cd /root/k8s-ha-install/ 如果更改了…
× 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对象系列的第二篇——属性操作 属性查询 属性查询一般有两种方法,包括点运算符和方括号运算符 var o = { p: 'Hello World' }; o.p // "Hello World" o['p'] // "Hello World" [注意]变量中可以存在中文,因…