自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

water Wang

每个人都会有觉醒期,只是来的晚或者早罢了。

  • 博客(43)
  • 资源 (15)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Redis系列汇总

Redis 汇总Redis(1): SQL or NoSqlredis(2):redis简介redis(3):安装redis(4):数据结构-String字符串redis(5):数据结构-Hash散列类型redis(6):数据结构-List列表类型redis(8):数据结构-zset有序集合类型redis(7):数据结构-set集合类型redis(9):Redis 5种数据类型vs java类型redis(10):redis五种数据结构应用场景redis(11):事务redis(.

2021-03-13 17:04:01 1709 29

原创 DataX源码阅读汇总

将自己datax的系列文章进行汇总形成目录DataX(1):编译打包使用DataX(2): 通过idea搭建源码阅读+调试环境DataX(3): win环境cmd乱码DataX(4): dDataX.py解读DataX(5):改造升级-自动识别py环境,执行dDataX任务DataX(6):启动步骤解析DataX(7):JobContainer源码解读DataX(8):TaskGroupContainer源码解读DataX(9):Job和TaskGroup的通讯机制DataX(10).

2021-03-10 11:15:29 53043 8

转载 分布式的坑

好文转载 https://mp.weixin.qq.com/s/uti9GxctgiaBbf3jSVUbjQ本篇主要内容如下:前言我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势?看过火影的同学肯定知道漩涡鸣人的招牌忍术:多重影分身之术。这个术有一个特别厉害的地方,过程和心得:多个分身的感受和经历都是相通的。比如 A 分身去找卡卡西(鸣人的老师)请教问题,那么其他分身也会知道 A 分身.

2021-03-30 11:33:26 52

原创 MinIO异常the region is wrong; expecting ‘us-east-1‘

io.minio.errors.ErrorResponseException: The authorization header is malformed; the region is wrong; expecting 'us-east-1'

2021-03-29 10:31:17 51

转载 什么是微服务?

好文转载 https://mp.weixin.qq.com/s/h0FVwPMFQ_lDI6pCtUDMSQ文章结构样式稍有调整1. 单体架构概念单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦合在一个应用中的架构方式。单体架构的特点主要有:打包成一个独立的单元(导成一个唯一的jar包或者是war包)以一个进程的方式来运行优点易于开发: 开发方式简单,IDE 支持好,方便运行和调试。易于测试: 所有功能运行在一个进程中,一旦进程启动,便可以进行.

2021-03-28 11:53:51 93 2

原创 3.5.1 消费者提交分区偏移量

3.5 消费者提交分区偏移量消费者提交偏移量是为了保存分区的消费进度。因为Kafka保证同一个分区只会分配给消费组中的唯一消费者,所以即使发生再平衡后,分区和消费者的所有权关系发生变化,新消费者也可以接着上一个消费者记录的偏移盘位置继续消费消息。但是消费者即使记录了分区的偏移量,仍然无法解决消息被重复消费的问题。例如,消费者l每隔10秒提交一次偏移量,在10秒时提交的偏移量是100,下一次提交的日们可点是20秒。在20秒之前,消费者l又消费了30条消息,然后消费者l突然挂掉了。由于偏移量现在仍然停留在1

2021-03-27 20:57:02 39

原创 3.4.1 Kafka消息流

3.4 消费者消费消息消费者拉取钱程拉取每个分区的数据,会将分区的消息集包装成一个数据块(FetchedDataChunk)放入分区信息的队列中。而每个队列都对应一个消息流(KafkaStream),消费者客户端选代消息流,实际上是迭代每个数据块中消息集的每条消息。如图3-22所示,一个队列包含多个数据块,每个数据块对应一个分区的消息集,一个消息集包含多条消息。消费者迭代器(ConsumerIterator)封装了迭代获取消息的逻辑,客户端不需要面向数据块、消息集这些内部对象,只需要对消费者迭代器循环获

2021-03-26 18:04:11 79 5

原创 3.3.1 拉取线程管理器

3.3 消费者拉取数据消费者连接器通过再平衡操作分配到的分区相当于t作任务,任务需要由工作线程完成。生产者要写消息到服务端的分区,这是通过Sender工作线程完成的,消费者要读服务端分区的消息则通过拉取管理器的拉取线程完成。下面我们来分析消费者客户端拉取消息的具体实现。3.3.1 拉取线程管理器消费者的拉取管理器(ConsumerFetcherManager)管理了当前消费者的所有拉取线程,这些拉取线程会从服务端的分区拉取消息。前面我们知道每个消费者都会分配到分区信息集合,这些分区会被拉取管理器的st

2021-03-26 14:04:44 39 4

原创 3.2.1 分区的所有权

3.2 消费者再平衡操作消费者连接器的核心处理逻辑是ZKRebalanceListener的再平衡操作,它起了承上启下的作用上一节初始化消费者连接器只是“创建了队列和消息流”,再平衡操作会“为消费者重新分配分区”。只有为消费者分配了分区,拉取线程才会开始拉取分区的消息。因为分区要被重新分配,分区的所有者都会发生变化,所以在还没有重新分配分区之前,所有消费者都要停止已有的拉取钱程。同时,分区分配给消费者都会在ZK中记录所有者信息,所以也要先删除ZK上的节点数据。只有和分区相关的ZK所有者、拉取线程

2021-03-26 10:32:09 43

原创 3.1.1创建并初始化消费者连接器

消息系统通常由生产者「producer )、 消费者( consumer )和消息代理( broker ) 三大部分组成,生产者会将消息写入消息代理,消费者会从消息代理中读取消息 。 对于消息代理而育,生产者和消费者都属于客户端:生产者和消费者会发送客户端请求给服务端,服务端的处理分别是存储消息和获取消息,最后服务端返回响应结果给客户端。客户端和服务端的通信涉及网络中不同的节点,客户端和服务端都会有一个连接对象,负责数据的发送和接收:比如客户端会发送请求 、接收响应,服务端会接收请求 、 发送响应 。.

2021-03-25 21:59:05 45

原创 2.2.1 服务端使用接收器接受客户端的连接

紧接着上篇2.2 服务端网络连接服务端网络连接KafkaServer是Kafka服务端的主类,KafkaServer中和网络层有关的服务组件包括SocketServer、KafkaApis和KafkaRequestHandlerPool。后两者都使用了SocketServer暴露出来的请求通道(requestChannel)来处理网络请求。KafkaServer中和服务端相关的组件还有很多,不过由于本章主要关注网络层,所以暂时不关注其他功能组件。相关代码如下:def startup() {.

2021-03-25 14:16:34 39

原创 2.1.1 同步和异步发送消息

紧接着上篇2.2 服务端网络连接服务端网络连接KafkaServer是Kafka服务端的主类,KafkaServer中和网络层有关的服务组件包括SocketServer、KafkaApis和KafkaRequestHandlerPool。后两者都使用了SocketServer暴露出来的请求通道(requestChannel)来处理网络请求。KafkaServer中和服务端相关的组件还有很多,不过由于本章主要关注网络层,所以暂时不关注其他功能组件。相关代码如下:def startup() {.

2021-03-25 10:24:51 45

原创 1.2 Kafka 的设计与实现

下面我们会从3个角度分析Kafka的一些设计思路,并尝试回答下面3个问题。- 如何利用操作系统的优化技术来高效地持久化日志文件和加快数据传输效率?- Kafka的生产者如何批量地发送消息,消费者采用拉取模型带来的优点都有哪些?- Kafka的副本机制如何工作,当故障发生时,怎么确保数据不会丢失?

2021-03-24 21:36:18 32

原创 mac手动安装gradle及配置私服

公司电脑是win,自己电脑是mac,在公司已经配置了gradle,在家里学习又学习配置一遍gradle,不过基本思路类似1. 手动安装 gradle先下载gradle,官网地址:https://gradle.org/releases/ 选择你需要安装的版本(比如我选择4.8.1),然后解压到你的选择的目录下(这里以/Applications/gradle-4.8.1为例)配置gradle环境变量>vim ~/.bash_profile打开后给里面添加export GRADLE_HO.

2021-03-23 21:47:19 33

原创 1.4 源码阅读顺序

重点关注的目录:core :Broker 端工程,保存 Broker 代码。clients :Client 端工程,保存所有 Client 代码以及所有代码都会用到的一些公共代码。streams :Streams 端工程,保存 Kafka Streams 代码。connect :Connect 端工程,保存 Kafka Connect 框架代码以及 File Connector 代码。源码阅读顺序log 包 : log 包中定义了 Broker 底层消息和索引保存机制以及物理格式。 .

2021-03-23 11:09:53 46

原创 1.3 win下Kafka源码环境搭建

本文目的:1 搭建win下kafka调试环境,2,看kafka源码1 本文环境win10专业版JDK 1.8scala 2.13.4gradle 3.5kafka 1.0.0 源码2 前置软件准备2.1 JDK安装省略(如果有本地有多个jdk环境,可以参考这里进行配置切换),检查版本如下2.2 scala安装省略,检查版本如下2.3 gradle安装看这里(注意最好设置好远程私服地址+本地仓库地址),检查版本如下2.4 kafka源码直接从官网下载,我下载.

2021-03-22 12:01:12 25880

原创 win 安装scala

记录win安装scala1 本机环境win 10 专业版需要安装scala 2.11.12 下载安装找自己需要的版本 https://www.scala-lang.org/download/all.html 例如我需要 2.11.11下载安装,全程下一步下一步(安装位置可以自定义)3 安装配置配置SCALA_HOME配置 path。找到系统变量下的"Path"如图,单击编辑。在"变量值"一栏的最前面添加如下的路径: %SCALA_HOME%\bin;.

2021-03-20 14:44:10 55 2

原创 1.1 Kafka 的基本概念

开始kafka之路在0.10版本之前, Kafka仅仅作为一个消息系统,主要用来解决应用解祸 、 异步消息 、 流量削峰等问题。 不过在0 .10版本之后, Kafka提供了连接器与流处理的能力,它也从分布式的消息系统逐渐成为一个流式的数据平台 。 先介绍Kafka流式数据-平台的基本组成,然后分析它的一些架构设计和基本概念,最后通过几个示例快速理解它的一些重要特性。1.1 kafka流式数据平台作为一个流式数据平台,最重要的是要具备下面3个特点 。类似消息系统,提供事件流的发布和订阅,.

2021-03-20 10:50:37 51

原创 redis实战(11):Redis性能监控指标汇总

1 监控指标性能指标:Performance内存指标: Memory基本活动指标:Basic activity持久性指标: Persistence错误指标:Error1.1 性能指标:PerformanceNameDescriptionlatencyRedis响应一个请求的时间instantaneous_ops_per_sec平均每秒处理请求总数hi rate(calculated)缓存命中率(计算出来的1.2 内存指标: Memory

2021-03-19 19:29:00 54

原创 redis实战(10):SLOWLOG命令详解

redis高负载排查时候用到它,仔细研究研究它1 什么是 SLOWLOGSlow log 是 Redis 用来记录查询执行时间的日志系统。查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。2 设置 SLOWLOGSlow log 的行为由两个配置参数(configuratio.

2021-03-19 18:53:24 79

原创 redis实战(9):Redis 高负载排查记录

钉钉收到同事反馈:突然大量用户反馈进入网页很慢,登录服务器一看,Redis调用时间严重超时。太可悲,高速的缓存反而变成了短板,由于数据一直没有返回,导致了请求响应变慢。1 现象前端页面响应慢接口返回慢redis调用严重超时2 排查2.1 环境检查服务器的 CPU 负载内存网络输入输出QPS连接数上面指标查看方式很多,linux命令行、外部软件(Grafana,zabbix)或者redis的info命令都可以查看,不具体演示2.2 redis检查通过 info .

2021-03-19 17:35:07 43

转载 前传(3):Kafka的版本号

版本号实在是太重要了,我觉得它甚至是你日后能否用好 Kafka 的关键。上一期我介绍了目前流行的几种 Kafka 发行版,其实不论是哪种 Kafka,本质上都内嵌了最核心的 Apache Kafka,也就是社区版 Kafka,那今天我们就来说说 Apache Kafka 版本号的问题。在开始之前,我想强调一下后面出现的所有“版本”这个词均表示 Kafka 具体的版本号,而非上一篇中的 Kafka 种类,这一点切记切记!那么现在你可能会有这样的疑问:我为什么需要关心版本号的问题呢?直接使用最新版本.

2021-03-17 15:20:48 48

转载 前传(2):如何选择Kafka发行版?

我们谈了 Kafka 当前的定位问题,Kafka 不再是一个单纯的消息引擎系统,而是能够实现精确一次(Exactly-once)处理语义的实时流处理平台。你可能听说过 Apache Storm、Apache Spark Streaming 亦或是 Apache Flink,它们在大规模流处理领域可都是响当当的名字。令人高兴的是,Kafka 经过这么长时间不断的迭代,现在已经能够稍稍比肩这些框架了。我在这里使用了“稍稍”这个字眼,一方面想表达Kafka 社区对于这些框架心存敬意;另一方面也想表达目前国内鲜有

2021-03-17 15:10:46 1607

转载 前传(1):Kafka 的前生今世

不错的文章,转发下Kafka只是消息引擎系统吗?要搞清楚这个问题,我们不可避免地要了解一下 Apache Kafka 的发展历程。有的时候我们会觉得说了解一个系统或框架的前世今生似乎没什么必要,直接开始学具体的技术不是更快更好吗?其实,不论是学习哪种技术,直接扎到具体的细节中,亦或是从一个很小的点开始学习,你很快就会感到厌烦。为什么呢?因为你虽然快速地搞定了某个技术细节,但无法建立全局的认知观,这会导致你只是在单个的点上有所进展,却没法将其串联成一条线进而扩展成一个面,从而实现系统地学习。我这么.

2021-03-17 14:55:58 62

原创 win安装gradle

为了idea 调试你kafka,本地安装gradle1 环境win102 准备jdk 8 需要提取安装配置好(gradle的前置条件)gradle 安装包 下载binary-only即可3 安装配置将安装包解压到指定路径,比如我在D:\ProgramFiles 下系统环境变量中配置GRADLE_HOME系统环境变量修改Path,在原始内容基础上加入%GRADLE_HOME%\bin;,必须以分号结束4 测试配置是否成功打开一个新的cmd命令窗口或者power.

2021-03-17 14:02:16 39

原创 redis实战(8):页面缓存

在动态生成网页的时候,通常会使用模板语言来简化网页的生成操作。通过浏览数据进行分析,发现自己所处理的95%的web页面每天最多只会改变一次,这些页面的内容实际上并不需要动态生成,而我们的工作就是想办法不再生成这些页面,减少网站再动态生成内容上面说话的时间,可以降低网站相同负载所需的服务器数量,并网网站的速度变得更快。所有标准的python应用框架都提供了在处理请求之前后者之后添加层的能力,这样的层通常叫做中间件或者插件,我们将创建一个这样的层来调用redis缓存函数:对于宇哥不能被缓存的请求,函数直接生产

2021-03-15 11:25:43 69

原创 redis实战(7):购物车

网址(Netscape)公司在20世纪90年代中期先在网络中使用了cookie.这些cookie 最终 变成了我们在上一节讨论的登录会话cookie。cookie 最初的意图在于为网络零件商(web retailer) 提供种购物乍,让用户可以收集他们想要购买的商品。在cookie之前.有过儿种不同的购物车 解决方案,但这些方案个都不太好用。

2021-03-15 10:38:56 59

原创 redis实战(6):登录和cookie缓存

1 检查会话当我们登录互联网服务(比如银行账户或者电子邮件)的时候.这些服务都会使用cookie来记录我们的身份。cookie又少量数据组成,网站会要求我们的浏览器存储这些数据, 并在每次服务发送请求时将这些数据传回给服务。对于用来登录的cookie.有两种常见的方 法可以将登录信息存储在cookie里面:一种是签名(signed ) cookie,另一种是令牌(token) cookie。签名cookie通常会存储用户名,可能还有用户ID、用户最后一次成功登录的时间.以及网 站觉得有用的其他任何信息除

2021-03-13 21:10:23 66

原创 redis实战(5):对文章进行分组

群组功能有两个部分组成,一个不是负责记录文章属于哪个群组,另外一个部分负责取出群组内的文章;1 从群组中添加/删除文章为了记录各个群组都保存了哪些文章,需要为每个群组创建一个集合,将所属同一个群组的文章ID保存到该集合def add_remove_groups(conn,article_id,to_add=[],to_remove[]){ article = "article:"+article_id for group in to_add conn.sadd("group:"+grou.

2021-03-13 16:43:15 83

原创 redis实战(4):发布并获取文章

发布并获取文章

2021-03-13 15:31:00 55

原创 redis实战(3):对文章进行投票

如果一个文章获得200+票(up vote),则是一篇有趣的文章;假如每天发布1k文章,其中50篇是有趣的文章,则把这50篇放到文章列表的前100位,至少一天。

2021-03-13 12:00:02 63 2

转载 redis实战(2):Redis可视化客户端汇总

转自 https://cloud.tencent.com/developer/article/1596714因为 Redis 官方只提供了命令行版的 Redis 客户端 redis-cli,以至于我们在使用的时候会比较麻烦,通常要输入一堆命令,而且命令行版的客户端看起来也不够直观,基于以上两个原因我们需要找一个可视化的 Redis 客户端,下面是我这些年使用过的一些 Redis 可视化客户端,分享给大家。1.RedisClient是否收费:免费项目介绍:Java 编写的 Redis 连接.

2021-03-12 13:45:11 81

原创 redis实战(1):redis三个java客户端选择

jedis、redisson、lettuce比较

2021-03-12 11:42:50 74

原创 redis(28):安全

Redis的作者Salvatore Sanfilippo曾经发表过Redis宣言 ,其中提到Redis以简洁为美。 同样在安全层面Redis也没有做太多的工作。1.可信的环境Redis的安全设计是在“Redis运行在可信环境”这个前提下做出的。在生产环境运行时不 能允许外界直接连接到 Redis 服务器上,而应该通过应用程序进行中转,运行在可信的环境 中是保证Redis安全的最重要方法。Redis的默认配置会接受来自任何地址发送来的请求,即在任何一个拥有公网IP的服务器 上启动 Redis .

2021-03-07 16:08:42 2485 37

原创 redis(27):三种集群模式总结

前面已经看完redis的三种模式,今天比较一下Redis 支持三种集群方案主从复制模式Sentinel(哨兵)模式 Cluster 模式1. 主从复制模式1.1 主从复制的作用通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。 但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服.

2021-03-06 22:21:25 163 9

原创 redis(26):集群模式原理

集群模式原理1. Redis集群方案Redis Cluster 集群模式通常具有 高可用、可扩展性、分布式、容错 等特性。Redis 分布式方案一般有两种:1.1 客户端分区方案客户端 就已经决定数据会被 存储 到哪个 redis 节点或者从哪个 redis 节点 读取数据。其主要思想是采用 哈希算法 将 Redis 数据的 key 进行散列,通过 hash 函数,特定的 key会 映射 到特定的 Redis 节点上。客户端分区方案 的代表为 Redis Sharding,Redis S.

2021-03-06 15:35:49 99

原创 redis(25):集群模式的安装部署

前面已经学习了redis集群模式的一些概念,今天实现win下redis 集群模式的安装部署;1. 规划1.1 环境win10Redis-x64-5.0.10,redis win下安装见这里Ruby Installer v2.3.3 x64 (ruby安装略)1.2 规划设计三主三从主(Master)从(Slave)7100710172007201730073012. 配置新建6个空文件夹最后文件夹结构如下图每个文件夹里.

2021-03-06 10:58:11 2198 12

原创 redis(24):集群

即使使用哨兵,此时的 Redis 集群的每个数据库依然存有集群中的所有数据,从而导致 集群的总数据存储量受限于可用存储内存最小的数据库节点,形成木桶效应。由于Redis中的所有数据都是基于内存存储,这一问题就尤为突出了,尤其是当使用 Redis 做持久化存储服 务使用时。1. 概述对 Redis 进行水平扩容,在旧版 Redis 中通常使用客户端分片来解决这个问题,即启动 多个 Redis 数据库节点,由客户端决定每个键交由哪个数据库节点存储,下次客户端读取该 键时直接到该节点读取。这样可以实现.

2021-03-04 11:35:21 128 10

原创 redis(23):集群之哨兵-部署与使用

上篇文章学习了redis哨兵模式的概念+原理,现在继续学习下哨兵的部署和使用1、部署1.1 规划1.2 环境1.3 配置2、使用

2021-03-04 09:33:31 99 2

原创 redis(22):redis主从模式搭建

Redis的集群有三种模式,分别是主从复制、哨兵模式和Cluster模式。主从复制模式无法做到高可用,因此Redis提供了哨兵模式,以监听各个节点的状态,防止节点故障。sentinel的搭建相比主从复制模式复杂一些,但是相比Cluster模式,又不需要安装如ruby环境,所以还是比较简单的。本文主要涉及搭建主从模式的redis;1、部署1.1 环境win10redis Redis-x64-5.0.101.2 规划redis的安装参考这里一主二从 (原来6379端口的redis留作.

2021-03-03 13:52:41 122 4

kingbase8-8.2.0.jar

kingbase8-8.2.0.jar,是链接人大金仓数据库的jar文件

2021-01-13

JVM脑图-必须名称要十个字

JVM脑图

2021-03-11

java-pdf.rar

java-pdf.rar

2021-03-11

redis-PDF.rar

redis-PDF.rar

2021-03-11

ePass1000ND 开发包.rar

对ukey中双向认证的key进行正删查,ukey插上电脑后自动识别ukey中的证书

2020-10-14

https双向认证ukey管理软件

https双向认证ukey管理软件

2020-10-14

mysql-5.5.20-winx64

mysql-5.5.20-winx64

2016-09-01

mysql_5.6.24_winx64

mysql_5.6.24_winx64

2016-09-01

测试驱动开发(中文完整版-带书签)

测试驱动开发(中文完整版-带书签)

2016-08-30

clean_code(中文完整版)

clean_code(中文完整版)

2016-08-26

单元测试之道Java版:使用JUnit

单元测试之道Java版:使用JUnit

2016-08-30

Pragmatic Unit Testing

Pragmatic Unit Testing

2016-08-30

navicat for mysql破解版

先安装navicat,然后执行patch navicat指向navicat.exe

2016-07-25

sqlyog10绿色版

sqlyog10绿色版

2016-07-25

Navicat for MySQL绿色版

Navicat for MySQL绿色版

2016-09-01

water___Wang的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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