12 hellozhxy

尚未进行身份认证

暂无相关简介

等级
TA的排名 3k+

Kafka 基本原理

《Java 2019 超神之路》 《Dubbo 实现原理与源码解析 —— 精品合集》 《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》 《Spring MVC 实现原理与源码解析 —— 精品合集》 《Spring Boot 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》 《Java 面试题 —— 精品合集》 ...

2019-12-16 13:54:54

42个机器学习练手项目

从个性化推送(今日头条)、自拍美颜、自动翻译,到无人驾驶、图像识别等诸多领域……人工智能已经渗透进我们生活的方方面面,人工智能背后的机器学习和深度学习技术,也成为了“高薪”的代名词。那么,普通程序员如何踏入AI的浪潮,站上时代薪资顶端呢?今天,我们带来了 44 个机器学习的练手项目,分为「入门知识」、「基础课程」、「基础应用」、「综合应用」、「系统进阶」5个模块,层层递进,帮助你系统地入门...

2019-12-15 10:49:43

CRDT——解决最终一致问题的利器

概述跨数据中心的数据同步是企业提升容灾能力的必备手段,对于社交、视频直播、电商以及游戏等访问规模大、业务分布广的行业,跨区域全球部署也愈发重要。然而面对大型分布式系统, 不免要讨论CAP理论,在跨区域多活的场景下如何取舍?显然P(网络分区)是首要考虑因素。其次,跨区域部署就是为了提高可用性,而且对于常见的一致性协议,不管是2PC、Paxos还是raft,在此场景下都要做跨区域同步更新,不仅会...

2019-12-13 14:52:15

分布式架构知识体系

基础理论SOA 到 MSA 的进化SOA 面向服务架构由于业务发展到一定程度后,需要对服务进行解耦,进而把一个单一的大系统按逻辑拆分成不同的子系统,通过服务接口来通讯。面向服务的设计模式,最终需要总线集成服务,而且大部分时候还共享数据库,出现单点故障时会导致总线层面的故障,更进一步可能会把数据库拖垮,所以才有了更加独立的设计方案的出现。M...

2019-12-09 19:24:52

MySQL锁总结

MySQL 就是其中之一,它经历了多个版本迭代。数据库锁是 MySQL 数据引擎的一部分,今天我们就一起来学习 MySQL 的数据库锁和它的优化。MySQL 锁分类当多个事务或者进程访问同一个资源的时候,为了保证数据的一致性,就需要用到锁机制。从锁定资源的角度来看,MySQL 中的锁分为: 表级锁 行级锁 页面锁 表级锁:对整张表加...

2019-12-04 20:39:22

分布式系统中的一致性协议

本文详细介绍目前分布式系统中常见的一些一致性协议:两阶段提交协议,三阶段提交协议,向量时钟,RWN协议,paxos协议,Raft协议。下面就一个个详细讲解下。一. 两阶段提交协议(2PC)两阶段提交协议,简称2PC,是比较常用的解决分布式事务问题的方式,要么所有参与进程都提交事务,要么都取消事务,即实现ACID中的原子性(A)的常用手段。两阶段提交将提交过程划分为连续的两个阶段:表决阶段(...

2019-12-03 20:50:37

2PC到3PC到Paxos到Raft到ISR

序本文主要讲述2PC及3PC,以及Paxos以及Raft协议。两类一致性(操作原子性与副本一致性) 2PC协议用于保证属于多个数据分片上的操作的原子性。这些数据分片可能分布在不同的服务器上,2PC协议保证多台服务器上的操作要么全部成功,要么全部失败。 Paxos协议用于保证同一个数据分片的多个副本之间的数据一致性。当这些副本分布到不同的数据中心时,这个需求尤其强烈。 一...

2019-12-03 20:26:55

营销系统资格设计

前言:业务进行营销活动目的是用最少的钱实现更好的营销效果,此时就需要针对营销活动的资格进行控制,其中就包括了用户身份、用户所处的环境等等一系列因素的考虑,且为了防止恶意套取营销费用和做到营销效果的持续性,会进行活动相关次数的控制。此时为了适应业务不断变革的营销活动资格,好的资格设计就非常重要。营销活动业务在配置中会同一时间存在多个营销活动,用户进入某个场景,首先需要给用户展示目前用户能够享...

2019-11-26 13:47:45

向量时钟Vector Clock in Riak

Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。Riak支持多节点构建的系统,每次读写请求不需要集群内所有节点参与也能胜任。像这样的系统,我们需要版本机制来确定哪个值是最新的。所以就引入了向量时钟(Vector Clock)当存储一个对象到Riak时,都被打上向量时钟标签。通过向...

2019-11-25 17:06:35

无偏PU learning简介

PU learning背景PU learning(positive-unlabeled learning),即我们只有正样本和未标注的样本,以此进行分类学习。其可在以下几个领域内应用:检索 从大量无标注的样本中选取特定的样本,比如人脸标注 异常检测 包括inlier-based outlier 检测 序列数据检测 负样本的分布随着时间改变,这样传统的分类将不再适合,PU 只...

2019-11-22 15:05:14

XGBoost的PU-Learning

论文:Detecting positive and negative deceptive opinions using PU-learningPU-learning是一种只有正样本的半监督的二分类器。在实际工程应用中,有时候我们会遇到只有正样本而没有负样本的分类任务,或者说负样本是不纯的,即负样本中掺杂有部分正样本。PU-learning提供了一种选择可靠负样本的机制,具体算法如下:原始的...

2019-11-22 14:32:25

详解三种主流分布式事务方案的优劣

一、分布式事务前奏事务:事务是由一组操作构成的可靠的独立的工作单元,事务具备ACID的特性,即原子性、一致性、隔离性和持久性。本地事务:当事务由资源管理器本地管理时被称作本地事务。本地事务的优点就是支持严格的ACID特性,高效,可靠,状态可以只在资源管理器中维护,而且应用编程模型简单。但是本地事务不具备分布式事务的处理能力,隔离的最小单位受限于资源管理器。全局事务:当...

2019-11-22 14:22:41

Mysql跨机房同步方案

随着用户量的不断累积,Mysql从单实例单节点发展到多实例多节点的主备,再到一个机房几十台Myql实例,但是现在,一个机房也开始慢慢无法承受庞大的数据吞吐,多机房的理念开始构建。 假设现有两个机房,需要做到数据同步。 以下是架构图(实际架构图根据现有机房架构和实际会比下图复杂,但整体思路不变): Mycat、Canal、Otter是关键的三...

2019-11-14 13:29:11

[阿里]基于多任务学习的CVR预估模型ESM2

今天介绍的文章名称是《Conversion Rate Prediction via Post-Click Behaviour Modeling》论文下载地址为:https://arxiv.org/abs/1910.07099在本系列的第十九篇文章中,我们已经介绍过一种基于多任务学习的CVR预估模型ESMM,同样是阿里发表的论文。本文可以看作是ESMM的升级版,一起来学习一下吧。...

2019-11-04 13:48:43

Java 垃圾回收算法之G1

G1(Garbage-First)回收器是在JDK1.7中正式使用的全新垃圾回收器,G1拥有独特的垃圾回收策略,从分代上看,G1依然属于分代垃圾回收器,它会区分年代和老年代,依然有eden和survivor区,但从堆的结构上看,它并不要求整个eden区、年清代或者老年代都连续。它使用了全新的分区算法。其特点如下: 并行性:G1在回收期间,可以由多个GC线程同时工作,有效利用多核计算能力。...

2019-10-24 20:29:16

微服务架构下一致性最佳实践

在开发或软件架构的过程中,经常会遇到一致性的问题。尤其是在微服务架构下,每个微服务都有自己的数据库,导致微服务架构的系统不能简单地满足 ACID,我们就需要寻找微服务架构下的数据一致性解决方案。传统情况下,当一个事务要跨越多个分布式服务时,开发者想到的第一个方案就是两阶段提交——2PC。在这个过程中,事务协调者(事务管理器)给每个参与者(资源管理器)发送 Prepare 消息,如果参与者有可用...

2019-10-24 17:47:01

Java堆外内存:堆外内存溢出问题排查

一、堆外内存组成通常JVM的参数我们会配置-Xms 堆初始内存-Xmx 堆最大内存-XX:+UseG1GC/CMS 垃圾回收器-XX:+DisableExplicitGC 禁止显示GC-XX:MaxDirectMemorySize 设置最大堆外内存,默认是-xmx-survivor,也就是基本上和-xmx大小相等-Xss:每个线程的堆栈大小,默认1M-Xmn: 年...

2019-10-24 17:37:56

Java堆外内存:堆外内存回收方法

一、JVM内存的分配及垃圾回收  对于JVM的内存规则,应该是老生常谈的东西了,这里我就简单的说下:  新生代:一般来说新创建的对象都分配在这里。  年老代:经过几次垃圾回收,新生代的对象就会放在年老代里面。年老代中的对象保存的时间更久。  永久代:这里面存放的是class相关的信息,一般是不会进行垃圾回收的。JVM垃圾回收  由于JVM会替我们执行垃圾回收,因此开发者根本...

2019-10-24 17:36:17

深入分析 ThreadLocal 内存泄漏问题

由于ThreadLocalMap的生命周期跟Thread一样长,如果没有手动删除对应key就会导致内存泄漏,我觉得是这种数据结构导致,会产生内存溢出的问题Java为了最小化减少内存泄露的可能性和影响,在ThreadLocal的get,set的时候都会清除线程Map里所有key为null的value。所以最怕的情况就是,threadLocal对象设null了,开始发生“内存泄露”,然后使用...

2019-10-24 17:26:08

支撑百万并发的“零拷贝”技术,你了解吗?

零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。作者:陈林来源:51CTO技术栈|2019-09-23 08:46【51CTO.com原创稿件】零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少...

2019-10-24 10:44:29

查看更多

勋章 我的勋章
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。