From 8aa85dd33915575a5290e82e104095a99b2bfb24 Mon Sep 17 00:00:00 2001
From: h2pl <362294931@qq.com>
Date: Sat, 29 Apr 2023 17:06:37 +0800
Subject: [PATCH 01/10] add reference
---
.../SpringCloud/SpringCloudConfig.md" | 11 ++++++++++-
.../SpringCloud/SpringCloudConsul.md" | 7 +++++++
.../SpringCloud/SpringCloudEureka.md" | 10 +++++++++-
.../SpringCloud/SpringCloudGateway.md" | 13 +++++++++++--
.../SpringCloud/SpringCloudHystrix.md" | 10 +++++++++-
.../SpringCloud/SpringCloudLoadBalancer.md" | 8 ++++++++
.../SpringCloud/SpringCloudOpenFeign.md" | 9 ++++++++-
.../SpringCloud/SpringCloudRibbon.md" | 10 +++++++++-
.../SpringCloud/SpringCloudSleuth.md" | 10 +++++++++-
.../SpringCloud/SpringCloudZuul.md" | 6 ++++++
.../SpringCloud\346\246\202\350\277\260.md" | 8 +++++++-
...\234\215\345\212\241\346\263\250\345\206\214.md" | 10 +++++++++-
...\236\220\357\274\232\346\246\202\350\247\210.md" | 9 ++++++++-
...\205\215\347\275\256\344\270\255\345\277\203.md" | 9 ++++++++-
...\272\220\347\240\201\345\210\206\346\236\220.md" | 9 ++++++++-
...\272\220\347\240\201\345\210\206\346\236\220.md" | 10 +++++++++-
...\272\220\347\240\201\345\210\206\346\236\220.md" | 7 +++++++
...\272\220\347\240\201\345\210\206\346\236\220.md" | 10 +++++++++-
...\272\220\347\240\201\345\210\206\346\236\220.md" | 10 +++++++++-
...\272\220\347\240\201\345\210\206\346\236\220.md" | 10 +++++++++-
...\272\220\347\240\201\345\210\206\346\236\220.md" | 9 +++++++--
...\272\220\347\240\201\345\210\206\346\236\220.md" | 10 +++++++++-
...\272\220\347\240\201\345\210\206\346\236\220.md" | 7 +++++++
...\272\220\347\240\201\345\210\206\346\236\220.md" | 10 +++++++++-
24 files changed, 201 insertions(+), 21 deletions(-)
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudConfig.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudConfig.md"
index 67c9c5a..cb6a94c 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudConfig.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudConfig.md"
@@ -821,4 +821,13 @@ config:
4\. 使用浏览器再次访问“http://localhost:3366/getConfig”,结果如下图。

-图17:Spring Cloud Bus 定点通知
\ No newline at end of file
+图17:Spring Cloud Bus 定点通知
+
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudConsul.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudConsul.md"
index 730cda5..85fcf19 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudConsul.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudConsul.md"
@@ -239,3 +239,10 @@ Spring Cloud Consul
# 项目源码地址
https://github.com/macrozheng/springcloud-learning
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudEureka.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudEureka.md"
index b1a2d68..960e5c7 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudEureka.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudEureka.md"
@@ -1041,4 +1041,12 @@ enable-self-preservation: false # false
在图 11 中 ,您可以看到以下内容:
* 在 DS Replicas 选项上面出现了红色警告信息“EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.”,出现该信息表明 Eureka 的自我保护机制处于开启状态,且已经被触发。
-* micro-service-cloud-provider-dept-8001 的服务信息依然保存 Eureka Server 服务注册表中,并未被移除。
\ No newline at end of file
+* micro-service-cloud-provider-dept-8001 的服务信息依然保存 Eureka Server 服务注册表中,并未被移除。
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudGateway.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudGateway.md"
index 8b7ad04..e99968d 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudGateway.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudGateway.md"
@@ -496,9 +496,18 @@ eureka:
2\. 重启```micro-service-cloud-gateway-9527,使用浏览器访问“http://eureka7001.com:9527/dept/list”,我们会发现访问报 406 错误,控制台输出如下。
```2021-10-21 16:25:39.450 INFO 19116 --- [ctor-http-nio-4] net.biancheng.c.filter.MyGlobalFilter : Thu Oct 21 16:25:39 CST 2021进入自定义的全局过滤器 MyGlobalFilter
-2021-10-21 16:25:39.451 INFO 19116 --- [ctor-http-nio-4] net.biancheng.c.filter.MyGlobalFilter : 参数 uname 不能为 null!```
+2021-10-21 16:25:39.451 INFO 19116 --- [ctor-http-nio-4] net.biancheng.c.filter.MyGlobalFilter : 参数 uname 不能为 null!
+```
3\. 使用浏览器访问“http://eureka7001.com:9527/dept/list?uname=123”,结果如下图。

-图7:自定义全局网关过滤器
\ No newline at end of file
+图7:自定义全局网关过滤器
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudHystrix.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudHystrix.md"
index adddc7d..1a26d68 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudHystrix.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudHystrix.md"
@@ -1109,4 +1109,12 @@ public class HystrixDashboardConfig {
8\. 使用浏览器多次访问“http://eureka7001.com:8004/dept/hystrix/circuit/1”和 “http://eureka7001.com:8004/dept/hystrix/circuit/-1”,查看 Hystrix 监控页面,如下图。

-图16:Hystrix 监控服务运行情况
\ No newline at end of file
+图16:Hystrix 监控服务运行情况
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudLoadBalancer.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudLoadBalancer.md"
index 9289412..1a35579 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudLoadBalancer.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudLoadBalancer.md"
@@ -336,3 +336,11 @@ LoadBalancer为
# 项目源码地址
https://github.com/macrozheng/springcloud-learning/tree/master/nacos-loadbalancer-service
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudOpenFeign.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudOpenFeign.md"
index d2e6a26..50c14d5 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudOpenFeign.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudOpenFeign.md"
@@ -479,4 +479,11 @@ Logger.Level
2021-10-12 14:33:07.983 DEBUG 13388 --- [p-nio-80-exec-2] n.biancheng.c.service.DeptFeignService : [DeptFeignService#list]
2021-10-12 14:33:07.991 DEBUG 13388 --- [p-nio-80-exec-2] n.biancheng.c.service.DeptFeignService : [DeptFeignService#list] [{"deptNo":1,"deptName":"开发部","dbSource":"bianchengbang_jdbc"},{"deptNo":2,"deptName":"人事部","dbSource":"bianchengbang_jdbc"},{"deptNo":3,"deptName":"财务部","dbSource":"bianchengbang_jdbc"},{"deptNo":4,"deptName":"市场部","dbSource":"bianchengbang_jdbc"},{"deptNo":5,"deptName":"运维部","dbSource":"bianchengbang_jdbc"}]
2021-10-12 14:33:07.991 DEBUG 13388 --- [p-nio-80-exec-2] n.biancheng.c.service.DeptFeignService : [DeptFeignService#list] <--- END HTTP (341-byte body)```
-```
\ No newline at end of file
+```
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudRibbon.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudRibbon.md"
index 7d3f979..74eff0a 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudRibbon.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudRibbon.md"
@@ -654,4 +654,12 @@ public class MicroServiceCloudConsumerDept80Application {

图6:定制负载均衡策略
-通过图 6 中 dbSource 字段取值的变化可以看出,我们定制的负载均衡策略已经生效。
\ No newline at end of file
+通过图 6 中 dbSource 字段取值的变化可以看出,我们定制的负载均衡策略已经生效。
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudSleuth.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudSleuth.md"
index e3f2000..45bc82f 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudSleuth.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudSleuth.md"
@@ -131,4 +131,12 @@ springcloud-learning
## [#](https://www.macrozheng.com/cloud/sleuth.html#%E9%A1%B9%E7%9B%AE%E6%BA%90%E7%A0%81%E5%9C%B0%E5%9D%80)项目源码地址
-[https://github.com/macrozheng/springcloud-learning](https://github.com/macrozheng/springcloud-learning)
\ No newline at end of file
+[https://github.com/macrozheng/springcloud-learning](https://github.com/macrozheng/springcloud-learning)
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudZuul.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudZuul.md"
index 7bca86e..9040110 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudZuul.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloudZuul.md"
@@ -384,3 +384,9 @@ Zuul
#项目源码地址
https://github.com/macrozheng/springcloud-learning
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloud\346\246\202\350\277\260.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloud\346\246\202\350\277\260.md"
index fb27ab5..a525595 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloud\346\246\202\350\277\260.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud/SpringCloud\346\246\202\350\277\260.md"
@@ -134,4 +134,10 @@ Spring Boot
……
}
-````
\ No newline at end of file
+````
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\346\234\215\345\212\241\346\263\250\345\206\214.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\346\234\215\345\212\241\346\263\250\345\206\214.md"
index 3569058..1a59865 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\346\234\215\345\212\241\346\263\250\345\206\214.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\346\234\215\345\212\241\346\263\250\345\206\214.md"
@@ -346,4 +346,12 @@ task
也就是在对象初始化的时候就进行启动一个线程池,去运行notifier对应的方法。这个run方法就是这样run的。启动后就会实时监听异步队列。这样写的好处,就是将写和处理完全隔离了。通过监听高性能的内存队列,来处理这个事情,他这样的好处,1、提高性能
-
\ No newline at end of file
+
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\346\246\202\350\247\210.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\346\246\202\350\247\210.md"
index 0bc283c..dc517a0 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\346\246\202\350\247\210.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\346\246\202\350\247\210.md"
@@ -491,4 +491,11 @@ NACOS
当然,也会存在一些不可忽视的缺点,比如,注释过少,代码还有很大的重构空间,tenant和namespace两个概念混淆使用。
-关于Spring Cloud Alibaba Nacos的介绍到此就结束了,希望对你有所帮助。
\ No newline at end of file
+关于Spring Cloud Alibaba Nacos的介绍到此就结束了,希望对你有所帮助。
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\351\205\215\347\275\256\344\270\255\345\277\203.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\351\205\215\347\275\256\344\270\255\345\277\203.md"
index 2ed31c8..7515d8b 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\351\205\215\347\275\256\344\270\255\345\277\203.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudAlibabaNacos\346\272\220\347\240\201\345\210\206\346\236\220\357\274\232\351\205\215\347\275\256\344\270\255\345\277\203.md"
@@ -256,4 +256,11 @@ public class ConfigServerDemo {
作者:政采云电子卖场团队
链接:https://juejin.cn/post/6999814668390760484
来源:稀土掘金
-著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
\ No newline at end of file
+著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudRocketMQ\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudRocketMQ\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 35fcfef..9be0e22 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudRocketMQ\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudRocketMQ\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -524,4 +524,11 @@ public synchronized void start() throws MQClientException {
作者:枫叶红花
链接:https://www.jianshu.com/p/8dd4cfeae39d
来源:简书
-著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
\ No newline at end of file
+著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudSeata\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudSeata\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 1287eef..19ce963 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudSeata\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudSeata\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -994,4 +994,12 @@ public BranchStatus branchRollback(BranchType branchType, String xid, long branc
-最终回滚方法调用的是UndoLogManager.undo(dataSourceProxy, xid, branchId);-开源基础软件社区")判断undolog是否存在,存在则删除对应undolog,并一起提交,到此seata的AT模式源码解析完毕。
\ No newline at end of file
+最终回滚方法调用的是UndoLogManager.undo(dataSourceProxy, xid, branchId);-开源基础软件社区")判断undolog是否存在,存在则删除对应undolog,并一起提交,到此seata的AT模式源码解析完毕。
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudSentinel\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudSentinel\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 0d6c22c..9fc4976 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudSentinel\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloudAlibaba\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudSentinel\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -650,3 +650,10 @@ public void entry(Context context, ResourceWrapper resourceWrapper, DefaultNode
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudConfig\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudConfig\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 60d1f61..4ae8cc8 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudConfig\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudConfig\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -1038,4 +1038,12 @@ if (!remoteProperties.isAllowOverride() || (!remoteProperties.isOverrideNone()
作者:拥抱孤独_to
链接:https://www.jianshu.com/p/60c6ab0e79d5
来源:简书
-著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
\ No newline at end of file
+著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudEureka\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudEureka\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 8ad8c31..0236a13 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudEureka\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudEureka\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -1773,4 +1773,12 @@ Value getValue(final Key key, boolean useReadOnlyCache) {
}
return payload;
}
-```
\ No newline at end of file
+```
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudGateway\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudGateway\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 9a6c22c..80db850 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudGateway\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudGateway\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -404,4 +404,12 @@ public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
// 6\. 执行过滤器链中的其他过滤请求
return chain.filter(exchange);
}
-```
\ No newline at end of file
+```
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudHystrix\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudHystrix\346\272\220\347\240\201\345\210\206\346\236\220.md"
index c9323b5..87b59fb 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudHystrix\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudHystrix\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -1183,5 +1183,10 @@ circuitBreaker.allowRequest()
最终调用到我们自己的业务逻辑。
-
-下面总结一下我们整体的业务逻辑图:
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudLoadBalancer\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudLoadBalancer\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 9704860..f66f6ba 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudLoadBalancer\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudLoadBalancer\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -659,4 +659,12 @@ public class CustomLoadBalancerConfiguration {

-
\ No newline at end of file
+
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudOpenFeign\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudOpenFeign\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 7a54f90..17db744 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudOpenFeign\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudOpenFeign\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -893,3 +893,10 @@ Response convertResponse(HttpURLConnection connection, Request request) throws I
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
diff --git "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudRibbon\346\272\220\347\240\201\345\210\206\346\236\220.md" "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudRibbon\346\272\220\347\240\201\345\210\206\346\236\220.md"
index 57606b3..d06f945 100644
--- "a/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudRibbon\346\272\220\347\240\201\345\210\206\346\236\220.md"
+++ "b/docs/Spring\345\205\250\345\256\266\346\241\266/SpringCloud\346\272\220\347\240\201\345\210\206\346\236\220/SpringCloudRibbon\346\272\220\347\240\201\345\210\206\346\236\220.md"
@@ -944,4 +944,12 @@ public interface ServerList {
getInitialListOfServers是获取初始化的服务列表。
getUpdatedListOfServers是获取更新的服务列表。
ServerList有多个实现类,具体用的哪个呢,可以在
-EurekaRibbonClientConfiguration类中找到,这是Ribbon和Eureka结合的自动配置类,但是目前我们没有整合Eureka,是通过配置文件配置,所以会走ConfigurationBasedServerList类。
\ No newline at end of file
+EurekaRibbonClientConfiguration类中找到,这是Ribbon和Eureka结合的自动配置类,但是目前我们没有整合Eureka,是通过配置文件配置,所以会走ConfigurationBasedServerList类。
+
+# 参考文章
+https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF
+https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA
+https://juejin.cn/post/6931922457741770760
+https://github.com/D2C-Cai/herring
+http://c.biancheng.net/springcloud
+https://github.com/macrozheng/springcloud-learning
\ No newline at end of file
From 84e574939817d4c3e42e95c322ccf755791146e0 Mon Sep 17 00:00:00 2001
From: h2pl <362294931@qq.com>
Date: Thu, 25 May 2023 21:47:10 +0800
Subject: [PATCH 02/10] kafka series
---
...57\274\210Java\347\211\210\357\274\211.md" | 173 +++++
...er\347\232\204\350\277\207\347\250\213.md" | 112 +++
...7\274\232Kafka\344\273\213\347\273\215.md" | 122 ++++
...20\346\200\273\347\273\223\347\257\207.md" | 636 ++++++++++++++++++
...15\347\275\256\346\200\273\347\273\223.md" | 517 ++++++++++++++
...66\346\236\204\344\273\213\347\273\215.md" | 298 ++++++++
...45\344\275\234\345\216\237\347\220\206.md" | 127 ++++
...25\351\242\230\345\244\247\345\205\250.md" | 518 ++++++++++++++
8 files changed, 2503 insertions(+)
create mode 100644 "docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka \345\277\253\351\200\237\344\270\212\346\211\213\357\274\210Java\347\211\210\357\274\211.md"
create mode 100644 "docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\344\270\200\346\235\241\346\266\210\346\201\257\345\255\230\345\210\260broker\347\232\204\350\277\207\347\250\213.md"
create mode 100644 "docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\344\273\213\347\273\215.md"
create mode 100644 "docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\345\216\237\347\220\206\345\210\206\346\236\220\346\200\273\347\273\223\347\257\207.md"
create mode 100644 "docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\345\270\270\350\247\201\345\221\275\344\273\244\345\217\212\351\205\215\347\275\256\346\200\273\347\273\223.md"
create mode 100644 "docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\346\236\266\346\236\204\344\273\213\347\273\215.md"
create mode 100644 "docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\347\232\204\351\233\206\347\276\244\345\267\245\344\275\234\345\216\237\347\220\206.md"
create mode 100644 "docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\351\207\215\350\246\201\347\237\245\350\257\206\347\202\271+\351\235\242\350\257\225\351\242\230\345\244\247\345\205\250.md"
diff --git "a/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka \345\277\253\351\200\237\344\270\212\346\211\213\357\274\210Java\347\211\210\357\274\211.md" "b/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka \345\277\253\351\200\237\344\270\212\346\211\213\357\274\210Java\347\211\210\357\274\211.md"
new file mode 100644
index 0000000..b4bc0a9
--- /dev/null
+++ "b/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka \345\277\253\351\200\237\344\270\212\346\211\213\357\274\210Java\347\211\210\357\274\211.md"
@@ -0,0 +1,173 @@
+**鍓嶈█**
+
+涓婄瘒鏂囩珷璁茶В浜 Kafka 鐨勫熀纭姒傚康鍜屾灦鏋勶紝浜嗚В浜嗗熀鏈蹇典箣鍚庯紝蹇呴』寰楀疄璺典竴娉簡锛屾墍璋撯滃疄璺垫墠鏄楠岀湡鐞嗙殑鍞竴鍔炴硶鈥濓紝鍚庣画绯诲垪鍏充簬 Kafka 鐨勬枃绔犻兘浠 kafka_2.11-0.9.0.0 涓轰緥锛涘彟澶栦负浜嗚澶у蹇熷叆闂紝鏈枃鍙彁渚涘崟鏈虹増鐨勫畨瑁呭疄鎴樻暀绋嬶紝濡傛灉鏈夋兂灏濊瘯闆嗙兢鏂规鐨勶紝鍚庨潰鍦ㄥ嚭涓绡囬泦缇ゅ畨瑁呯殑鏁欑▼锛屽簾璇濅笉澶氳浜嗭紝鐩存帴寮骞层
+
+## **瀹夎**
+
+### **1\. 涓嬭浇**
+
+鐗堟湰鍙凤細kafka_2.11-0.9.0.0
+
+涓嬭浇鍦板潃锛歔http://kafka.apache.org/downloads](https://link.zhihu.com/?target=http%3A//kafka.apache.org/downloads)
+
+### **2\. 瀹夎**
+
+
+
+```
+# 瀹夎鐩綍
+$ pwd
+/Users/my/software/study
+
+# 鍑忓帇
+$ sudo tar -zxvf kafka_2.11-0.9.0.0.tgz
+
+# 閲嶅懡鍚
+$ sudo mv kafka_2.11-0.9.0.0.tgz kafka-0.9
+
+# 鏌ョ湅鐩綍缁撴瀯
+$ cd kafka-0.9 && ls
+LICENSE NOTICE bin config libs site-docs
+
+# 鐩綍缁撴瀯浠嬬粛锛
+# bin: 瀛樻斁kafka 瀹㈡埛绔拰鏈嶅姟绔殑鎵ц鑴氭湰
+# config: 瀛樻斁kafka鐨勪竴浜涢厤缃枃浠
+# libs: 瀛樻斁kafka杩愯鐨勭殑jar鍖
+# site-docs: 瀛樻斁kafka鐨勯厤缃枃妗h鏄
+
+# 閰嶇疆鐜鍙橀噺锛屾柟渚垮湪浠绘剰鐩綍涓嬭繍琛宬afka鍛戒护
+# 鍗氫富浣跨敤鐨凪ac锛屾墍浠ラ厤缃湪浜 ~/.bash_profile鏂囦欢涓紝
+# Linux涓垯閰嶇疆鍦 ~/.bashrc 鎴栬 ~/.zshrc鏂囦欢涓
+$ vim ~/.bash_profile
+
+export KAFKA_HOME=/Users/haikuan1/software/study/kafka-0.9
+export PATH=$PATH:$JAVA_HOME:$KAFKA_HOME/bin
+
+# 浣垮緱鐜鍙橀噺鐢熸晥
+$ source ~/.bash_profile
+
+```
+
+
+
+### **3.杩愯**
+
+### **3.1 鍚姩 zookeeper**
+
+
+
+```
+# 鍚姩zookeeper锛屽洜涓簁afka鐨勫厓鏁版嵁闇瑕佷繚瀛樺埌zookeeper涓
+$ bin/zookeeper-server-start.sh config/zookeeper.properties
+
+# 鑻ュ嚭鐜板涓嬩俊鎭紝鍒欒瘉鏄巣ookeeper鍚姩鎴愬姛浜
+[2020-04-25 16:23:44,493] INFO Server environment:user.dir=/Users/haikuan1/software/study/kafka-0.10 (org.apache.zookeeper.server.ZooKeeperServer)
+[2020-04-25 16:23:44,505] INFO tickTime set to 3000 (org.apache.zookeeper.server.ZooKeeperServer)
+[2020-04-25 16:23:44,505] INFO minSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer)
+[2020-04-25 16:23:44,505] INFO maxSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer)
+[2020-04-25 16:23:44,548] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
+
+```
+
+
+
+### **3.2 鍚姩 Kafka server**
+
+
+
+```
+# 浠ュ畧鎶よ繘绋嬬殑鏂瑰紡鍚姩kafka鏈嶅姟绔紝鍘绘帀 -daemon 鍙傛暟鍒欏叧闂綋鍓嶇獥鍙f湇鍔$鑷姩閫鍑
+$ bin/kafka-server-start.sh -daemon config/server.properties
+
+```
+
+
+
+### **3.3 kafka 鍩虹鍛戒护浣跨敤**
+
+
+
+```
+# 1\. 鍒涘缓涓涓猼opic
+# --replication-factor锛氭寚瀹氬壇鏈釜鏁
+# --partition锛氭寚瀹歱artition涓暟
+# --topic锛氭寚瀹歵opic鐨勫悕瀛
+$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partition 1 --topic mytopic
+
+# 2\. 鏌ョ湅鍒涘缓鎴愬姛鐨則opic
+$ kafka-topics.sh --list --zookeeper localhost:2181
+
+# 3\. 鍒涘缓鐢熶骇鑰呭拰娑堣垂鑰
+
+# 3.1 鍚姩kafka娑堣垂绔
+# --from-beginning锛氫粠澶村紑濮嬫秷璐癸紝璇ョ壒鎬т篃琛ㄦ槑kafka娑堟伅鍏锋湁鎸佷箙鎬
+$ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic mytopic --from-beginning
+
+# 3.2 鍚姩kafka鐢熶骇绔
+# --broker-list锛氬綋鍓嶇殑Broker鍒楄〃锛屽嵆鎻愪緵鏈嶅姟鐨勫垪琛
+$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytopic
+
+```
+
+
+
+
+
+
+
+
+
+
+### **4.浣跨敤 Java 杩炴帴 kafka 杩涜娴嬭瘯**
+
+### **4.1 鍒涘缓涓涓 maven 宸ョ▼锛屽紩鍏ュ涓 pom 渚濊禆**
+
+
+
+```
+
+ org.apache.kafka
+ kafka-clients
+ 0.9.0.0
+
+
+
+ org.apache.kafka
+ kafka_2.11
+ 0.9.0.0
+
+
+```
+
+
+
+### **4.2 娑堣垂鑰呯浠g爜**
+
+
+
+
+
+
+
+
+### **4.3 鐢熶骇鑰呯浠g爜**
+
+
+
+
+
+
+
+
+### **4.4 娑堣垂鑰呯鏁堟灉鍥**
+
+
+
+
+
+
+
+
+### **5.鎬荤粨**
+
+鏈枃浠嬬粛浜 kafka 鍗曟満鐗堝畨瑁呭強绠鍗曞懡浠や娇鐢紝鐒跺悗浣跨敤 Java 瀹炵幇浜嗙敓浜ц呭拰娑堣垂鑰呯殑绠鍗曞姛鑳斤紝铏界劧鍐呭鍙兘姣旇緝绠鍗曪紝浣嗚繕鏄**寮虹儓寤鸿澶у鎵嬪姩鍘诲疄璺典竴涓**锛屼粠鑰屽 kafka 鐨勬灦鏋勬湁涓涓洿娣卞叆鐨勭悊瑙c
\ No newline at end of file
diff --git "a/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\344\270\200\346\235\241\346\266\210\346\201\257\345\255\230\345\210\260broker\347\232\204\350\277\207\347\250\213.md" "b/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\344\270\200\346\235\241\346\266\210\346\201\257\345\255\230\345\210\260broker\347\232\204\350\277\207\347\250\213.md"
new file mode 100644
index 0000000..6af0292
--- /dev/null
+++ "b/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\344\270\200\346\235\241\346\266\210\346\201\257\345\255\230\345\210\260broker\347\232\204\350\277\207\347\250\213.md"
@@ -0,0 +1,112 @@
+**鍓嶈█**
+
+缁忚繃涓婄瘒鏂囩珷鐨勭畝鍗曞疄鎴樹箣鍚庯紝**浠婂ぉ鏉ヨ亰鑱婄敓浜ц呭皢娑堟伅浠庡鎴风鍙戦佸埌 Broker 涓婅儗鍚庡彂鐢熶簡鍝簺鏁呬簨**锛岀湅涓嶇湅鐢变綘锛屼絾鏄垜淇濊瘉鍙互鏈瘒鏂囩珷浣犱竴瀹氬彲浠ュ鍒板簲鐢ㄨ儗鍚庣殑涓浜涘疄璐ㄤ笢瑗裤
+
+鏈枃鎴戜滑浠庝互涓 4 涓柟闈㈡潵鎺㈣涓嬩竴鏉℃秷鎭浣曡鍑嗙‘鐨勫彂閫佸埌 Broker 鐨 partition 涓娿
+
+**1\. 瀹㈡埛绔粍浠**
+
+**2\. 瀹㈡埛绔紦瀛樺瓨鍌ㄦā鍨**
+
+**3\. 纭畾娑堟伅鐨 partition 浣嶇疆**
+
+**4\. 鍙戦佺嚎绋嬬殑宸ヤ綔鍘熺悊**
+
+* * *
+
+## **瀹㈡埛绔粍浠**
+
+* **KafkaProducer:**
+
+KafkaProducer 鏄竴涓敓浜ц呭鎴风鐨勮繘绋嬶紝閫氳繃璇ュ璞″惎鍔ㄧ敓浜ц呮潵鍙戦佹秷鎭
+
+* **RecordAccumulator:**
+
+RecordAccumulator 鏄竴涓褰曟敹闆嗗櫒锛岀敤浜庢敹闆嗗鎴风鍙戦佺殑娑堟伅锛屽苟灏嗘敹闆嗗埌鐨勬秷鎭殏瀛樺埌瀹㈡埛绔紦瀛樹腑銆
+
+* **Sender:**
+
+Sender 鏄竴涓彂閫佺嚎绋嬶紝璐熻矗璇诲彇璁板綍鏀堕泦鍣ㄤ腑缂撳瓨鐨勬壒閲忔秷鎭紝缁忚繃涓浜涗腑闂磋浆鎹㈡搷浣滐紝灏嗚鍙戦佺殑鏁版嵁鍑嗗濂斤紝鐒跺悗浜ょ敱 Selector 杩涜缃戠粶浼犺緭銆
+
+* **Selector:**
+
+Selector 鏄竴涓夋嫨鍣紝鐢ㄤ簬澶勭悊缃戠粶杩炴帴鍜岃鍐欏鐞嗭紝浣跨敤缃戠粶杩炴帴澶勭悊瀹㈡埛绔笂鐨勭綉缁滆姹傘
+
+閫氳繃浣跨敤浠ヤ笂鍥涘ぇ缁勪欢鍗冲彲瀹屾垚瀹㈡埛绔秷鎭殑鍙戦佸伐浣溿傛秷鎭湪缃戠粶涓紶杈撶殑鏂瑰紡鍙兘閫氳繃浜岀骇鍒剁殑鏂瑰紡锛屾墍浠ラ鍏堥渶瑕佸皢娑堟伅搴忓垪鍖栦负浜岃繘鍒跺舰寮忕紦瀛樺湪瀹㈡埛绔紝kafka 浣跨敤浜嗗弻绔槦鍒楃殑鏂瑰紡灏嗘秷鎭紦瀛樿捣鏉ワ紝鐒跺悗浣跨敤鍙戦佺嚎绋嬶紙Sender锛夎鍙栭槦鍒椾腑鐨勬秷鎭氦缁 Selector 杩涜缃戠粶浼犺緭鍙戦佺粰鏈嶅姟绔紙Broker锛
+
+
+
+
+
+
+
+
+浠ヤ笂涓哄彂閫佹秷鎭殑涓绘祦绋嬶紝闄勪笂閮ㄥ垎婧愮爜渚涘ぇ瀹跺弬鑰冿紝鎺ヤ笅鏉ュ垎鏋愪笅鍑犱釜闈炲父閲嶈娴佺▼鐨勫叿浣撳疄鐜板師鐞嗐
+
+* * *
+
+## **瀹㈡埛绔紦瀛樺瓨鍌ㄦā鍨**
+
+
+
+
+
+
+
+
+浠庝笂鍥惧彲浠ョ湅鍑猴紝涓鏉℃秷鎭鍏堥渶瑕佺‘瀹氳琚瓨鍌ㄥ埌閭d釜 partition 瀵瑰簲鐨勫弻绔槦鍒椾笂锛涘叾娆★紝瀛樺偍娑堟伅鐨勫弻绔槦鍒楁槸浠ユ壒鐨勭淮搴﹀瓨鍌ㄧ殑锛屽嵆 N 鏉℃秷鎭粍鎴愪竴鎵癸紝涓鎵规秷鎭渶澶氬瓨鍌 N 鏉★紝瓒呰繃鍚庡垯鏂板缓涓涓粍鏉ュ瓨鍌ㄦ柊娑堟伅锛涘叾娆★紝鏂版潵鐨勬秷鎭绘槸浠庡乏渚у啓鍏ワ紝鍗宠秺闈犲乏渚х殑娑堟伅浜х敓鐨勬椂闂磋秺鏅氾紱鏈鍚庯紝鍙湁褰撲竴鎵规秷鎭噾澶 N 鏉″悗鎵嶄細鍙戦佺粰 Broker锛屽惁鍒欎笉浼氬彂閫佸埌 Broker 涓娿
+
+浜嗚В浜嗗鎴风瀛樺偍妯″瀷鍚庯紝鏉ユ帰璁ㄤ笅纭畾娑堟伅鐨 partition锛堝垎鍖猴級浣嶇疆锛
+
+* * *
+
+## **纭畾娑堟伅鐨 partition 浣嶇疆**
+
+娑堟伅鍙垎涓轰袱绉嶏紝涓绉嶆槸鎸囧畾浜 key 鐨勬秷鎭紝涓绉嶆槸娌℃湁鎸囧畾 key 鐨勬秷鎭
+
+瀵逛簬鎸囧畾浜 key 鐨勬秷鎭紝partition 浣嶇疆鐨勮绠楁柟寮忎负锛**`Utils.murmur2(key) % numPartitions`**锛屽嵆鍏堝 key 杩涜鍝堝笇璁$畻锛岀劧鍚庡湪浜 partition 涓暟姹備綑锛屼粠鑰屽緱鍒拌鏉℃秷鎭簲璇ヨ瀛樺偍鍦ㄥ摢涓 partition 涓娿
+
+瀵逛簬娌℃湁鎸囧畾 key 鐨勬秷鎭紝partition 浣嶇疆鐨勮绠楁柟寮忎负锛**閲囩敤 round-robin 鏂瑰紡纭畾 partition 浣嶇疆**锛屽嵆閲囩敤杞鐨勬柟寮忥紝骞冲潎鐨勫皢娑堟伅鍒嗗竷鍒颁笉鍚岀殑 partition 涓婏紝浠庤岄伩鍏嶆煇浜 partition 鏁版嵁閲忚繃澶у奖鍝 Broker 鍜屾秷璐圭鎬ц兘銆
+
+### **娉ㄦ剰**
+
+鐢变簬 partition 鏈変富鍓殑鍖哄垎锛屾澶勫弬涓庤绠楃殑 partition 鏁伴噺鏄綋鍓嶆湁涓 partition 鐨勬暟閲忥紝鍗冲鏋滄煇涓 partition 鏃犱富鐨勬椂鍊欙紝鍒欐 partition 鏄笉鑳藉杩涜鏁版嵁鍐欏叆鐨勩
+
+绋嶅井瑙i噴涓涓嬶紝涓诲壇 partition 鐨勬満鍒舵槸涓轰簡鎻愰珮 kafka 绯荤粺鐨勫閿欐х殑锛屽嵆褰撴煇涓 Broker 鎰忓瀹曟満鏃讹紝鍦ㄦ Broker 涓婄殑涓 partition 鐘舵佷负涓嶅彲璇诲啓鏃讹紙鍙湁涓 partition 鍙澶栨彁渚涜鍐欐湇鍔★紝鍓 partition 鍙湁鏁版嵁澶囦唤鐨勫姛鑳斤級锛宬afka 浼氫粠涓 partition 瀵瑰簲鐨 N 涓壇 partition 涓寫閫変竴涓紝骞跺皢鍏剁姸鎬佹敼涓轰富 partition锛屼粠鑰岀户缁澶栨彁渚涜鍐欐搷浣溿
+
+娑堟伅琚‘瀹氬垎閰嶅埌鏌愪釜 partition 瀵瑰簲璁板綍鏀堕泦鍣紙鍗冲弻绔槦鍒楋級鍚庯紝鎺ヤ笅鏉ワ紝鍙戦佺嚎绋嬶紙Sender锛変粠璁板綍鏀堕泦鍣ㄤ腑鏀堕泦婊¤冻鏉′欢鐨勬壒鏁版嵁鍙戦佺粰 Broker锛岄偅涔堝彂閫佺嚎绋嬫槸濡備綍鏀堕泦婊¤冻鏉′欢鐨勬壒鏁版嵁鐨勶紵鎵规暟鎹槸鎸夌収 partition 缁村害鍙戦佺殑杩樻槸鎸夌収 Broker 缁村害鍙戦佹暟鎹殑锛
+
+* * *
+
+## **鍙戦佺嚎绋嬬殑宸ヤ綔鍘熺悊**
+
+Sender 绾跨▼鐨勪富瑕佸伐浣滄槸鏀堕泦婊¤冻鏉′欢鐨勬壒鏁版嵁锛屼綍涓烘弧瓒虫潯浠剁殑鎵规暟鎹紵缂撳瓨鏁版嵁鏄互鎵圭淮搴﹀瓨鍌ㄧ殑锛屽綋涓鎵规暟鎹噺杈惧埌鎸囧畾鐨 N 鏉℃椂锛屽氨婊¤冻鍙戦佺粰 Broker 鐨勬潯浠朵簡銆
+
+partition 缁村害鍜 Broker 缁村害鍙戦佹秷鎭ā鍨嬪姣斻
+
+
+
+
+
+
+
+
+浠庡浘涓彲浠ョ湅鍑猴紝宸︿晶鎸夌収 partition 缁村害鍙戦佹秷鎭紝姣忎釜 partition 閮介渶瑕佸拰 Broker 寤鸿繛锛屾诲叡鍙戠敓浜嗗洓娆$綉缁滆繛鎺ャ傝屽彸渚у皢鍒嗗竷鍦ㄥ悓涓涓 Broker 鐨 partition 鎸夌粍鑱氬悎鍚庡湪涓 Broker 寤鸿繛锛屽彧闇瑕佷袱娆$綉缁滆繛鎺ュ嵆鍙傛墍浠 Kafka 閫夋嫨鍙充晶鐨勬柟寮忋
+
+### **Sender 鐨勪富瑕佸伐浣**
+
+绗竴姝ワ細鎵弿璁板綍鏀堕泦鍣ㄤ腑婊¤冻鏉′欢鐨勬壒鏁版嵁锛岀劧鍚庡皢 partition -> 鎵规暟鎹槧灏勮浆鎹㈡垚 BrokerId -> N 鎵规暟鎹殑鏄犲皠銆傜浜屾锛歋ender 绾跨▼浼氫负姣忎釜 BrokerId 鍒涘缓涓涓鎴风璇锋眰锛岀劧鍚庡皢璇锋眰浜ょ粰 NetWorkClient锛岀敱 NetWrokClient 鍘荤湡姝e彂閫佺綉缁滆姹傚埌 Broker銆
+
+### **NetWorkClient 鐨勫伐浣滃唴瀹**
+
+Sender 绾跨▼鍑嗗濂借鍙戦佺殑鏁版嵁鍚庯紝浜ょ敱 NetWorkClient 鏉ヨ繘琛岀綉缁滅浉鍏虫搷浣溿備富瑕佸寘鎷鎴风涓庢湇鍔$鐨勫缓杩炪佸彂閫佸鎴风璇锋眰銆佹帴鍙楁湇鍔$鍝嶅簲銆傚畬鎴愬涓婁竴绯诲垪鐨勫伐浣滀富瑕佺敱濡備笅鏂规硶瀹屾垚銆
+
+1. reday()鏂规硶銆備粠璁板綍鏀堕泦鍣ㄨ幏鍙栧噯澶囧畬姣曠殑鑺傜偣锛屽苟杩炴帴鎵鏈夊噯澶囧ソ鐨勮妭鐐广
+2. send()鏂规硶銆備负姣忎釜鑺傜偣鍒涘缓涓涓鎴风璇锋眰锛岀劧鍚庡皢璇锋眰鏆傛椂瀛樺埌鑺傜偣瀵瑰簲鐨 Channel锛堥氶亾锛変腑銆
+3. poll()鏂规硶銆傝鏂规硶浼氱湡姝h疆璇㈢綉缁滆姹傦紝鍙戦佽姹傜粰鏈嶅姟绔妭鐐瑰拰鎺ュ彈鏈嶅姟绔殑鍝嶅簲銆
+
+* * *
+
+## **鎬荤粨**
+
+浠ヤ笂锛屽嵆涓虹敓浜ц呭鎴风鐨勪竴鏉℃秷鎭粠鐢熶骇鍒板彂閫佸埌 Broker 涓婄殑鍏ㄨ繃绋嬨傜幇鍦ㄦ槸涓嶆槸灏卞緢娓呮櫚浜嗗憿锛熶篃璁告湁浜涙湅鍙嬩細姣旇緝鐤戞儜瀹冪殑**缃戠粶璇锋眰妯″瀷鏄粈涔堟牱鐨**锛屼綔鑰呭氨鐚滀綘浼氫綘浼氶棶锛屼笅涓绡囨垜浠氨鏉ユ墥寮瀹冪殑绁炵闈㈢罕鐪嬬湅鍏剁┒绔熸槸鎬庝箞瀹炵幇鐨勶紝鏁鏈熷緟銆
\ No newline at end of file
diff --git "a/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\344\273\213\347\273\215.md" "b/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\344\273\213\347\273\215.md"
new file mode 100644
index 0000000..bb4fd3b
--- /dev/null
+++ "b/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\344\273\213\347\273\215.md"
@@ -0,0 +1,122 @@
+## 涓.瀹樼綉Kafka浠嬬粛
+
+## 1.1 浠涔堟槸浜嬩欢娴?
+
+浜嬩欢娴佹槸鐩稿綋浜庝汉浣撲腑鏋㈢缁忕郴缁熺殑鏁板瓧绯荤粺銆傚畠鏄滄案杩滃湪绾库濅笘鐣岀殑鎶鏈熀纭锛屽湪杩欎釜涓栫晫閲岋紝浼佷笟瓒婃潵瓒婂鍦扮敱杞欢瀹氫箟鍜岃嚜鍔ㄥ寲锛岃蒋浠剁殑鐢ㄦ埛涔熸洿澶氬湴鏄蒋浠躲
+
+浠庢妧鏈笂璁诧紝浜嬩欢娴佹槸鎸囦互浜嬩欢娴佺殑褰㈠紡浠庢暟鎹簱銆佷紶鎰熷櫒銆佺Щ鍔ㄨ澶囥佷簯鏈嶅姟鍜岃蒋浠跺簲鐢ㄧ瓑浜嬩欢婧愬疄鏃舵崟鑾锋暟鎹殑瀹炶返;鎸佷箙鍦板瓨鍌ㄨ繖浜涗簨浠舵祦浠ュ浠ュ悗妫绱;瀹炴椂鍜屽洖椤炬у湴鎿嶄綔銆佸鐞嗗拰鍝嶅簲浜嬩欢娴;骞舵牴鎹渶瑕佸皢浜嬩欢娴佽矾鐢卞埌涓嶅悓鐨勭洰鐨勫湴鎶鏈傚洜姝わ紝浜嬩欢娴佺‘淇濅簡鏁版嵁鐨勮繛缁祦鍔ㄥ拰瑙i噴锛屼粠鑰屼娇姝g‘鐨勪俊鎭湪姝g‘鐨勫湴鐐广佹纭殑鏃堕棿鍑虹幇銆
+
+## 1.2 鎴戝彲浠ヤ娇鐢ㄤ簨浠舵祦鍋氫粈涔?
+
+浜嬩欢娴佸簲鐢ㄤ簬浼楀琛屼笟鍜岀粍缁囩殑鍚勭鐢ㄤ緥銆傚畠鐨勮澶氫緥瀛愬寘鎷: 1. 瀹炴椂澶勭悊鏀粯鍜岄噾铻嶄氦鏄擄紝濡傝偂绁ㄤ氦鏄撴墍銆侀摱琛屽拰淇濋櫓銆 2. 瀹炴椂璺熻釜鍜岀洃鎺ф苯杞︺佸崱杞︺佽溅闃熷拰杩愯緭锛屽鐗╂祦鍜屾苯杞﹁涓氥 3. 鎸佺画鎹曡幏鍜屽垎鏋愭潵鑷墿鑱旂綉璁惧鎴栧叾浠栬澶囩殑浼犳劅鍣ㄦ暟鎹紝濡傚伐鍘傚拰椋庣數鍦恒 4. 鏀堕泦骞剁珛鍗冲搷搴斿鎴风殑浜掑姩鍜岃鍗曪紝濡傞浂鍞侀厭搴楀拰鏃呮父琛屼笟锛屼互鍙婄Щ鍔ㄥ簲鐢ㄧ▼搴忋 5. 鐩戞祴浣忛櫌鐥呬汉锛岄娴嬬梾鎯呭彉鍖栵紝纭繚鍦ㄧ揣鎬ユ儏鍐典笅鍙婃椂娌荤枟銆 6. 杩炴帴銆佸瓨鍌ㄥ叕鍙镐笉鍚岄儴闂ㄤ骇鐢熺殑鏁版嵁骞朵娇鍏跺彲鐢ㄣ 7. 浣滀负鏁版嵁骞冲彴銆佷簨浠堕┍鍔ㄦ灦鏋勫拰寰湇鍔$殑鍩虹銆
+
+## 1.3 Apache Kafka庐鏄竴涓簨浠舵祦骞冲彴銆傝繖鏄粈涔堟剰鎬?
+
+Kafka缁撳悎浜嗕笁涓叧閿殑鍔熻兘锛屾墍浠ヤ綘鍙互鐢ㄤ竴涓崟涓鐨勬垬鏂楁祴璇曡В鍐虫柟妗堟潵瀹炵幇绔埌绔簨浠舵祦鐨勭敤渚: 1. 鍙戝竷(鍐)鍜岃闃(璇)浜嬩欢娴侊紝鍖呮嫭浠庡叾浠栫郴缁熻繛缁鍏/瀵煎嚭鏁版嵁銆 2. 鎸佷箙鎬у拰鍙潬鍦板瓨鍌ㄤ簨浠舵祦锛屽彧瑕佷綘鎯炽 3. 鍦ㄤ簨浠跺彂鐢熸垨鍥為【鏃跺鐞嗕簨浠舵祦銆
+
+鎵鏈夎繖浜涘姛鑳介兘鏄互鍒嗗竷寮忋侀珮搴﹀彲浼哥缉銆佸脊鎬с佸閿欏拰瀹夊叏鐨勬柟寮忔彁渚涚殑銆侹afka鍙互閮ㄧ讲鍦ㄨ8閲戝睘纭欢銆佽櫄鎷熸満鍜屽鍣ㄤ笂锛屼篃鍙互閮ㄧ讲鍦ㄤ簯涓娿傛偍鍙互閫夋嫨鑷鐞嗘偍鐨凨afka鐜鍜屼娇鐢ㄧ敱鍚勭渚涘簲鍟嗘彁渚涚殑瀹屽叏绠$悊鐨勬湇鍔°
+
+## 1.4 绠鑰岃█涔嬶紝Kafka鏄浣曞伐浣滅殑?
+
+Kafka鏄竴涓垎甯冨紡绯荤粺锛岀敱鏈嶅姟鍣ㄥ拰瀹㈡埛绔粍鎴愶紝閫氳繃楂樻ц兘鐨凾CP缃戠粶鍗忚杩涜閫氫俊銆傚畠鍙互閮ㄧ讲鍦ㄨ8閲戝睘纭欢銆佽櫄鎷熸満鍜屽唴閮ㄧ幆澧冧腑鐨勫鍣ㄤ笂锛屼篃鍙互閮ㄧ讲鍦ㄤ簯鐜涓
+
+**鏈嶅姟鍣:**Kafka浣滀负涓涓泦缇よ繍琛屼竴涓垨澶氫釜鏈嶅姟鍣紝鍙互璺ㄨ秺澶氫釜鏁版嵁涓績鎴栦簯鍖哄煙銆傚叾涓竴浜涙湇鍔″櫒鏋勬垚瀛樺偍灞傦紝绉颁负浠g悊銆傚叾浠栨湇鍔″櫒杩愯Kafka Connect鏉ユ寔缁鍏ュ拰瀵煎嚭鏁版嵁浣滀负浜嬩欢娴侊紝灏咾afka涓庢偍鐜版湁鐨勭郴缁熼泦鎴愶紝濡傚叧绯绘暟鎹簱浠ュ強鍏朵粬Kafka闆嗙兢銆備负浜嗚浣犲疄鐜板叧閿换鍔$殑鐢ㄤ緥锛孠afka闆嗙兢鍏锋湁楂樺害鐨勫彲鎵╁睍鎬у拰瀹归敊鎬:濡傛灉瀹冪殑浠讳綍涓涓湇鍔″櫒鍙戠敓鏁呴殰锛屽叾浠栨湇鍔″櫒灏嗘帴绠″畠浠殑宸ヤ綔锛屼互纭繚鎸佺画鐨勬搷浣滆屼笉涓㈠け浠讳綍鏁版嵁銆
+
+**瀹㈡埛鏈:**瀹冧滑鍏佽鎮ㄧ紪鍐欏垎甯冨紡搴旂敤绋嬪簭鍜屽井鏈嶅姟锛岃繖浜涘簲鐢ㄧ▼搴忓拰寰湇鍔″彲浠ュ苟琛屽湴銆佸ぇ瑙勬ā鍦拌鍙栥佸啓鍏ュ拰澶勭悊浜嬩欢娴侊紝鐢氳嚦鍦ㄥ嚭鐜扮綉缁滈棶棰樻垨鏈哄櫒鏁呴殰鐨勬儏鍐典笅涔熷彲浠ュ閿欍侹afka闄勫甫浜嗕竴浜涜繖鏍风殑瀹㈡埛绔紝杩欎簺瀹㈡埛绔Kafka绀惧尯鎻愪緵鐨勫嚑鍗佷釜瀹㈡埛绔寮轰簡:瀹㈡埛绔彲浠ョ敤浜嶫ava鍜孲cala锛屽寘鎷洿楂樼骇鍒殑Kafka Streams搴擄紝鐢ㄤ簬Go銆丳ython銆丆/ c++鍜岃澶氬叾浠栫紪绋嬭瑷浠ュ強REST api銆
+
+## 1.5 涓昏姒傚康鍜屾湳璇
+
+浜嬩欢璁板綍浜嗗湪涓栫晫涓婃垨浣犵殑浼佷笟涓滃彂鐢熶簡鏌愪簨鈥濈殑浜嬪疄銆傚湪鏂囨。涓篃绉颁负璁板綍鎴栨秷鎭傚綋浣犺鎴栧啓鏁版嵁鍒癒afka鏃讹紝浣犱互浜嬩欢鐨勫舰寮忓仛杩欎欢浜嬨備粠姒傚康涓婅锛屼簨浠跺叿鏈夐敭銆佸笺佹椂闂存埑鍜屽彲閫夌殑鍏冩暟鎹ご銆備笅闈㈡槸涓涓緥瀛: 1. 娲诲姩閲嶇偣:鈥滅埍涓戒笣鈥 2. 浜嬩欢鍊:鈥滃悜Bob鏀粯200缇庡厓鈥 3. 浜嬩欢鏃堕棿鎴:鈥2020骞6鏈25鏃ヤ笅鍗2:06銆傗
+
+鐢熶骇鑰呮槸閭d簺鍚慘afka鍙戝竷(鍐)浜嬩欢鐨勫鎴风搴旂敤绋嬪簭锛岃屾秷璐硅呮槸閭d簺璁㈤槄(璇诲拰澶勭悊)杩欎簺浜嬩欢鐨勫簲鐢ㄧ▼搴忋傚湪Kafka涓紝鐢熶骇鑰呭拰娑堣垂鑰呮槸瀹屽叏瑙h︾殑锛屽郊姝ゆ槸涓嶅彲鐭ョ殑锛岃繖鏄疄鐜癒afka闂诲悕鐨勯珮鍙墿灞曟х殑涓涓叧閿璁″厓绱犮備緥濡傦紝鐢熶骇鑰呬粠涓嶉渶瑕佺瓑寰呮秷璐硅呫侹afka鎻愪緵浜嗗悇绉嶅悇鏍风殑淇濊瘉锛屾瘮濡傜簿纭鐞嗕竴娆′簨浠剁殑鑳藉姏銆
+
+浜嬩欢琚粍缁囧苟鎸佷箙鍦板瓨鍌ㄥ湪涓婚涓傚緢绠鍗曪紝涓涓富棰樼被浼间簬鏂囦欢绯荤粺涓殑涓涓枃浠跺す锛屼簨浠跺氨鏄鏂囦欢澶逛腑鐨勬枃浠躲備竴涓ず渚嬩富棰樺悕绉板彲浠ユ槸鈥減ayments鈥濄侹afka涓殑涓婚鎬绘槸澶氱敓浜ц呭拰澶氳闃呰:涓涓富棰樺彲浠ユ湁0涓1涓垨澶氫釜鐢熶骇鑰呭悜瀹冨啓鍏ヤ簨浠讹紝涔熷彲浠ユ湁0涓1涓垨澶氫釜娑堣垂鑰呰闃呰繖浜涗簨浠躲備富棰樹腑鐨勪簨浠跺彲浠ユ牴鎹渶瑕佺粡甯歌鍙栤斺斾笌浼犵粺娑堟伅浼犻掔郴缁熶笉鍚岋紝浜嬩欢鍦ㄤ娇鐢ㄥ悗涓嶄細鍒犻櫎銆傜浉鍙嶏紝浣犲彲浠ラ氳繃姣忎釜涓婚鐨勯厤缃缃潵瀹氫箟Kafka搴旇淇濈暀浣犵殑浜嬩欢澶氶暱鏃堕棿锛屼箣鍚庢棫鐨勪簨浠跺皢琚涪寮冦侹afka鐨勬ц兘鐩稿浜庢暟鎹ぇ灏忔潵璇存槸涓嶅彉鐨勶紝鎵浠ラ暱鏃堕棿瀛樺偍鏁版嵁鏄畬鍏ㄥ彲浠ョ殑銆
+
+涓婚鏄垎鍖虹殑锛岃繖鎰忓懗鐫涓涓富棰樺垎鏁e湪浣嶄簬涓嶅悓Kafka broker涓婄殑澶氫釜鈥滄《鈥濅笂銆傝繖绉嶆暟鎹殑鍒嗗竷寮忎綅缃浜庡彲浼哥缉鎬ч潪甯搁噸瑕侊紝鍥犱负瀹冨厑璁稿鎴锋満搴旂敤绋嬪簭鍚屾椂浠/鍚戝涓唬鐞嗚鍙栧拰鍐欏叆鏁版嵁銆傚綋涓涓柊浜嬩欢琚彂甯冨埌涓涓富棰樻椂锛屽畠瀹為檯涓婅闄勫姞鍒颁富棰樼殑涓涓垎鍖轰腑銆傚叿鏈夌浉鍚屼簨浠堕敭(渚嬪锛屽鎴锋垨杞﹁締ID)鐨勪簨浠惰鍐欏叆鍚屼竴涓垎鍖猴紝Kafka淇濊瘉浠讳綍缁欏畾涓婚鍒嗗尯鐨勬秷璐硅呴兘灏嗗缁堜互鍐欏叆鐨勫畬鍏ㄧ浉鍚岀殑椤哄簭璇诲彇璇ュ垎鍖虹殑浜嬩欢銆
+
+
+
+
+
+
+
+
+璁╀綘鐨勬暟鎹閿欏拰鍙敤鎬,姣忎竴涓富棰樺彲浠ヨ澶嶅埗,鐢氳嚦璺╣eo-regions鎴栨暟鎹腑蹇,杩欐牱鎬绘湁澶氫釜缁忕邯浜烘湁涓浠芥暟鎹互闃插嚭閿,浣犳兂鍋氫唬鐞嗙淮鎶,绛夌瓑銆備竴涓父瑙佺殑鐢熶骇璁剧疆鏄鍒跺洜瀛3锛屼篃灏辨槸璇达紝鎮ㄧ殑鏁版嵁鎬绘槸鏈変笁涓壇鏈傝繖涓鍒舵槸鍦ㄤ富棰樺垎鍖虹骇鍒墽琛岀殑銆
+
+## 浜.Kafka绠浠
+
+Kafka鏄竴绉嶆秷鎭槦鍒楋紝涓昏鐢ㄦ潵澶勭悊澶ч噺鏁版嵁鐘舵佷笅鐨勬秷鎭槦鍒楋紝涓鑸敤鏉ュ仛鏃ュ織鐨勫鐞嗐傛棦鐒舵槸娑堟伅闃熷垪锛岄偅涔圞afka涔熷氨鎷ユ湁娑堟伅闃熷垪鐨勭浉搴旂殑鐗规т簡銆
+
+**娑堟伅闃熷垪鐨勫ソ澶** 1. 瑙h﹀悎 鑰﹀悎鐨勭姸鎬佽〃绀哄綋浣犲疄鐜版煇涓姛鑳界殑鏃跺欙紝鏄洿鎺ユ帴鍏ュ綋鍓嶆帴鍙o紝鑰屽埄鐢ㄦ秷鎭槦鍒楋紝鍙互灏嗙浉搴旂殑娑堟伅鍙戦佸埌娑堟伅闃熷垪锛岃繖鏍风殑璇濓紝濡傛灉鎺ュ彛鍑轰簡闂锛屽皢涓嶄細褰卞搷鍒板綋鍓嶇殑鍔熻兘銆
+
+
+
+
+
+
+
+
+1. 寮傛澶勭悊 寮傛澶勭悊鏇夸唬浜嗕箣鍓嶇殑鍚屾澶勭悊锛屽紓姝ュ鐞嗕笉闇瑕佽娴佺▼璧板畬灏辫繑鍥炵粨鏋滐紝鍙互灏嗘秷鎭彂閫佸埌娑堟伅闃熷垪涓紝鐒跺悗杩斿洖缁撴灉锛屽墿涓嬭鍏朵粬涓氬姟澶勭悊鎺ュ彛浠庢秷鎭槦鍒椾腑鎷夊彇娑堣垂澶勭悊鍗冲彲銆
+
+2. 娴侀噺鍓婂嘲 楂樻祦閲忕殑鏃跺欙紝浣跨敤娑堟伅闃熷垪浣滀负涓棿浠跺彲浠ュ皢娴侀噺鐨勯珮宄颁繚瀛樺湪娑堟伅闃熷垪涓紝浠庤岄槻姝簡绯荤粺鐨勯珮璇锋眰锛屽噺杞绘湇鍔″櫒鐨勮姹傚鐞嗗帇鍔涖
+
+## 2.1 Kafka娑堣垂妯″紡
+
+Kafka鐨勬秷璐规ā寮忎富瑕佹湁涓ょ锛氫竴绉嶆槸涓瀵逛竴鐨勬秷璐癸紝涔熷嵆鐐瑰鐐圭殑閫氫俊锛屽嵆涓涓彂閫佷竴涓帴鏀躲傜浜岀涓轰竴瀵瑰鐨勬秷璐癸紝鍗充竴涓秷鎭彂閫佸埌娑堟伅闃熷垪锛屾秷璐硅呮牴鎹秷鎭槦鍒楃殑璁㈤槄鎷夊彇娑堟伅娑堣垂銆
+
+**涓瀵逛竴**
+
+
+
+
+
+
+
+
+娑堟伅鐢熶骇鑰呭彂甯冩秷鎭埌Queue闃熷垪涓紝閫氱煡娑堣垂鑰呬粠闃熷垪涓媺鍙栨秷鎭繘琛屾秷璐广傛秷鎭娑堣垂涔嬪悗鍒欏垹闄わ紝Queue鏀寔澶氫釜娑堣垂鑰咃紝浣嗗浜庝竴鏉℃秷鎭岃█锛屽彧鏈変竴涓秷璐硅呭彲浠ユ秷璐癸紝鍗充竴鏉℃秷鎭彧鑳借涓涓秷璐硅呮秷璐广
+
+**涓瀵瑰**
+
+
+
+
+
+
+
+
+杩欑妯″紡涔熺О涓哄彂甯/璁㈤槄妯″紡锛屽嵆鍒╃敤Topic瀛樺偍娑堟伅锛屾秷鎭敓浜ц呭皢娑堟伅鍙戝竷鍒癟opic涓紝鍚屾椂鏈夊涓秷璐硅呰闃呮topic锛屾秷璐硅呭彲浠ヤ粠涓秷璐规秷鎭紝娉ㄦ剰鍙戝竷鍒癟opic涓殑娑堟伅浼氳澶氫釜娑堣垂鑰呮秷璐癸紝娑堣垂鑰呮秷璐规暟鎹箣鍚庯紝鏁版嵁涓嶄細琚竻闄わ紝Kafka浼氶粯璁や繚鐣欎竴娈垫椂闂达紝鐒跺悗鍐嶅垹闄ゃ
+
+## 2.2 Kafka鐨勫熀纭鏋舵瀯
+
+
+
+
+
+
+
+
+Kafka鍍忓叾浠朚q涓鏍凤紝涔熸湁鑷繁鐨勫熀纭鏋舵瀯锛屼富瑕佸瓨鍦ㄧ敓浜ц匬roducer銆並afka闆嗙兢Broker銆佹秷璐硅匔onsumer銆佹敞鍐屼腑蹇僙ookeeper.
+
+1. Producer锛氭秷鎭敓浜ц咃紝鍚慘afka涓彂甯冩秷鎭殑瑙掕壊銆
+
+2. Consumer锛氭秷鎭秷璐硅咃紝鍗充粠Kafka涓媺鍙栨秷鎭秷璐圭殑瀹㈡埛绔
+
+3. Consumer Group锛氭秷璐硅呯粍锛屾秷璐硅呯粍鍒欐槸涓缁勪腑瀛樺湪澶氫釜娑堣垂鑰咃紝娑堣垂鑰呮秷璐笲roker涓綋鍓峊opic鐨勪笉鍚屽垎鍖轰腑鐨勬秷鎭紝娑堣垂鑰呯粍涔嬮棿浜掍笉褰卞搷锛屾墍鏈夌殑娑堣垂鑰呴兘灞炰簬鏌愪釜娑堣垂鑰呯粍锛屽嵆娑堣垂鑰呯粍鏄昏緫涓婄殑涓涓闃呰呫傛煇涓涓垎鍖轰腑鐨勬秷鎭彧鑳藉涓涓秷璐硅呯粍涓殑涓涓秷璐硅呮墍娑堣垂
+
+4. Broker锛氱粡绾汉锛屼竴鍙癒afka鏈嶅姟鍣ㄥ氨鏄竴涓狟roker锛屼竴涓泦缇ょ敱澶氫釜Broker缁勬垚锛屼竴涓狟roker鍙互瀹圭撼澶氫釜Topic銆
+
+5. Topic锛氫富棰橈紝鍙互鐞嗚В涓轰竴涓槦鍒楋紝鐢熶骇鑰呭拰娑堣垂鑰呴兘鏄潰鍚戜竴涓猅opic
+
+6. Partition锛氬垎鍖猴紝涓轰簡瀹炵幇鎵╁睍鎬э紝涓涓潪甯稿ぇ鐨凾opic鍙互鍒嗗竷鍒板涓狟roker涓婏紝涓涓猅opic鍙互鍒嗕负澶氫釜Partition锛屾瘡涓狿artition鏄竴涓湁搴忕殑闃熷垪(鍒嗗尯鏈夊簭锛屼笉鑳戒繚璇佸叏灞鏈夊簭)
+
+7. Replica锛氬壇鏈琑eplication锛屼负淇濊瘉闆嗙兢涓煇涓妭鐐瑰彂鐢熸晠闅滐紝鑺傜偣涓婄殑Partition鏁版嵁涓嶄涪澶憋紝Kafka鍙互姝e父鐨勫伐浣滐紝Kafka鎻愪緵浜嗗壇鏈満鍒讹紝涓涓猅opic鐨勬瘡涓垎鍖烘湁鑻ュ共涓壇鏈紝涓涓狶eader鍜屽涓狥ollower
+
+8. Leader锛氭瘡涓垎鍖哄涓壇鏈殑涓昏鑹诧紝鐢熶骇鑰呭彂閫佹暟鎹殑瀵硅薄锛屼互鍙婃秷璐硅呮秷璐规暟鎹殑瀵硅薄閮芥槸Leader銆
+
+9. Follower锛氭瘡涓垎鍖哄涓壇鏈殑浠庤鑹诧紝瀹炴椂鐨勪粠Leader涓悓姝ユ暟鎹紝淇濇寔鍜孡eader鏁版嵁鐨勫悓姝ワ紝Leader鍙戠敓鏁呴殰鐨勬椂鍊欙紝鏌愪釜Follower浼氭垚涓烘柊鐨凩eader銆
+
+涓婅堪涓涓猅opic浼氫骇鐢熷涓垎鍖篜artition锛屽垎鍖轰腑鍒嗕负Leader鍜孎ollower锛屾秷鎭竴鑸彂閫佸埌Leader锛孎ollower閫氳繃鏁版嵁鐨勫悓姝ヤ笌Leader淇濇寔鍚屾锛屾秷璐圭殑璇濅篃鏄湪Leader涓彂鐢熸秷璐癸紝濡傛灉澶氫釜娑堣垂鑰咃紝鍒欏垎鍒秷璐筁eader鍜屽悇涓狥ollower涓殑娑堟伅锛屽綋Leader鍙戠敓鏁呴殰鐨勬椂鍊欙紝鏌愪釜Follower浼氭垚涓轰富鑺傜偣锛屾鏃朵細瀵归綈娑堟伅鐨勫亸绉婚噺銆
+
+## 鍙傝冩枃绔
+https://blog.csdn.net/cao131502
+https://zhuanlan.zhihu.com/p/137811719
\ No newline at end of file
diff --git "a/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\345\216\237\347\220\206\345\210\206\346\236\220\346\200\273\347\273\223\347\257\207.md" "b/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\345\216\237\347\220\206\345\210\206\346\236\220\346\200\273\347\273\223\347\257\207.md"
new file mode 100644
index 0000000..58632b3
--- /dev/null
+++ "b/docs/mq/kafka/\346\266\210\346\201\257\351\230\237\345\210\227kafka\350\257\246\350\247\243\357\274\232Kafka\345\216\237\347\220\206\345\210\206\346\236\220\346\200\273\347\273\223\347\257\207.md"
@@ -0,0 +1,636 @@
+## 涓銆佹杩
+
+Kakfa璧峰垵鏄敱LinkedIn鍏徃寮鍙戠殑涓涓垎甯冨紡鐨勬秷鎭郴缁燂紝鍚庢垚涓篈pache鐨勪竴閮ㄥ垎锛屽畠浣跨敤Scala缂栧啓锛屼互鍙按骞虫墿灞曞拰楂樺悶鍚愮巼鑰岃骞挎硾浣跨敤銆傜洰鍓嶈秺鏉ヨ秺澶氱殑寮婧愬垎甯冨紡澶勭悊绯荤粺濡侰loudera銆丄pache Storm銆丼park绛夐兘鏀寔涓嶬afka闆嗘垚銆
+
+Kafka鍑熺潃鑷韩鐨勪紭鍔匡紝瓒婃潵瓒婂彈鍒颁簰鑱旂綉浼佷笟鐨勯潚鐫愶紝鍞搧浼氫篃閲囩敤Kafka浣滀负鍏跺唴閮ㄦ牳蹇冩秷鎭紩鎿庝箣涓銆侹afka浣滀负涓涓晢涓氱骇娑堟伅涓棿浠讹紝娑堟伅鍙潬鎬х殑閲嶈鎬у彲鎯宠岀煡銆傚浣曠‘淇濇秷鎭殑绮剧‘浼犺緭?濡備綍纭繚娑堟伅鐨勫噯纭瓨鍌?濡備綍纭繚娑堟伅鐨勬纭秷璐?杩欎簺閮芥槸闇瑕佽冭檻鐨勯棶棰樸傛湰鏂囬鍏堜粠Kafka鐨勬灦鏋勭潃鎵嬶紝鍏堜簡瑙d笅Kafka鐨勫熀鏈師鐞嗭紝鐒跺悗閫氳繃瀵筴akfa鐨勫瓨鍌ㄦ満鍒躲佸鍒跺師鐞嗐佸悓姝ュ師鐞嗐佸彲闈犳у拰鎸佷箙鎬т繚璇佺瓑绛変竴姝ユ瀵瑰叾鍙潬鎬ц繘琛屽垎鏋愶紝鏈鍚庨氳繃benchmark鏉ュ寮哄Kafka楂樺彲闈犳х殑璁ょ煡銆
+
+
+
+
+
+[鍥炲埌椤堕儴](https://www.cnblogs.com/wangzhuxing/p/10051512.html#_labelTop)
+
+## 浜屻並afka鐨勪娇鐢ㄥ満鏅
+
+锛1锛夋棩蹇楁敹闆嗭細涓涓叕鍙稿彲浠ョ敤Kafka鍙互鏀堕泦鍚勭鏈嶅姟鐨刲og锛岄氳繃kafka浠ョ粺涓鎺ュ彛鏈嶅姟鐨勬柟寮忓紑鏀剧粰鍚勭consumer锛屼緥濡侶adoop銆丠base銆丼olr绛夛紱
+
+锛2锛夋秷鎭郴缁燂細瑙h﹀拰鐢熶骇鑰呭拰娑堣垂鑰呫佺紦瀛樻秷鎭瓑锛
+
+锛3锛夌敤鎴锋椿鍔ㄨ窡韪細Kafka缁忓父琚敤鏉ヨ褰晈eb鐢ㄦ埛鎴栬卆pp鐢ㄦ埛鐨勫悇绉嶆椿鍔紝濡傛祻瑙堢綉椤点佹悳绱€佺偣鍑荤瓑娲诲姩锛岃繖浜涙椿鍔ㄤ俊鎭鍚勪釜鏈嶅姟鍣ㄥ彂甯冨埌kafka鐨則opic涓紝鐒跺悗璁㈤槄鑰呴氳繃璁㈤槄杩欎簺topic鏉ュ仛瀹炴椂鐨勭洃鎺у垎鏋愶紝鎴栬呰杞藉埌Hadoop銆佹暟鎹粨搴撲腑鍋氱绾垮垎鏋愬拰鎸栨帢锛
+
+锛4锛夎繍钀ユ寚鏍囷細Kafka涔熺粡甯哥敤鏉ヨ褰曡繍钀ョ洃鎺ф暟鎹傚寘鎷敹闆嗗悇绉嶅垎甯冨紡搴旂敤鐨勬暟鎹紝鐢熶骇鍚勭鎿嶄綔鐨勯泦涓弽棣堬紝姣斿鎶ヨ鍜屾姤鍛婏紱
+
+锛5锛夋祦寮忓鐞嗭細姣斿spark streaming鍜宻torm锛
+
+锛6锛変簨浠舵簮锛
+
+
+
+[鍥炲埌椤堕儴](https://www.cnblogs.com/wangzhuxing/p/10051512.html#_labelTop)
+
+## 涓夈並afka鍩烘湰鏋舵瀯
+
+
+
+濡備笂鍥炬墍绀猴紝涓涓吀鍨嬬殑Kafka浣撶郴鏋舵瀯鍖呮嫭锛
+
+* 鑻ュ共Producer(鍙互鏄湇鍔″櫒鏃ュ織锛屼笟鍔℃暟鎹紝椤甸潰鍓嶇浜х敓鐨刾age view绛夌瓑)锛
+* 鑻ュ共broker(Kafka鏀寔姘村钩鎵╁睍锛屼竴鑸琤roker鏁伴噺瓒婂锛岄泦缇ゅ悶鍚愮巼瓒婇珮)锛
+* 鑻ュ共Consumer (Group)锛屼互鍙婁竴涓猌ookeeper闆嗙兢銆
+
+Kafka閫氳繃Zookeeper绠$悊闆嗙兢閰嶇疆锛岄変妇leader锛屼互鍙婂湪consumer group鍙戠敓鍙樺寲鏃惰繘琛宺ebalance銆侾roducer浣跨敤push(鎺)妯″紡灏嗘秷鎭彂甯冨埌broker锛孋onsumer浣跨敤pull(鎷)妯″紡浠巄roker璁㈤槄骞舵秷璐规秷鎭
+
+
+
+### 1銆乀opic & Partition
+
+涓涓猼opic鍙互璁や负涓涓竴绫绘秷鎭紝姣忎釜topic灏嗚鍒嗘垚澶氫釜partition锛屾瘡涓猵artition鍦ㄥ瓨鍌ㄥ眰闈㈡槸append log鏂囦欢銆備换浣曞彂甯冨埌姝artition鐨勬秷鎭兘浼氳杩藉姞鍒發og鏂囦欢鐨勫熬閮紝姣忔潯娑堟伅鍦ㄦ枃浠朵腑鐨勪綅缃О涓簅ffset(鍋忕Щ閲)锛宱ffset涓轰竴涓猯ong鍨嬬殑鏁板瓧锛屽畠鍞竴鏍囪涓鏉℃秷鎭傛瘡鏉℃秷鎭兘琚玜ppend鍒皃artition涓紝鏄『搴忓啓纾佺洏锛屽洜姝ゆ晥鐜囬潪甯搁珮(缁忛獙璇侊紝椤哄簭鍐欑鐩樻晥鐜囨瘮闅忔満鍐欏唴瀛樿繕瑕侀珮锛岃繖鏄疜afka楂樺悶鍚愮巼鐨勪竴涓緢閲嶈鐨勪繚璇)銆
+
+
+
+姣忎竴鏉℃秷鎭鍙戦佸埌broker涓紝浼氭牴鎹畃artition瑙勫垯閫夋嫨琚瓨鍌ㄥ埌鍝竴涓猵artition銆俻artition鏈哄埗鍙互閫氳繃鎸囧畾producer鐨刾artition.class杩欎竴鍙傛暟鏉ユ寚瀹氾紝璇lass蹇呴』瀹炵幇kafka.producer.Partitioner鎺ュ彛銆傚鏋減artition瑙勫垯璁剧疆鐨勫悎鐞嗭紝鎵鏈夋秷鎭彲浠ュ潎鍖鍒嗗竷鍒颁笉鍚岀殑partition閲岋紝杩欐牱灏卞疄鐜颁簡姘村钩鎵╁睍銆(濡傛灉涓涓猼opic瀵瑰簲涓涓枃浠讹紝閭h繖涓枃浠舵墍鍦ㄧ殑鏈哄櫒I/O灏嗕細鎴愪负杩欎釜topic鐨勬ц兘鐡堕锛岃宲artition瑙e喅浜嗚繖涓棶棰)銆傚湪鍒涘缓topic鏃跺彲浠ュ湪$KAFKA_HOME/config/server.properties涓寚瀹氳繖涓猵artition鐨勬暟閲(濡備笅鎵绀)锛屽綋鐒跺彲浠ュ湪topic鍒涘缓涔嬪悗鍘讳慨鏀筽artition鐨勬暟閲忋
+
+
+
+
# The default number of log partitions per topic. More partitions allow greater
+# parallelism for consumption, but this will also result in more files across
+# the brokers.
+#榛樿partitions鏁伴噺
+num.partitions=1
@Override public long transferFrom(FileChannel fileChannel, long position, long count) throws IOException { return fileChannel.transferTo(position, count, socketChannel);
+}