自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JavaEdge

全是硬核干货的公众号:JavaEdge

原创 抢实战(二)-业务模型

或许大家体验过抢红包,但如何对现实世界的业务场景进行抽象,形成软件系统的需求,进行建模与技术选型,这是有一套“方法论”的。因此,本章分四点:红包系统业务知识;选用的技术框架;业务建模与数据库建模;红包算法&库存超卖问题。… 1 红包业务和业务模型概述 1.1 红包业务场景 通过移动互...

2019-07-29 04:54:02

阅读数 192

评论数 0

原创 漫谈MySQL的锁机制

1 MySQL的三种锁 1.1 表锁 开销小,加锁快 不会出现死锁 锁定粒度大,发生锁冲突的概率最高,并发度最低 1.2 行锁 开销大,加锁慢 会出现死锁 锁定粒度小,发生锁冲突的概率最低,并发度最高 1.3 页锁 开销和加锁时间介于表锁和行锁之间 会出现...

2019-07-28 19:43:46

阅读数 177

评论数 0

原创 CentOS7系统环境下载安装Maven

1 下载压缩文件 wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz 2 解压 tar -zxvf apache-maven-3.3...

2019-07-27 20:11:59

阅读数 165

评论数 0

原创 Flink实战(八) - Streaming Connectors 编程

Flink实战(八) - Streaming Connectors 编程

2019-07-27 04:48:28

阅读数 352

评论数 0

原创 Flink实战(八) - Streaming Connectors 编程

1 概览 1.1 预定义的源和接收器 Flink内置了一些基本数据源和接收器,并且始终可用。该预定义的数据源包括文件,目录和插socket,并从集合和迭代器摄取数据。该预定义的数据接收器支持写入文件和标准输入输出及socket。 1.2 绑定连接器 连接器提供用于与各种第三方系统连接的代...

2019-07-27 04:25:45

阅读数 171

评论数 0

原创 环境配置CentOS7

sudo - i 进入root模式 删除网络配置文件 查看ip,并复制ens33的地址 根据自己的网络环境,配置网卡相关信息 ping成功,可联网 使用本机终端连接虚拟机 ...

2019-07-24 12:52:00

阅读数 231

评论数 0

原创 Flink实战(七) - Time & Windows编程

Flink实战(七) - Time & Windows编程

2019-07-23 12:18:46

阅读数 361

评论数 0

原创 DnKIQSyjOb

博客搬家牛客网啦

2019-07-23 11:44:48

阅读数 150

评论数 0

原创 Flink实战(七) - Time & Windows编程

掌握Flink中三种常用的Time处理方式,掌握Flink中滚动窗口以及滑动窗口的使用,了解Flink中的watermark。 Flink 在流处理工程中支持不同的时间概念。 1 处理时间(Processing time) 执行相应算子操作的机器的系统时间. 当流程序在处理时间运行时,所有...

2019-07-23 09:48:02

阅读数 374

评论数 0

原创 Flink实战(六) - Table API & SQL编程

1 意义 1.1 分层的 APIs & 抽象层次 Flink提供三层API。 每个API在简洁性和表达性之间提供不同的权衡,并针对不同的用例。 而且Flink提供不同级别的抽象来开发流/批处理应用程序 最低级抽象只提供有状态流。它通过Process Function嵌入到Data...

2019-07-21 22:34:00

阅读数 886

评论数 0

原创 Flink实战(五) - DataStream API编程

1 概述 Flink中的DataStream程序是实现数据流转换的常规程序(例如,过滤,更新状态,定义窗口,聚合)。 最初从各种源(例如,消息队列,套接字流,文件)创建数据流。 结果通过接收器返回,接收器可以例如将数据写入文件或标准输出(例如命令行终端)。 Flink程序可以在各种环境中...

2019-07-20 23:56:19

阅读数 179

评论数 0

原创 网络协议的意义

如今的世界,正是因为互联网,才连接在一起。 当"Hello World!"从显示器打印出来的时候,还记得你激动的心情吗? 作为程序员,一定看得懂上面这一段文字。这是每一个程序员向计算机世界说“你好,世 界”的方式。 但是,你不一定知道,这段文字也是一种协议,是人类和计...

2019-07-19 01:34:05

阅读数 244

评论数 0

原创 Flink实战(四) - DataSet API编程

1 你将学到 ◆ DataSet API开发概述 ◆ 计数器 ◆ DataSource ◆ 分布式缓存 ◆ Transformation ◆ Sink 2 Data Set API 简介 Flink中的DataSet程序是实现数据集转换(例如,过滤,映射,连接,分组)的常规程序. ...

2019-07-19 00:35:14

阅读数 289

评论数 0

原创 电商详情页系统实战(4) - 支撑高并发+高可用+海量数据+备份恢复的redis的重要性

一块儿一块儿的讲解商品详情页的架构实现 1 缓存架构 第一块儿,要掌握的很好的,就是Redis架构 高并发,高可用,海量数据,备份,随时可以恢复,缓存架构如果要支撑这些要点,首当其冲地Redis就得支撑 每秒钟几十万的访问量QPS,99.99%的高可用性,TB级的海量的数据,备份和恢复,缓存架构就...

2019-07-16 16:06:42

阅读数 213

评论数 0

原创 电商详情页系统实战(3) - 大型电商网站的异步多级缓存构建+nginx数据本地化动态渲染的架构

大型电商网站的详情页架构 参考 (第二版)亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构

2019-07-16 01:43:38

阅读数 214

评论数 0

原创 电商详情页系统实战(2) -小型电商网站商品详情页的页面静态化架构及缺陷

商品详情页的系统架构 => 缓存架构 => 高并发 => 高可用 电商网站里,大概可以说分成两种 小型电商 简单的一种架构方案,页面静态化的方案 大型电商 复杂的一套架构,大电商,国内排名前几的电商,用得应该咱们这里讲解的这套大型的详情页架构 页面静态化,全量的页面静态化...

2019-07-16 01:39:36

阅读数 223

评论数 0

原创 电商详情页系统实战(1) - 简介

1 缓存技术掌握不够,会对发展带来了哪些阻碍 1.1 工作中 如果你这块技术掌握不够,然后你的公司的项目遇到了一些相关的难题,高并发+高性能的场景,hold不住类似的这种高并发的系统 因为缓存架构做得不好,不到位,实际在公司的项目里,出了一些大case,导致系统崩溃,巨大的经济损失 1.2...

2019-07-16 01:00:56

阅读数 210

评论数 0

原创 高可用服务架构设计(17) - 基于Hystrix的高可用分布式系统架构设计的总结

已经学到的东西 hystrix的核心知识 1、hystrix内部工作原理:8大执行步骤和流程 2、资源隔离:你如果有很多个依赖服务,高可用性,先做资源隔离,任何一个依赖服务的故障不会导致你的服务的资源耗尽,不会崩溃 3、请求缓存:对于一个request context内的多个相同command,使...

2019-07-16 00:34:57

阅读数 171

评论数 0

原创 高可用服务架构设计(16) - 基于timeout机制来为商品服务接口的调用超时提供安全保护

一般来说,在调用依赖服务的接口的时候,比较常见的一个问题,就是超时 超时是在一个复杂的分布式系统中,导致不稳定,或者系统抖动,或者出现说大量超时,线程资源hang死,吞吐量大幅度下降,甚至服务崩溃 分布式复杂的系统里,可能你的依赖接口的性能很不稳定,有时候2ms,200ms,2s 如果你不对各种依...

2019-07-16 00:32:15

阅读数 161

评论数 0

原创 15_深入理解线程池隔离技术的设计原则以及动手实战接口限流实验

Hystrix 通过判断线程池或者信号量是否已满,超出容量的请求,直接 Reject 走降级,从而达到限流的作用。 限流是限制对后端的服务的访问量,比如说你对 MySQL、Redis、Zookeeper 以及其它各种后端中间件的资源的访问的限制,其实是为了避免过大的流量直接打死后端的服务,限制服务...

2019-07-15 21:01:20

阅读数 170

评论数 0

原创 高可用服务架构设计(14) - 深入理解hystrix的断路器执行原理以及模拟接口异常时的短路实验

短路器深入的工作原理 1 RequestVolumeThreshold number of requests that must be made within a statisticalWindow before open/close decisions are made using stats...

2019-07-15 19:11:26

阅读数 162

评论数 0

原创 13_开发品牌名称获取接口的基于本地缓存的fallback降级机制

回顾执行流程 创建command 执行command request cache 短路器,如果打开了,fallback降级机制 1 fallback降级机制 Hystrix调用各种接口,或者访问外部依赖,MySQL,Redis,ZooKeeper,Kafka等,出现任何异常...

2019-07-15 01:38:19

阅读数 177

评论数 0

原创 高可用服务架构设计(12) - 基于request cache请求缓存技术优化批量商品数据查询接口

回顾执行流程 1、创建command,2种command类型 2、执行command,4种执行方式 3、查找是否开启了request cache,是否有请求缓存,如果有缓存,直接取用缓存,返回结果 首先,reqeust context(请求上下文) 一般在一个web应用中,Hystrix会在一个f...

2019-07-15 00:59:59

阅读数 170

评论数 0

原创 Spring Cloud Hystrix源码解析实战 - Hystrix执行流程原理

当开始执行command,调用了它的execute()之后,Hystrix内部的执行流程和步骤以及原理是怎样的呢? Hystrix执行时的8大流程及原理图 1 创建HystrixCommand/HystrixObservableCommand 一个HystrixCommand或Hys...

2019-07-15 00:03:20

阅读数 224

评论数 0

原创 高可用服务架构设计(10)-Hystrix的线程池+服务+接口划分以及资源池的容量大小控制

资源隔离两种策略 线程池隔离 信号量隔离 对于资源隔离,做更加深入一些的讲解,除了可以选择隔离策略,对选择的隔离策略,可以做一定的细粒度的控制 1 execution.isolation.strategy 指定HystrixCommand.run()的资源隔离策略 THREAD 基于线程池...

2019-07-14 20:52:56

阅读数 205

评论数 0

原创 高可用服务架构设计(9) - 基于Hystrix的信号量技术对地理位置获取逻辑进行资源隔离与限流

1 线程池隔离 VS 信号量隔离 Hystrix里面,核心的一项功能,就是资源隔离,要解决的最核心的问题,就是将多个依赖服务的调用分别隔离到各自自己的资源池内 避免对某一个依赖服务的调用,因为依赖服务的接口调用的延迟或者失败,导致服务所有的线程资源全部耗费在这个服务的接口调用上 一旦某个服务的线...

2019-07-14 18:20:36

阅读数 172

评论数 0

原创 高可用服务架构设计(8) - 基于hystrix的线程池隔离技术进行商品服务接口的资源隔离

1 pom.xml <dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-core</artifactId> <ver...

2019-07-14 17:17:21

阅读数 179

评论数 0

原创 高可用架构设计(3) -电商商品详情页缓存背景及框架说明

0 导读 我们这个教程,基于hystrix,如何来构建高可用的分布式系统的架构,项目实战 模拟真实业务的这么一个小型的项目,来全程贯穿,用这个项目中的业务场景去一个一个的讲解hystrix高可用的每个技术 纯讲hystrix,脱离实际的业务背景,听起来有点枯燥,大家学完了hystrix以后,...

2019-07-14 00:15:54

阅读数 239

评论数 0

原创 高可用架构设计(2) -hystrix要解决的分布式系统可用性问题以及其设计原则

1 导读 高可用性这个topic,然后咱们会用几讲的时间来讲解一下如何用hystrix,来构建高可用的服务的架构 咱们会用一个真实的项目背景,作为业务场景,来带出来在这个特定的业务场景下,可能会产生哪些各种各样的可用性的一些问题 针对这些问题,我们用hystrix的解决方案和原理是什么 带着大家,...

2019-07-13 23:23:26

阅读数 184

评论数 0

原创 高可用架构设计(1) - hystrix与高可用系统架构:资源隔离+限流+熔断+降级+运维监控

1 hystrix是什么? Netflix(国外最大的类似于,爱奇艺,优酷)视频网站,五六年前,也是,感觉自己的系统,整个网站,经常出故障,可用性不太高 有时候一些vip会员不能支付,有时候看视频就卡顿,看不了视频。。。 影响公司的收入!!! 五六年前,netflix,api team,提...

2019-07-13 22:49:01

阅读数 219

评论数 0

原创 高可用架构设计(0) - 导读

一般来说,互联网的面试,一般都会考察你,什么是分布式系统,高并发,简单的高可用问题 限流、熔断、降级,在分布式的系统架构中,微服务架构中,其实都是最常见、基础和简单的保障系统高可用的手法。dubbo去开发了,spring cloud去开发了,在这个系统的接口调用中,我们是用hystrix去实现一整...

2019-07-13 22:34:09

阅读数 185

评论数 0

原创 突破Java面试(50)-MySQL读写分离及主从同步延时解决方案

1 面试题 有没有做过MySQL读写分离 如何实现MySQL的读写分离 主从复制原理 如何解决MySQL主从同步的延时问题 准备好面对这炮轰式面试了吗? 2 考点分析 高并发阶段,肯定需要做读写分离. 实际上大部分互联网公司/网站/APP,都是读多写少 针对现状,写一个主库,挂着多个从库,然后...

2019-07-13 21:05:33

阅读数 787

评论数 0

原创 突破Java面试(49) - 分库分表后全局id的生成方案

1 面试题 分库分表之后,id主键如何处理? 2 考点分析 其实这是分库分表之后你必然要面对的一个问题,就是id咋生成? 要是分成多个表之后,每个表都是从1开始累加,那肯定不对啊,需要一个全局唯一的id来支持! 下面来看看有哪些可行方案~ 3 数据库自增id 分库分表的id主键问题 系统每次得...

2019-07-13 15:34:12

阅读数 227

评论数 0

原创 突破Java面试(48)-设计可动态扩容缩的分库分表

1 面试题 设计可动态扩容的分库分表 2 考点分析 选一个数据库中间件,然后深入之 设计分库分表的方案,要分成多少个库,每个库分成多少个表 基于已选的数据库中间件,以及在测试环境建立好的分库分表,

2019-07-13 13:16:49

阅读数 361

评论数 0

原创 突破Java面试(47)-分库分表的实践

1 面试题 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上? 2 考点分析 你现在已经明白为啥要分库分表了,你也知道常用的分库分表中间件了,你也设计好你们如何分库分表的方案了(水平拆分、垂直拆分、分表),那问题来了,你接下来该怎么把你那个单库单表的...

2019-07-13 00:10:56

阅读数 194

评论数 0

原创 突破Java面试(46)-分库分表

1 面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的? 2 分析 其实这块肯定是扯到高并发了,因为分库分表一定是为了支撑高并发、数据量大两个问题的。而且现在说实...

2019-07-12 22:32:17

阅读数 236

评论数 0

原创 突破Java面试(45)-高并发系统的架构设计

1 面试题 如何设计一个高并发系统? 2 考点分析 问你这个题目,就必须要使出全身吃奶劲了。为啥? 因为你没看到现在很多公司招聘的jd里都是说啥,有高并发经验者优先! 所以如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿offer基本如探囊取物,没啥问题。 但是如果你要是真是干过高并...

2019-07-12 15:10:59

阅读数 195

评论数 0

原创 突破Java面试(44) - 常用的分布式事务解决方案介绍

1 面试题 分布式事务了解吗?你们如何解决分布式事务问题的? 2 考点分析 只要聊到做了分布式系统,必问分布式事务,若你对分布式事务一无所知的话,确实很坑,起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。 现在面试,分布式系统成了标配,而分布式系统带来的分布式事务也成了标配. ...

2019-07-12 11:58:11

阅读数 780

评论数 0

原创 手把手教你搭建GitHub个人博客网站

1 本地环境 macOS10.14.14 node.js@6.14.4 git@1.9.2 hexo@6.4.0 1.1 安装Node.js node -v 1.2 安装配置Git 查看git是否安装成功 git --version 2 GitHub操作 ...

2019-07-11 14:10:00

阅读数 261

评论数 0

原创 突破Java面试(42) - Redis & ZooKeeper两种分布式锁实现的优劣

1 面试题 一般实现分布式锁都有哪些方式?使用redis如何设计分布式锁?使用zk来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高? 2 考点分析 一般先问问你zk,然后过渡到zk关联的一些问题,比如分布式锁. 因为在分布式系统开发中,分布式锁的使用场景还是很常见的~ 3 Redis分...

2019-07-10 22:51:19

阅读数 286

评论数 0

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