自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (17)
  • 收藏
  • 关注

原创 hive开发UDF的一个坑

开发UDF的maven依赖一定要干净,只添加所需的依赖,否则add jar到hive中时可能会造成依赖冲突,导致当前hive环境下所有提交的mapreduce任务都会像这样失败:hive UDF依赖: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM...

2019-05-24 11:02:02 141

原创 令牌桶算法VS漏桶算法

漏桶漏桶的出水速度是恒定的,漏桶算法能很好地控制流量的访问速度,但如果瞬时大流量的话,将有大部分请求被丢弃掉(也就是所谓的溢出)。令牌桶生成令牌的速度(入水速度)是恒定的,而请求去拿令牌是没有速度限制的。这意味,面对瞬时大流量,该算法可以在短时间内请求拿到大量令牌,能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。...

2019-04-03 11:23:26 291

转载 MapReduce: shuffle执行过程

Shuffle的正常意思是洗牌或弄乱,可能大家更熟悉的是Java API里的Collections.shuffle(List)方法,它会随机地打乱参数list里的元素顺序。如果你不知道MapReduce里Shuffle是什么,那么请看这张图:这张是官方对Shuffle过程的描述。但我可以肯定的是,单从这张图你基本不可能明白Shuffle的过程,因为它与事实相差挺多,细节也是错乱的。后面我会具体...

2019-04-02 18:14:28 94

转载 Kafka的设计原理

Kafka整体系统架构设计如下:一个典型的 Kafka 集群包含若干 Producer,若干 Broker,若干 Consumer,以及一个 Zookeeper 集群。Kafka 通过 Zookeeper 管理集群配置,选举 Leader,以及在 Consumer Group发生变化时进行 Rebalance。Producer 使用 push模式将消息发布到 Broker;Consumer ...

2019-04-02 17:41:02 241

原创 MySQL8.0新特性

文章目录优化器索引窗口函数InnoDB增强账号与安全通用表表达式JSON增强优化器索引窗口函数InnoDB增强账号与安全① 创建用户和用户授权的命令需要分开执行:mysql> create user ‘tony’@’%’ identified by ‘Tony@2018’;mysql> grant all privileges on . to ‘tony’@’%’;② ...

2019-03-31 00:52:52 656

原创 spark1.6升级到spark2.4的常见问题

查看hadoop版本hadoop2.7可支持最新的spark2.4.0版本,下载地址为http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz解压,进入conf目录,拷贝旧版本spark中的spark-env.sh、spark-defaults.conf、hiv...

2019-03-29 15:08:36 1111

原创 一些常见的消息队列面试题整理

你们公司生产环境用的是什么消息中间件?RabbitMQ、ActiveMQ、RocketMQ、Kafka优缺点与应用场景为什么在你们系统架构中要引入消息中间件?系统解耦、异步调用、流量削峰说说系统架构引入消息中间件有什么缺点?系统可用性降低(MQ挂了)、系统稳定性降低(MQ消息重发、丢失等)、分布式一致性问题(需要分布式事务方案来保障)消息中间件集群崩溃,如何保证百万生产...

2019-03-29 10:24:52 7635

转载 ZooKeeper分布式锁的实现原理

这篇文章再给大家聊一下ZooKeeper实现分布式锁的原理。同理,我是直接基于比较常用的Curator这个开源框架,聊一下这个框架对ZooKeeper(以下简称zk)分布式锁的实现。一般除了大公司是自行封装分布式锁框架之外,建议大家用这些开源框架封装好的分布式锁实现,这是一个比较快捷省事儿的方式。ZooKeeper分布式锁机制首先大家看看下面的图,如果现在有两个客户端一起要争抢zk上的一把...

2019-03-27 14:40:36 82

转载 分布式锁高并发优化实践

因为库存超卖问题是有很多种技术解决方案的,比如悲观锁,分布式锁,乐观锁,队列串行化,Redis原子操作,等等吧。但是既然面试官兄弟限定死了用分布式锁来解决库存超卖,我估计就是想问一个点:在高并发场景下如何优化分布式锁的并发性能。我觉得,面试官提问的角度还是可以接受的,因为在实际落地生产的时候,分布式锁这个东西保证了数据的准确性,但是他天然并发能力有点弱。刚好我之前在自己项目的其他场景下,确实...

2019-03-27 12:02:41 515

转载 Redis分布式锁的实现原理

说实话,如果在公司里落地生产环境用分布式锁的时候,一定是会用开源类库的,比如Redis分布式锁,一般就是用Redisson框架就好了,非常的简便易用。大家如果有兴趣,可以去看看Redisson的官网,看看如何在项目中引入Redisson的依赖,然后基于Redis实现分布式锁的加锁与释放锁。下面给大家看一段简单的使用代码片段,先直观的感受一下:怎么样,上面那段代码,是不是感觉简单的不行!此...

2019-03-27 11:41:50 461

转载 最终一致性分布式事务如何保障实际生产中99.99%高可用

在实际系统的开发过程中,可能服务间的调用是异步的。也就是说,一个服务发送一个消息给MQ,即消息中间件,比如RocketMQ、RabbitMQ、Kafka、ActiveMQ等等。然后,另外一个服务从MQ消费到一条消息后进行处理。这就成了基于MQ的异步调用了。那么针对这种基于MQ的异步调用,如何保证各个服务间的分布式事务呢?也就是说,我希望的是基于MQ实现异步调用的多个服务的业务逻辑,要么一起...

2019-03-27 11:31:32 312

转载 TCC分布式事务的实现原理

文章目录业务场景介绍落地实现TCC分布式事务1、TCC实现阶段一:**Try**2、TCC实现阶段二:Confirm3、TCC实现阶段三:Cancel总结与思考业务场景介绍咱们先来看看业务场景,假设你现在有一个电商系统,里面有一个支付订单的场景。那对一个订单支付之后,我们需要做下面的步骤:更改订单的状态为“已支付”扣减商品库存给会员增加积分创建销售出库单通知仓库发货这是一系列比...

2019-03-26 15:36:03 161

转载 微服务架构如何保障99.99%高可用

微服务架构本身最最核心的保障高可用的措施,就是两点:一个是基于Hystrix做资源隔离以及熔断;另一个是做备用降级方案。如果资源隔离和降级都做的很完善,那么在双11这种高并发场景下,也许可能会出现个别的服务故障,但是绝不会蔓延到整个系统全部宕机。业务场景介绍大家首先回顾一下下面这张图,这是上篇文章中说到的一个公司的系统。如上图,核心服务A调用了核心服务B和C,在核心服务B...

2019-03-26 11:56:08 1848

转载 每秒上万并发下的Spring Cloud参数优化实战

场景引入,问题初现朋友A的公司做互联网类的创业,组建了一个小型研发团队,上来就用了Spring Cloud技术栈来构建微服务架构的系统。一段时间没日没夜的加班,好不容易核心业务系统给做出来了,平时正常QA测试没发现什么大毛病,感觉性能还不错,一切都很完美。然后系统就这么上线了,一开始用户规模很小,注册用户量小几十万,日活几千用户。每天都有新的数据进入数据库的表中,就这么日积月累的,没想...

2019-03-26 11:35:16 363

转载 Java并发面试问题之微服务注册中心的读写锁优化

微服务注册中心的读写锁优化先来看看下面的图,现在我们知道一个微服务注册中心(可以是Eureka或者Consul或者你自己写的一个微服务注册中心),他肯定会在内存中有一个服务注册表的概念。这个服务注册表中就是存放了各个微服务注册时发送过来的自己的地址信息,里面保存了每个服务有多少个服务实例,每个服务实例部署在哪台机器上监听哪个端口号,主要是这样的一些信息。OK,那现在问题来了,这个服务注册表...

2019-03-25 21:41:52 860

转载 微服务注册中心如何承载大型系统的千万级访问

文章目录问题起源Eureka Server设计精妙的注册表存储结构Eureka Server端优秀的多级缓存机制总结问题起源下面这些问题,大家先看看,有个大概印象。带着这些问题,来看后面的内容,效果更佳Eureka注册中心使用什么样的方式来储存各个服务注册时发送过来的机器地址和端口号?各个服务找Eureka Server拉取注册表的时候,是什么样的频率?各个服务是如何拉取注册表的?一个...

2019-03-25 21:20:04 105

转载 Spring Cloud底层原理

文章目录Spring Cloud核心组件:EurekaSpring Cloud核心组件:FeignSpring Cloud核心组件:RibbonSpring Cloud核心组件:HystrixSpring Cloud核心组件:Zuul总结Spring Cloud核心组件:Eureka如上图所示,库存服务、仓储服务、积分服务中都有一个Eureka Client组件,这个组件专门负责将这个服务的...

2019-03-25 21:02:21 121

转载 Java并发面试问题之公平锁与非公平锁

非公平锁先来聊聊非公平锁是啥,现在大家先回过头来看下面这张图。如上图,现在线程1加了锁,然后线程2尝试加锁,失败后进入了等待队列,处于阻塞中。然后线程1释放了锁,准备来唤醒线程2重新尝试加锁。注意一点,此时线程2可还停留在等待队列里啊,还没开始尝试重新加锁呢!然而,不幸的事情发生了,这时半路杀出个程咬金,来了一个线程3!线程3突然尝试对ReentrantLock发起加锁操作,此时会发生什...

2019-03-25 20:08:46 411

转载 Java并发面试问题之谈谈你对AQS的理解

ReentrantLock加锁和释放锁的底层原理好了,那么现在如果有一个线程过来尝试用ReentrantLock的lock()方法进行加锁,会发生什么事情呢?很简单,这个AQS对象内部有一个核心的变量叫做state,是int类型的,代表了加锁的状态。初始状态下,这个state的值是0。另外,这个AQS内部还有一个关键变量,用来记录当前加锁的是哪个线程,初始化状态下,这个变量是null。接...

2019-03-25 20:04:35 1968

原创 哈希取模余的基底为什么要选择素数?

蝉的哲学蝉的生命周期为13年或17年,却很少有14、15或16年,为什么呢?蝉是弱势群体,有很多天敌,选择素数作为其生命周期能最大减少与其天敌们共存的时间,增加自己的存活率,这也是自然选择的结果。原理分析从蝉的哲学中获得启示,将哈希取余的基底选择为素数能最大减少哈希冲突情况的发生,使哈希分布更均匀。假设hash(key) = key % M,若 M = 2k, 则 key % M = k...

2019-03-25 00:00:12 619

python3 豆瓣电影小爬虫

python3 豆瓣电影小爬虫

2017-08-06

kafka_2.11-0.10.2.2.tgz

kafka_2.11-0.10.2.2.tgz

2019-06-28

几种XSS和CSRF原理解析与demo演示

分析了反射型XSS、存储型XSS、基于DOM的XSS、来自PDF的XSS、CSRF攻击等几种跨站脚本攻击方式,并使用springboot搭建环境进行演示

2019-03-24

Head First 设计模式(英文版)

本书作者Eric Freeman;ElElisabeth Freeman是作家、讲师和技术顾问。本书的产品设计应用神经生物学、认知科学,以及学习理论,这使得这本书能够将这些知识深深地印在你的脑海里,不容易被遗忘。本书的编写方式采用引导式教学。以大量的生活化故事当背景,以图片做背景,阅读起来生动有趣。书中模式告白节目,将设计模式拟人化成节目来宾,畅谈其内在的一切。本书大量采用uML的class Diagram(Static Structure Diagram)。书中的例子程序都是用JaVa编写,本书所介绍的内容对于任何00语言的用户都适用,包括c++和c孝。 概览 目录 引子   1设计模式入门欢迎来到设计模式世界   2观察者模式让你的对象知悉现况   3装饰者模式装饰对象   4工厂模式烘烤OO的精华   5单件模式独一无二的对象   6命令模式封装调用   7适配器模式与外观模式随遇模式   8模板方法模式封装算法   9选代器与组合模式管理良好的集合   10状态模式事物的状态   11代理模式控制对象访问   12复合模式模式中的模型   13与设计模式相处真实世界中的模式

2018-10-19

0-1背包问题多种解法

0-1背包问题的多种解法,包括暴力求解、动态规划求解、回溯法、贪心法求解求解、模拟退火算法,C++源代码,有详细的注释

2018-06-06

c#实现简洁美观的聊天软件

winform桌面群聊应用,分为client和server,基于tcp协议的socket通信

2018-02-08

C#实现的文件系统

一个简洁优雅美观的文件系统,模仿win7的文件管理界面以及Linux的命令行界面

2018-01-29

数字电路实验设计, 全加器、8421转2421....

数字电路的一些实验设计, 两位加法器、全加器、8421转2421、触发器....

2017-12-05

Python图像的手绘效果

把真实图像转化为像是手绘出来的图像,感觉挺有趣的..............................

2017-10-28

微信公众号开发所需的一些jar

慕课网课程微信公众号开发所需的一些jar

2017-07-13

汇编试题.zip

汇编期末试题,一大堆

2017-06-02

线性代数试题合集

线性代数试题及答案17套

2017-05-21

各种排序算法与数据结构的一些源码

各种排序算法与数据结构的一些源码

2017-05-21

微信抢红包app

使用辅助功能(AccessibilityService),实现自动检测并且拆开红包,无需root

2017-05-16

java实现的贪吃蛇最终版

原创的啊,为什么上次审核通不过呢.....

2017-04-18

Java实现的有点奇怪的贪吃蛇小游戏

Java实现的有点奇怪的贪吃蛇小游戏

2017-04-13

MyPresentationSlide

用Impress.js弄成的狂拽酷炫用于装X的演示

2017-04-08

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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