Browse Source

修改了kafka笔记
增加了算法的输入输出练习

seamew 2 years ago
parent
commit
fa1d6ecf98

+ 19 - 2
大数据/kafka/1.kafka笔记.md

@@ -118,6 +118,12 @@ kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --par
 kafka-topics.sh --list --zookeeper 127.0.0.1:2181
 ```
 
+* 删除topic
+
+```shell
+kafka-topics.sh --delete --zookeeper 127.0.0.1:2181 --topic test
+```
+
 ## 4.发送消息
 
 kafka⾃带了⼀个producer命令客户端,可以从本地⽂件中读取内容,或者我们也可以以命令⾏中直接输⼊内容,并将这些内容以消息的形式发送到kafka集群中。在默认情况下,每⼀个⾏会被当做成⼀个独⽴的消息。使⽤kafka的发送消息的客户端,指定发送到的kafka服务器地址和topic
@@ -177,15 +183,26 @@ kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --consumer-property
 ## 9. 查看消费组的详细信息
 ```shell
 # 查看当前主题下有哪些消费组
-kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list
+kafka-consumer-groups.sh --bootstrap-server 192.168.0.4:9092 --list
 # 通过以下命令可以查看到消费组的详细信息:
-kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group testGroup
+kafka-consumer-groups.sh --bootstrap-server 192.168.0.4:9092 --describe --group testGroup
 ```
 重点关注以下⼏个信息:
 * current-offset: 最后被消费的消息的偏移量
 * Log-end-offset: 消息总量(最后⼀条消息的偏移量)
 * Lag:积压了多少条消息
 
+## 10.消费者组被自动删除
+
+Kafka消费者组的自动删除是基于一些特定条件下的行为,Kafka默认情况下会在以下情况下自动删除消费者组:
+
+1. 如果消费者组中的所有消费者都已经离开(例如停止应用程序),并且一定时间内(默认为1天)没有新的消费者加入该消费者组,那么该消费者组将被删除。
+2. 如果消费者组中的所有消费者都出现了“无效偏移量”的情况(例如订阅的topic被删除),并且一定时间内(默认为1天)没有消费者通过`seek`方法重新定位偏移量,那么该消费者组将被删除。
+
+> **需要注意的是,消费者组被删除并不意味着相应的消费者实例也会被删除。只有当消费者实例在一定时间内(默认为1分钟)没有与Kafka集群保持连接时,才会被认为是已经离开。此时,消费者组中的其他消费者将会重新分配该消费者实例之前负责的分区。**
+
+
+
 # 四、Kafka中主题和分区的概念
 
 ## 1.主题Topic

BIN
算法/输入输出/assets/image-20230313204155024.png


BIN
算法/输入输出/assets/image-20230313204305951.png


BIN
算法/输入输出/assets/image-20230313204324472.png


BIN
算法/输入输出/assets/image-20230313204410566.png


BIN
算法/输入输出/assets/image-20230313204509666.png


BIN
算法/输入输出/assets/image-20230313204601641.png


BIN
算法/输入输出/assets/image-20230313204720691.png


BIN
算法/输入输出/assets/image-20230313204747133.png


BIN
算法/输入输出/assets/image-20230313204827171.png


BIN
算法/输入输出/assets/image-20230313204909281.png


BIN
算法/输入输出/assets/image-20230313204932347.png


+ 86 - 0
算法/输入输出/字符串.md

@@ -0,0 +1,86 @@
+# 字符串排序(1)
+
+![image-20230313204827171](assets/image-20230313204827171.png)
+
+```cpp
+#include <bits/stdc++.h> 
+using namespace std;
+
+int main() {
+    int n;
+    cin >> n;
+    vector<string> vc;
+    while (n--) {
+        string temp;
+        cin >> temp;
+        vc.push_back(temp);
+    }
+    sort(vc.begin(), vc.end());
+    for (int i = 0; i < vc.size(); i++) {
+        if (i != vc.size() - 1) {
+            cout << vc[i] << " ";
+        } else {
+            cout << vc[i];
+        }
+    }
+    return 0;
+}
+```
+
+# 字符串排序(2)
+
+![image-20230313204909281](assets/image-20230313204909281.png)
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    string str;
+    while (getline(cin, str)) {
+        stringstream ss(str);
+        vector<string> vc;
+        string temp;
+        while (getline(ss, temp, ' ')) {
+            vc.push_back(temp);
+        }
+        sort(vc.begin(), vc.end());
+        for (auto n : vc) {
+            cout << n << " ";
+        }
+        cout << endl;
+    }
+    return 0;
+}
+```
+
+# 字符串排序(3)
+
+![image-20230313204932347](assets/image-20230313204932347.png)
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    string line;
+    while (getline(cin, line)) {
+        stringstream ss(line);
+        vector<string> vc;
+        string temp;
+        while (getline(ss, temp, ',')) {
+            vc.push_back(temp);
+        }
+        sort(vc.begin(), vc.end());
+        for (int i = 0; i < vc.size(); i++) {
+            if (i != vc.size() - 1) {
+                cout << vc[i] << ",";
+            } else {
+                cout << vc[i] << endl;
+            }
+        }
+    }
+    return 0;
+}
+```
+

+ 185 - 0
算法/输入输出/数组.md

@@ -0,0 +1,185 @@
+# a+b(1)
+
+![image-20230313204155024](assets/image-20230313204155024.png)
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    int a, b;
+    while (cin >> a >> b) {
+        cout << a + b << endl;;
+    }
+    return 0;
+}
+```
+
+# a+b(2)
+
+![image-20230313204305951](assets/image-20230313204305951.png)
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    int count;
+    int a, b;
+    cin >> count;
+    while (count--) {
+        cin >> a >> b;
+        cout << a + b << endl;
+    }
+    return 0;
+}
+```
+
+# a+b(3)
+
+![image-20230313204324472](assets/image-20230313204324472.png)
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    int a, b;
+    while (cin >> a >> b) {
+        if (a == 0 && b == 0) break;
+        cout << a + b << endl;
+    }
+    return 0;
+}
+```
+
+# a+b(4)
+
+![image-20230313204410566](assets/image-20230313204410566.png)
+
+```cpp
+#include <bits/stdc++.h> 
+using namespace std;
+
+int main() {
+    int n;
+    while (cin >> n && n != 0) {
+        int sum = 0;
+        int temp;
+        while (n--) {
+            cin >> temp;
+            sum += temp;
+        }
+        cout << sum << endl;
+    }
+    return 0;
+}
+```
+
+# a+b(5)
+
+![image-20230313204509666](assets/image-20230313204509666.png)
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    int n;
+    cin >> n;
+    while (n--) {
+        int count;
+        int temp;
+        int sum = 0;
+        cin >> count;
+        while (count--) {
+            cin >> temp;
+            sum += temp;
+        }
+        cout << sum << endl;
+    }
+    return 0;
+}
+```
+
+# a+b(6)
+
+![image-20230313204601641](assets/image-20230313204601641.png)
+
+```cpp
+#include <bits/stdc++.h> 
+using namespace std;
+
+int main() {
+    int n;
+    while (cin >> n && n != 0) {
+        int sum = 0;
+        int temp;
+        while (n--) {
+            cin >> temp;
+            sum += temp;
+        }
+        cout << sum << endl;
+    }
+    return 0;
+}
+```
+
+# a+b(7)
+
+![image-20230313204720691](assets/image-20230313204720691.png)
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    string s;
+    while (getline(cin, s)) {
+        stringstream ss(s);
+        string num;
+        int sum = 0;
+        while (getline(ss, num, ' ')) {
+            sum += stoi(num);
+        }
+        cout << sum << endl;
+    }
+    return 0;
+}
+```
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    int n;
+    int sum = 0;
+    while (cin >> n) {
+        sum += n;
+        if (cin.get() == '\n') {
+            cout << sum << endl;
+            sum = 0;
+        }
+    }
+    return 0;
+}
+```
+
+# 自测本地通过提交为0
+
+![image-20230313204747133](assets/image-20230313204747133.png)
+
+```cpp
+#include <bits/stdc++.h>
+using namespace std;
+
+int main() {
+    long long a, b;
+    while (cin >> a >> b) {
+        cout << a + b << endl;
+    }
+    return 0;
+}
+```
+