总结:绘上一张Kakfa架构思维大纲脑图(xmind)
其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?
若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理
梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。
-
Kafka入门
-
为什么选择Kafka
-
Kafka的安装、管理和配置
-
Kafka的集群
-
第一个Kafka程序
-
Kafka的生产者
-
Kafka的消费者
-
深入理解Kafka
-
可靠的数据传递
-
Spring和Kafka的整合
-
SpringBoot和Kafka的整合
-
Kafka实战之削峰填谷
-
数据管道和流式处理(了解即可)
root@192.168.129.133’s password:
Number of key(s) added: 1
Now try logging into the machine, with: “ssh ‘root@192.168.129.133’”
and check to make sure that only the key(s) you wanted were added.
[root@master ~]# ssh-agent bash
[root@master ~]# ssh-add
Enter passphrase for /root/.ssh/id_rsa:
Identity added: /root/.ssh/id_rsa (root@master)
[root@master ~]# ansible httpd -m yum -a ‘name=httpd* state=installed’
192.168.129.133 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“changed”: true,
“msg”: “”,
“rc”: 0,
“results”: [
“Installed: mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64”,
“Installed: cyrus-sasl-devel-2.1.27-1.el8.x86_64”,
“Installed: expat-devel-2.2.5-3.el8.x86_64”,
“Installed: apr-1.6.3-11.el8.x86_64”,
“Installed: apr-devel-1.6.3-11.el8.x86_64”,
“Installed: libdb-devel-5.3.28-40.el8.x86_64”,
“Installed: apr-util-1.6.1-6.el8.x86_64”,
“Installed: httpd-tools-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,
“Installed: apr-util-bdb-1.6.1-6.el8.x86_64”,
“Installed: openldap-devel-2.4.46-11.el8.x86_64”,
“Installed: apr-util-devel-1.6.1-6.el8.x86_64”,
“Installed: httpd-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,
“Installed: apr-util-openssl-1.6.1-6.el8.x86_64”,
“Installed: centos-logos-httpd-85.8-1.el8.noarch”,
“Installed: httpd-devel-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,
“Installed: httpd-filesystem-2.4.37-39.module_el8.4.0+778+c970deab.noarch”,
“Installed: httpd-manual-2.4.37-39.module_el8.4.0+778+c970deab.noarch”
]
}
//开启服务与开机自启
[root@master ~]# ansible httpd -m service -a “name=httpd state=started enabled=yes”
192.168.129.133 | SUCCESS => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“changed”: false,
“enabled”: true,
“name”: “httpd”,
“state”: “started”,
“status”: {
“ActiveEnterTimestamp”: “Mon 2021-07-19 19:12:12 CST”,
“ActiveEnterTimestampMonotonic”: “1076238167”,
“ActiveExitTimestampMonotonic”: “0”,
……略
[root@master ~]# ansible mysql -m yum -a ‘name=mariadb state=present’
192.168.129.135 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“changed”: true,
“msg”: “”,
“rc”: 0,
“results”: [
“Installed: mariadb-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,
“Installed: mariadb-common-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,
“Installed: mariadb-connector-c-3.0.7-1.el8.x86_64”,
“Installed: mariadb-connector-c-config-3.0.7-1.el8.noarch”
]
}
//安装mariadb-server
[root@master ~]# ansible mysql -m yum -a ‘name=mariadb-server state=present’
192.168.129.135 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“changed”: true,
“msg”: “”,
“rc”: 0,
“results”: [
“Installed: mariadb-errmsg-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,
“Installed: mariadb-gssapi-server-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,
“Installed: mariadb-server-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,
“Installed: mariadb-server-utils-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,
“Installed: perl-DBD-MySQL-4.046-3.module+el8.1.0+2938+301254e2.x86_64”,
“Installed: mariadb-backup-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”
]
}
//开启服务于开机自启
[root@master ~]# ansible mysql -m service -a ‘name=mariadb state=started enabled=yes’
192.168.129.135 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“changed”: true,
“enabled”: true,
“name”: “mariadb”,
“state”: “started”,
“status”: {
“ActiveEnterTimestampMonotonic”: “0”,
“ActiveExitTimestampMonotonic”: “0”,
……略
[root@master ~]# ansible php -m yum -a ‘name=php state=present’
192.168.129.137 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“changed”: true,
“msg”: “”,
“rc”: 0,
“results”: [
“Installed: apr-util-bdb-1.6.1-6.el8.x86_64”,
“Installed: httpd-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,
“Installed: apr-util-openssl-1.6.1-6.el8.x86_64”,
“Installed: centos-logos-httpd-85.8-1.el8.noarch”,
“Installed: httpd-filesystem-2.4.37-39.module_el8.4.0+778+c970deab.noarch”,
“Installed: httpd-tools-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,
“Installed: nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch”,
“Installed: php-fpm-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64”,
“Installed: php-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64”,
“Installed: php-common-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64”,
“Installed: mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64”,
“Installed: php-cli-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64”,
“Installed: apr-1.6.3-11.el8.x86_64”,
“Installed: apr-util-1.6.1-6.el8.x86_64”
]
}
//安装php相关组件
[root@master ~]# ansible php -m yum -a ‘name=php-* state=present’
192.168.129.137 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“changed”: true,
“msg”: “”,
“rc”: 0,
……略
[root@master ~]# ansible httpd -m lineinfile -a ‘path=/etc/httpd/conf/httpd.conf line=“<VirtualHost :80>\nDocumentRoot “/var/www/html/www1”\nServerName www.192.168.129.133.com\nProxyRequests off\nProxyPassMatch ^/(..php)$ fcgi://192.168.129.137:9000/var/www/html/www1/$1\n<Directory “/var/www/html/www1”>\nOptions None\nAllowOverride None\nOrder allow,deny\nAllow from all\n\n”’
192.168.129.133 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“backup”: “”,
“changed”: true,
“msg”: “line added”
}
//在http主机上查看
[root@httpd conf]# cat /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
DocumentRoot “/var/www/html/www1”
ServerName www.192.168.129.133
ProxyRequests Off
ProxyPassMatch ^/(.*.php)$ fcgi://192.168.129.137:9000/var/www/html/www1$1
<Directory “/var/www/html/www1”>
Options none
AllowOverride none
Require all granted
[root@master ~]# ansible httpd -m lineinfile -a ‘path=/etc/httpd/conf/httpd.conf regexp=“^AddType " insertafter=”^AddType application/x-" line=“AddType application/x-httpd-php .php”’
192.168.129.133 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“backup”: “”,
“changed”: true,
“msg”: “line added”
}
[root@master ~]# ansible httpd -m lineinfile -a ‘path=/etc/httpd/conf/httpd.conf regexp=“^AddType " insertafter=”^AddType application/x-" line=“AddType application/x-httpd-php-source .phps”’
192.168.129.133 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“backup”: “”,
“changed”: true,
“msg”: “line replaced”
}
[root@master ~]# ansible httpd -m lineinfile -a ‘path=/etc/httpd/conf/httpd.conf regexp=“^DirectoryIndex” line=“DirectoryIndex index.html index.php”’
192.168.129.133 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“backup”: “”,
“changed”: true,
“msg”: “line added”
}
[root@httpd]# vi /etc/httpd/conf/httpd.conf
probably should define those extensions to indicate media types:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
Proxyrequests Off
ProxyPassMatch ^/(.*.php)$ fcgi://192.168.129.137:9000/var/www/html/$1
//重启服务
[root@master ~]# ansible httpd -m service -a ‘name=httpd state=restarted’
192.168.129.133 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“changed”: true,
“name”: “httpd”,
“state”: “started”,
“status”: {
……略
[root@master ~]# ansible php -a ‘mkdir /var/www/html/’
192.168.129.137 | CHANGED | rc=0 >>
[root@master ~]# ansible php -m lineinfile -a “path=/var/www/html/index.php line=<?php\n phpinfo();\n?> create=yes”
[root@master ~]# ansible php -m lineinfile -a ‘path=/etc/php-fpm.d/www.conf regexp=“^listen =” line=“listen = 192.168.129.137:9000”’
192.168.129.137 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“backup”: “”,
“changed”: true,
“msg”: “line replaced”
}
[root@master ~]# ansible php -m lineinfile -a ‘path=/etc/php-fpm.d/www.conf regexp=“^listen.allowed_clients =” line=“listen.allowed_clients = 192.168.129.133”’
192.168.129.137 | CHANGED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“backup”: “”,
“changed”: true,
“msg”: “line replaced”
最后
由于篇幅限制,小编在此截出几张知识讲解的图解
GED => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/libexec/platform-python”
},
“backup”: “”,
“changed”: true,
“msg”: “line replaced”
最后
由于篇幅限制,小编在此截出几张知识讲解的图解
[外链图片转存中…(img-pbr1hewc-1715810334591)]
[外链图片转存中…(img-XfTiXTv4-1715810334592)]
[外链图片转存中…(img-BdYtLAJu-1715810334592)]
[外链图片转存中…(img-bwH5oipf-1715810334592)]
[外链图片转存中…(img-Mz5t6lHE-1715810334593)]