摘要:
Java 可见性 内存模型 主存 所有线程都可以访问 本地内存 每个线程私有的内存 可见性的方法 volatile 这种方式可以保证每次取数直接从主存取 它只能保证内存的可见性,无法保证原子性 它不需要加锁,比 synchronized 更轻量级,不会阻塞线程 不会被编译器优化 然而要求对这个变量做 阅读全文
随笔档案-2018年05月
Kafka 基本原理整理
2018-05-21 10:39 by 乱月灵猫, 730 阅读, 收藏,
摘要:
Kafka 体系架构 Producers push message Brokers contain messages Consumers pull message Zookeeper Cluster manage kafka cluster config select leader rebalanc 阅读全文
秒杀系统个人总结
2018-05-21 10:38 by 乱月灵猫, 825 阅读, 收藏,
摘要:
秒杀系统架构 秒杀系统是一个并发量要求高、负载均衡要求高的、业务场景简单但是逻辑稍微复杂的系统,所以经常会作为面试高级后端开发的面试题。主要考察的就是对问题的拆解、分析、解决,以及架构设计的能力。 基础架构 客户端 web 浏览器 / app 负载均衡层 Nginx web 层 接收 Http 请求 阅读全文
行为模式 - 6 中介者模式
2018-05-16 22:09 by 乱月灵猫, 195 阅读, 收藏,
摘要:
中介者模式其实不是很常用,场景,多个继承了同一个抽象的对象要互相操作。这样,需要每个对象持有其它的对象,自己对其他对象做操作。这种方式使得对象之间耦合,对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。如 阅读全文
行为模式 - 3 命令模式
2018-05-16 22:09 by 乱月灵猫, 237 阅读, 收藏,
摘要:
定义: 把一个请求或者操作封装在命令对象中。 invoker - command - receiver invoker持有一个或多个具体的command, 每个command,有自己特定的receiver,invoker和receiver是解耦的 命令模式允许: 系统使用不同的请求把客户端参数化 对 阅读全文
行为模式 - 7 迭代器模式
2018-05-16 22:07 by 乱月灵猫, 170 阅读, 收藏,
摘要:
目的:提供一种方法,以某种方式遍历对象中的各个元素,避免暴露该对象的内部表示 关键思想:把在元素之间游走的责任交给迭代器,而不是聚合对象 优点: 1. 对于一个聚合对象,可以方便地支持多种迭代器(Map 的 keyIterator 和 valueIterator,正向遍历,反向遍历),在同一个聚合上 阅读全文
行为模式 - 8 状态模式
2018-05-16 22:06 by 乱月灵猫, 197 阅读, 收藏,
摘要:
类的行为基于它自身的状态改变,对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。 对象的行为依赖于他的状态,并且可以根据状态的改变而改变行为。 使用目的: (1)需要抽象状态 当代码中包含了大量与对象状态有关的语句时,就可以考虑用状态模式,状态可以在多个类间共享,影响多个类的行为。 阅读全文
行为模式 - 9 访问者模式
2018-05-16 22:01 by 乱月灵猫, 160 阅读, 收藏,
摘要:
访问者模式,Visitor,使用访问者类,改变元素类本身的执行方法。通过这种方式,元素的执行算法可以随着访问者改变而改变。 想象一下,对于某一类对象,这些对象都是某个抽象类的具体实现,我们想对他们做访问,会怎么做? > InterfaceA ConcreteClassX ConcreteClassY 阅读全文
结构模式 - 6 门面模式
2018-05-16 22:00 by 乱月灵猫, 192 阅读, 收藏,
摘要:
门面模式又叫外观模式,这个模式真的是很简单了。在写业务代码时经常会不自觉的用到。 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 外观模式 阅读全文
kafka 学习整理
2018-05-16 16:50 by 乱月灵猫, 319 阅读, 收藏,
摘要:
Kafka 体系架构 Producers push message Brokers contain messages Consumers pull message Zookeeper Cluster manage kafka cluster config select leader rebalanc 阅读全文
Hive文件格式,以及ORC创建使用
2018-05-16 02:10 by 乱月灵猫, 3988 阅读, 收藏,
摘要:
转载出处:https://blog.csdn.net/longshenlmj/article/details/51702343 hive表的源文件存储格式有几类: 1、TEXTFILE 默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。源文件可以直接通过ha 阅读全文
GBDT 介绍
2018-05-16 02:07 by 乱月灵猫, 1011 阅读, 收藏,
摘要:
Gradient Boosting Decision Tree (1)GBDT是一个回归树模型,不是分类树,这点需要明确 GBDT是回归树模型,回归树是用来预测值的,当然也可以做分类,而分类树如C4.5,ID3这些只能得到类别,并没有具体值 (2)GBDT模型由多颗树组成,这与Boosting和Ba 阅读全文
机器学习中的特征工程 —— 七月在线总结
2018-05-16 02:06 by 乱月灵猫, 691 阅读, 收藏,
摘要:
(1)特征很关键,百度、阿里他们得模型效果那么好多半归功于特征工程 数据与特征处理 -数据选择/清洗/采样 - 数值型/类别型/日期型/文本型特征处理 - 组合特征处理 特征选择 - filter - wrapper - embedded (1)大多数人都在做什么? a. 跑数据,各种map-red 阅读全文
不均衡样本集的抽样方法
2018-05-16 02:05 by 乱月灵猫, 1619 阅读, 收藏,
摘要:
http://blog.csdn.net/u011414200/article/details/50664266 通常情况下,在不均衡学习应用中使用抽样方法的目的就是为了通过一些机制改善不均衡数据集,以期获得一个均衡的数据分布。 http://blog.csdn.net/u011414200/art 阅读全文
机器学习之特征选择
2018-05-16 02:05 by 乱月灵猫, 388 阅读, 收藏,
摘要:
特征工程包括了两个重要问题,一个是特征选择,另一个是特征提取。这次介绍特征选择: 特征选择通常有两种方案:filter,wrapper,embedded filter,衡量每个特征的重要性,然后对其进行排序,筛选的时候可以选择top N,或者可以选择前x% filter方法:卡方检测,信息增益,相关 阅读全文
一个模型建立的完整流程
2018-05-16 02:04 by 乱月灵猫, 12629 阅读, 收藏,
摘要:
总结在工作中建立一个模型的完整流程。 主要工作: (1)采集数据 (2)分析数据 (3)特征工程 (4)模型评估 (5)模型优化 采集数据: 这点没太多可总结的,工作中保证采集的方案正确合理,量足够。 首先要知道真实的数据量是多少,采集过少数据的分布就不是无偏估计。 采集的时间维度需要注意,好坏样本 阅读全文
Redis 事务
2018-05-16 02:03 by 乱月灵猫, 201 阅读, 收藏,
摘要:
相信学过Mysql等其他数据库的同学对事务这个词都不陌生,事务表示的是一组动作,这组动作要么全部执行,要么全部不执行。为什么会有这样的需求呢?看看下面的场景: 微博是一个弱关系型社交网络,用户之间有关注和被关注两种关系,比如两个用户A和B,如果A关注B,则B的粉丝中就应该有A。关注这个动作需要两个步 阅读全文
MemCache学习 - 原理篇
2018-05-16 02:03 by 乱月灵猫, 206 阅读, 收藏,
摘要:
转载自:http://www.cnblogs.com/xrq730/p/4948707.html 概念 MemCache是一个自由的、开源的、高性能、分布式的”分布式内存对象缓存系统“,用于动态web应用以减轻数据库的负载。 基本原理 MemCache的数据结构是一个存储键值对的HashMap,访问 阅读全文
0 - kafka0.9 集群搭建
2018-05-16 02:02 by 乱月灵猫, 233 阅读, 收藏,
摘要:
https://www.cnblogs.com/luotianshuai/p/5206662.html 每台服务器都需要安装,修改配置,并启动 启动命令: sudo -u hadoop ./kafka-server-start.sh -daemon ../config/server.properti 阅读全文
0 - 分布式 hadoop 环境搭建
2018-05-16 02:00 by 乱月灵猫, 406 阅读, 收藏,
摘要:
在上一篇介绍Hadoop环境搭建中,是在本机搭建伪分布式,按照那个操作一般不会出问题。在多台服务器搭建Hadoop,会遇到各种问题 首先,需要熟悉几个目录 Hadoop/sbin 存放了各种启动所需的shell脚本,命令 Hadoop/logs 存放hadoop的各个日志,包括namenode日志, 阅读全文
0 - hadoop 环境搭建
2018-05-16 01:58 by 乱月灵猫, 312 阅读, 收藏,
摘要:
一开始是要学习spark的,安装hadoop有多方面原因,一方面学习分布式知识需要对hadoop有一定的了解,毕竟hadoop如此经典,一方面spark对hadoop的hdfs、map-reduce的支持,以及spark的运行模式可以选择hadoop的yarn模式,因此觉得学习hadoop也是向分布 阅读全文
5 - 常见开源的分布式文件系统
2018-05-16 01:57 by 乱月灵猫, 3829 阅读, 收藏,
摘要:
http://www.charmingzhou.com/distributed.html 系统整体对比 对比说明 /文件系统 开源协议说明 GPL:不允许修改后和衍生的代码做为闭源的商业软件发布和销售,修改后该软件产品必须也采用GPL协议; GPL V2:修改文本的整体就必须按照GPL流通,不仅该修 阅读全文
3 - 分布式系统生成唯一ID
2018-05-16 01:56 by 乱月灵猫, 405 阅读, 收藏,
摘要:
对于分布式系统,生成 唯一ID的方法,大致分为3类: (1)UUID (2)依赖数据库的 flicker 方案 (3)twitter 的 snowflake 算法 后面要介绍一种 阿里的 TDDL 中的方案,同样依赖数据库,但是比 Flicker 性能更高 此外,很多公司实际上是采用分布式ID生成系 阅读全文
4 - 分布式限流
2018-05-16 01:56 by 乱月灵猫, 478 阅读, 收藏,
摘要:
http://jinnianshilongnian.iteye.com/blog/2305117 这篇文章总结的很好 单机限流策略(应用级限流) 在学习分布式限流之前,需要先了解一下单机基本的限流策略。 限流即流量限制,或者高大上一点,叫做流量整形,限流的目的是在遇到流量高峰期或者流量突增(流量尖刺 阅读全文
2 - 一致性算法Raft
2018-05-16 01:55 by 乱月灵猫, 278 阅读, 收藏,
摘要:
Raft要比Paxos更加简单易懂 这是一个Raft的flash演示 http://thesecretlivesofdata.com/raft/ 下面这篇文章讲解了Raft的leader选举的基本思想 https://mp.weixin.qq.com/s/ohTXhFFywGHGDOkzO45aaQ 阅读全文
1 - 分布式锁
2018-05-16 01:54 by 乱月灵猫, 195 阅读, 收藏,
摘要:
分布式锁的几种实现方式 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition toleranc 阅读全文
4 - http 的接口签名验证方式
2018-05-16 01:52 by 乱月灵猫, 774 阅读, 收藏,
摘要:
MD5方式: 客户端:(先申请获得key + secret) 1. 先对参数做排序 2. 将参数串起来,加上secret,这就是待摘要的字符串 3. 用MD5 生成摘要串的签名sigature 4. 将key,signature一并传给服务器 服务端: 1. 用key从数据库获取secret 2. 阅读全文
3 - Http & Https
2018-05-16 01:50 by 乱月灵猫, 679 阅读, 收藏,
摘要:
HTTP & HTTPS what is https? "http 和 https 有和区别?如何灵活使用?" https,Hyper Text Transfer Protocal Secure,相比 https,多了一个 secure。这个 secure 是由 提供的,更进一步说是由 的 libr 阅读全文
1 - 数字签名
2018-05-16 01:47 by 乱月灵猫, 198 阅读, 收藏,
摘要:
数字签名是用于验证完整性的,数据本身是否加密不属于数字签名的控制范围 作用: (1)准确认证发送方身份(假冒不了发送方签名) (2)确保消息完整性 核心技术:数字摘要 + 非对称加密 非对称加密(RSA) + 数字摘要(Hash算法,MD5,SHA1) -> 数字签名 报文,用Hash(MD5/SH 阅读全文
2 - 数字证书
2018-05-16 01:47 by 乱月灵猫, 212 阅读, 收藏,
摘要:
上文介绍了数字签名,它能够(1)确认发送方身份(2)保证发送数据完整性 但是存在一定漏洞,这个漏洞不在数字签名技术本身,而在于它所以来的密钥,只有密钥真是可靠,使用数字签名才是安全有效的。 考虑这种可能的情况:在上述发送方向接收方传送报文的例子中,如果发送方所持有的公钥来路有问题或是被替换了,那么, 阅读全文
使用 Binlog 和 Canal 从 MySQL 抽取数据
2018-05-16 01:28 by 乱月灵猫, 1868 阅读, 收藏,
摘要:
转载自: https://blog.csdn.net/zjerryj/article/details/77152226 技术点: 数据抽取是 ETL 流程的第一步。我们会将数据从 RDBMS 或日志服务器等外部系统抽取至数据仓库,进行清洗、转换、聚合等操作。在现代网站技术栈中,MySQL 是最常见的 阅读全文
结构模式 - 5 桥接模式
2018-05-16 01:19 by 乱月灵猫, 164 阅读, 收藏,
摘要:
很形象的名字,想象一下,一条河,这条河叫做引用河(调用河),河两面都有多条路,而不能为多条路建立多座桥,所以,只用一座桥,连接所有的路 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 阅读全文
结构模式 - 4 适配器模式
2018-05-16 01:12 by 乱月灵猫, 125 阅读, 收藏,
摘要:
出处地址 http://www.cnblogs.com/V1haoge/p/6479118.html 适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。 适配器模式有三种:类适配器、对象适配器、接口适配器 前二者在实 阅读全文
结构模式 - 2 代理模式
2018-05-16 01:01 by 乱月灵猫, 189 阅读, 收藏,
摘要:
概述: 假设一种场景,某个对象消耗太多资源,但我们的代码中并不是每个逻辑路径(if、else就是两条不同的逻辑路径)都需要这个对象,那么延迟加载可能是我们解决这个问题的一种方案。再假设一种场景,如果我们想限制访问某个对象,比如,提供一组方法给普通用户,提供另一组特别的方法给管理员用户。以上两个场景都 阅读全文
结构模式 - 1 享元模式
2018-05-16 00:59 by 乱月灵猫, 154 阅读, 收藏,
摘要:
享元模式 顾名思义:共享元对象。如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必 为每一次使用创建新的对象。 顾名思义:共享元对象。如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必 为每一次使用创建新的对象。 享元模式是为数不多的、只为提升系统性能而生 阅读全文
创建模式 - 4 建造者模式
2018-05-16 00:55 by 乱月灵猫, 200 阅读, 收藏,
摘要:
建造者模式:是将一个复杂的对象的构建与它的表示(实体)分离,使得同样的构建过程可以创建不同的表示。 写在前面: builder 模式可以分为两种实现,一种是用静态内部类实现,不需要 director 类;另一种是需要 director 类。网上的介绍往往都是带有 director 的,但实际使用时, 阅读全文
创建模式 - 3 工厂模式
2018-05-16 00:47 by 乱月灵猫, 186 阅读, 收藏,
摘要:
工厂模式包括: (1)静态工厂模式:产品实体类继承自一个接口,工厂是实体类,通过入参决定具体产品的创建。 (2)工厂方法模式:产品实体类继承自一个接口,工厂实体类继承自一个接口,具体的工厂实体类对应具体的产品实体类。 (3)抽象工厂模式:多个产品族对应多个产品接口,每个产品接口有具体的实现类产品,工 阅读全文
创建模式 - 2 原型模式
2018-05-16 00:39 by 乱月灵猫, 118 阅读, 收藏,
摘要:
在开发过程中,有时会遇到为一个类创建多个实例的情况,这些实例内部成员往往完全相同或有细微的差异,而且实例的创建开销比较大或者需要输入较多参数,如果能通过复制一个已创建的对象实例来重复创建多个相同的对象,这就可以大大减少创建对象的开销,这个时候就需要原型模式。 原型模式简单来说,就是使需要具有拷贝功能 阅读全文
创建模式 - 1 单例模式
2018-05-16 00:17 by 乱月灵猫, 140 阅读, 收藏,
摘要:
参考:http://bijian1013.iteye.com/blog/2289939 写在前面: 单例的实现方式有多种,不管采取何种方案,需时刻牢记单例的三大要点: a. 线程安全 b. 延迟加载 c. 序列化与反序列化安全 a. 线程安全 b. 延迟加载 c. 序列化与反序列化安全 1. 饿汉法 阅读全文
1 - 单例、工具类、service的区别
2018-05-16 00:00 by 乱月灵猫, 1754 阅读, 收藏,
摘要:
最近在写代码时想了这样一个问题,和室友讨论了一番,做了如下总结。 简单来说:service是有状态的,工具类是无状态的,单例可以有状态也可以无状态。 工具类提供静态方法,只要输入一定,输出就是一定的,它不依赖于其它外部的数据,也不保存数据 例如,字符串的操作,日期格式的转换,json串的转换 Ser 阅读全文
0 - 设计模式六大原则
2018-05-15 23:56 by 乱月灵猫, 170 阅读, 收藏,
摘要:
参考:http://www.uml.org.cn/sjms/201211023.asp#2 (1)单一职责原则(Single Responsibility Principle) 定义: 一个类/接口只负责一项职责 描述: 当一个职责变更需要修改类的时候,应该避免影响到其它职责的功能,因此要遵从单一职 阅读全文
浙公网安备 33010602011771号