设计在canal中的运用,看到随手记下
观察者模式,定义添加修改删除对应的操作

系统很多Monitor/Listener都是类似
Monitor内含listener,调用再触发
    public synchronized void start() {
        super.start();
        try {
            processStart();
            if (zkClient != null) {
                // 如果需要尽可能释放instance资源,不需要监听running节点,不然即使stop了这台机器,另一台机器立马会start
                String path = ZookeeperPathUtils.getDestinationServerRunning(destination);
                zkClient.subscribeDataChanges(path, dataListener);
                initRunning();
            } else {
                processActiveEnter();// 没有zk,直接启动
            }
        } catch (Exception e) {
            logger.error("start failed", e);
            // 没有正常启动,重置一下状态,避免干扰下一次start
            stop();
        }
    }
    private void processStop() {
        if (listener != null) {
            try {
                listener.processStop();
            } catch (Exception e) {
                logger.error("processStop failed", e);
            }
        }
    }
对生命周期中运行态的判断
    protected volatile boolean running = false; // 是否处于运行中
    public boolean isStart() {
        return running;
    }
数据库时间对齐 记录下 str_to_date(concat(date_format(DATE_SUB(now(),interval 1 DAY), '%Y-%m-%d'), ' 23:59:59.999'), '%Y-%m-%d %H:%i:%s.%f')
单例
    private static class SingletonHolder {
        private static final CanalServerWithEmbedded CANAL_SERVER_WITH_EMBEDDED = new CanalServerWithEmbedded();
    }
    public CanalServerWithEmbedded(){
        // 希望也保留用户new单独实例的需求,兼容历史
    }
    public static CanalServerWithEmbedded instance() {
        return SingletonHolder.CANAL_SERVER_WITH_EMBEDDED;
    }
代理模式?CanalServerWithNetty起始就是CanalServerWithEmbedded套了个壳

捕获并处理一个线程对象中抛出的未检测异常,以避免程序终止
    private static void setGlobalUncaughtExceptionHandler() {
        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread t, Throwable e) {
                logger.error("UnCaughtException", e);
            }
        });
    }
设计在canal中的运用,看到随手记下的更多相关文章
- 如何在自己设计的页面中调用metamask-1
		启发: https://github.com/MetaMask/metamask-extension/issues/714 https://github.com/MetaMask/metamask-e ... 
- 在WPF设计工具Blend2中制作立方体图片效果
		原文:在WPF设计工具Blend2中制作立方体图片效果 ------------------------------------------------------------------------ ... 
- css进阶 03-网页设计和开发中,关于字体的常识
		03-网页设计和开发中,关于字体的常识 #前言 我周围的码农当中,有很多是技术大神,却常常被字体这种简单的东西所困扰. 这篇文章,我们来讲一讲关于字体的常识.这些常识所涉及到的问题,有很强的可操作性, ... 
- DDD 领域驱动设计-领域模型中的用户设计
		上一篇:<DDD 领域驱动设计-如何控制业务流程?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply.Sample(代码已更新,并增加了 ... 
- DDD 领域驱动设计-“臆想”中的实体和值对象
		其他博文: DDD 领域驱动设计-三个问题思考实体和值对象 DDD 领域驱动设计-三个问题思考实体和值对象(续) 以下内容属于博主"臆想",如有不当,请别当真. 扯淡开始: 诺兰的 ... 
- Rafy 领域实体框架设计 - 重构 ORM 中的 Sql 生成
		前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能.由于在 09 年最初设计时,ORM 部分的设计并不是最重要 ... 
- Web开发人员不要错过的60款用户界面设计工具(中)
		21. Dojo Dojo是一个用javascript语言实现的开源DHTML UI工具包,可实现高性能的桌面和移动应用程序开发,在国内亦有大量忠实用户. 22. Fivesecondtest Fiv ... 
- 模板设计在tomcat中的应用
		tomcat是一个常见的web容器,用户使用它可以很方便地管理servlet小程序,而servlet与tomcat的交互代码设计就用到了模板设计. 何谓模板设计,就是定义一个抽象父类,在该父类中组织子 ... 
- 3I工作室的成员在2013年(第6届)中国大学生计算机设计大赛总决赛中荣获全国二等奖
		在暑假举行的2013年(第6届)中国大学生计算机设计大赛中,我院的参赛作品<毕业生论文选导系统>(作者:祝丽艳/许明涛:指导老师:元昌安/彭昱忠)入围总决赛,并荣获全国二等奖. 2013年 ... 
随机推荐
- Python-100道练习题答案
			题目链接:http://www.runoob.com/python/python-100-examples.html #5. # def find_max(): # a=int(input(" ... 
- docs actifio
			http://docs.actifio.com/ https://www.actifio.com/resource-center/ 
- 初始化HTML样式(转载)
			方式一 ;; } body { background:#fff; color:#555; font-size:14px; font-family: Verdana, Arial, Helvetica, ... 
- 【SQLServer】附加数据库失败
			一个参考:https://blog.csdn.net/zjx86320/article/details/25562361 如果类似Administrator.Everyone等都依照网上的权限改过之后 ... 
- Orchard-官方文档翻译1 Orchard的工作方式
			开发一个CMS(内容管理系统)程序,与开发一个普通的应用程序很大情况下是不同的,CMS程序更像是一个应用程序的管理器系统.当我们在设计这个系统的时候,第一考虑的是它的扩展性,这是一个非常有挑战的开放式 ... 
- idea导入svn项目
			起初和导入git项目一样,file - new - project from version control - ,这后面选 subversion. 在打开的 checkout from subver ... 
- 更改/var/log/messages默认权限
			问题描述: 操作系统:redhat 6.5 因为开发人员和运维人员平时在应用出现bug时,会需要看/var/log/message日志,但是默认权限为600,因此除了root用户都无法读取,现需要把每 ... 
- Linux基础上
			文件操作 ... 
- html字体加大标签与写法介绍
			在html中字体加大的标签为<big>,一般用于重要文字,醒目文字,让用户容易看到! 字体加大: <big>写上你想写的字</big> 效果:未加大 加大 效果中 ... 
- Ajax异步请求阻塞情况的解决办法(asp.net MVC Session锁的问题)
			讨论今天这个问题之前,我们先来看下浏览器公布的资源并发数限制个数,如下图 不难看出,目前主流浏览器支持都是最多6个并发 需要注意的是,浏览器的并发请求数目限制是针对同一域名的 意即,同一时间针对同一域 ... 
