Mysql的性能优化理论

Mysql体系机构 Client Connectors 接入方 支持协议很多 Management Serveices & Utilities 系统管理和控制工具, mysqldump、 mysql复制集群、 分区管理等 Connection Pool 连接池: 管...

2019-06-04 08:10:42

阅读数 18

评论数 0

Canal底层原理和注意事项的介绍

canal的工作原理 原理相对比较简单: canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 mysql master收到dump请求,开始推送binary log给slave(也就是canal) canal解析...

2019-05-15 16:30:03

阅读数 40

评论数 0

Gson, FastJson, Jackson, Json-lib性能对比

四个库的工具类 FastJsonUtil.java public class FastJsonUtil { public static String bean2Json(Object obj) { return JSON.toJSONString(obj); ...

2019-05-15 11:56:49

阅读数 15

评论数 0

ELK架构的应用与研究

ELK解决哪些问题? 在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4j就够了,随着应用的越来越多,日志散落在各个服务器的logs文件夹下,确实有点不大方便。 当我们需要日志分析的时候你大概会这么做:直接在日志文件中 grep、awk 就可以获...

2019-05-10 14:47:36

阅读数 14

评论数 0

ES聚合查询在基本语法

以下代码均在Kibana的dev tools下执行 1、创造数据 POST /test_aggs/infos/1?pretty { "title":"test class 01", "price": 20, "...

2019-05-04 23:17:25

阅读数 155

评论数 0

Canal源码分析之启动时处理逻辑和主备切换机制

canal主备切换机制架构图 源码分析 Canal的版本是1.0.3,先找到程序的入口点 /** * canal独立版本启动的入口类 * */ public class CanalLauncher { ... public static void mai...

2019-04-25 11:36:04

阅读数 71

评论数 0

服务发现框架Consul的使用

分布式系统的三个指标 Consistency Availability Partition tolerance 它们的第一个字母分别是 C、A、P。 由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须需要实现的 一致性和可用性,不可能同时成立。这个结论就叫做 CA...

2019-04-12 18:26:22

阅读数 33

评论数 0

TreeMap深入浅出源码分析Java8

二叉查找树 红黑树的起源得从二叉查找树(二叉排序树)说起。先来看二叉查找树的定义: 1、要么为一颗空树,要么就是一颗具有如下特性的二叉树。 2、左子节点的值必须小于等于父节点的值。 3、右子节点的值必须大于等于父节点的值。 每个节点都符合这个特性,所以易于查找,如下图: 平衡二叉树...

2019-04-09 22:17:15

阅读数 21

评论数 0

Java面试知识栈

目录 基础 java基础 jvm 多线程 jdk1.7源码 开源框架与技术 tomcat spring netty dubbo zookeeper mybatis elasticsearch kafka nginx spring boot spring cloud...

2019-04-08 18:43:23

阅读数 74

评论数 0

ThreadLocal 源码解读

ThreadLocal源码解读,网上面早已经泛滥了,大多比较浅,甚至有的连基本原理都说的很有问题,包括百度搜索出来的第一篇高访问量博文,说ThreadLocal内部有个map,键为线程对象,太误导人了。 ThreadLocal非常适合对Java多线程编程感兴趣的程序员作为入门类阅读,原因两方面:...

2019-04-01 00:35:12

阅读数 24

评论数 0

Iterator(迭代器)的用法及其背后机制的探究

Iterator 怎么使用?有什么特点? Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lan...

2019-04-01 00:34:06

阅读数 24

评论数 0

HashMap jdk1.7和1.8源码剖析

1 概述 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的,只适用于单线程环境,多线程环境可以采用并发包下的concurrentHashMap HashMap 实现了...

2019-03-28 23:43:50

阅读数 101

评论数 0

Dubbo源码之动态编译

Dubbo里的代理类 JavassistProxyFactory:利用字节码技术来创建对象 public <T> T getProxy(Invoker<T> invoker,Class<?>[] interfa...

2019-03-28 12:09:01

阅读数 26

评论数 0

Dubbo源码之服务端的发布

Dubbo服务发布-原理 第一个发布的动作:暴露本地服务 Export dubbo service com.alibaba.dubbo.demo.DemoService to local registry, dubbo version: 2.0.0, current host: 127.0.0...

2019-03-28 09:19:47

阅读数 19

评论数 0

Dubbo源码之服务引用

服务引用-整体架构设计图 ReferenceBean.getObject() -->ReferenceConfig.get() -->init() -->createProxy(map) -->re...

2019-03-28 09:19:40

阅读数 23

评论数 0

如何做一个对账系统

在互联网行业中只要涉及到支付,必然就会有对账的需求,几乎所有互联网公司的业务中多多少少的都会涉及到支付,大一点的公司甚至都标配有了自己的第三方支付公司,因此对账具有普遍性。对账系统是支付体系中最重要的一环,也是保证交易、资金安全的最后一道防线。在大多数的互联网公司中,一般都会有独立的对账系统来处理...

2019-03-27 10:37:18

阅读数 531

评论数 0

Mysql的Binlog原理

什么是二进制日志(binlog) binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。 binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改,但你可以通过查...

2019-03-26 12:54:43

阅读数 306

评论数 1

ZooKeeper 工作、选举 原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某...

2019-03-26 07:55:29

阅读数 114

评论数 0

Dubbo高级配置

启动时检查 Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。 如果你的Spring容器是懒加载的,或者通过API编程延迟引用服务,请关闭check,否则服务临时不可用时,会抛出异常,拿到nul...

2019-03-21 04:37:51

阅读数 28

评论数 0

Dubbo泛化调用

dubbo消费端,一般必须依赖服务端提供的api包,服务端api包一旦升级,消费端也要跟着升级(依赖的情况下),不像spring cloud一样,采用rest协议,对服务端的api依赖几乎可以没有,不过dubbo也有rest协议扩展,见当当网dubbox,也有jsonrpc协议的扩展,见https...

2019-03-21 04:00:43

阅读数 56

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭