总结:绘上一张Kakfa架构思维大纲脑图(xmind)
其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?
若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理
梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。
-
Kafka入门
-
为什么选择Kafka
-
Kafka的安装、管理和配置
-
Kafka的集群
-
第一个Kafka程序
-
Kafka的生产者
-
Kafka的消费者
-
深入理解Kafka
-
可靠的数据传递
-
Spring和Kafka的整合
-
SpringBoot和Kafka的整合
-
Kafka实战之削峰填谷
-
数据管道和流式处理(了解即可)
2.5.3上传功能
1.开通OSS服务
=========
2.搭建OSS环境
=========
2.1创建Bucket存储空间
- 选择 Bucket列表,进行Bucket创建
- 选择:标准存储、关闭冗余、不开通版本控制、公共读、无加密、不开通日志、不开通备份
2.2创建文件夹上传图片
- 创建文件夹
- 上传图片
2.3RAM访问控制
- 在头像中,点击“AccessKey管理”进行RAM设置
- 安全提醒,使用
子用户
- 创建用户组:
- 添加用户
- 添加用户到用户组
- 设置权限
- 获取子用户AccessKeyId,AccessKeySecret
2.快速入门
=======
2.1下载SDK
- 在“常用入口”中,点击“SDK下载”
- 点击“Java SDK”
- 添加坐标
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
2.2创建存储空间
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
String bucketName = "<yourBucketName>";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 创建存储空间。
ossClient.createBucket(bucketName);
// 关闭OSSClient。
ossClient.shutdown();
- 例如:
package com.czxy;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.junit.Test;
public class TestOss {
@Test
public void testCreateBucket() {
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "oss-cn-shanghai.aliyuncs.com";
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
String accessKeyId = "LTAI5t7oNGMkQJ1X8RqtLet2";
String accessKeySecret = "这里是密码";
String bucketName = "czxy-lt-01";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 创建存储空间。
ossClient.createBucket(bucketName);
// 关闭OSSClient。
ossClient.shutdown();
}
}
2.3上传图片
- 参考代码位置:
- 例如:
@Test
public void testUpload() throws FileNotFoundException {
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
String endpoint = "oss-cn-shanghai.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = "LTAI5t7oNGMkQJ1X8RqtLet2";
String accessKeySecret = "这是密码";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String path = "avatar/" + System.currentTimeMillis() + ".png";
// 数据流
InputStream inputStream = new FileInputStream("C:/Users/Administrator/Desktop/1/cz.png");
// 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
ossClient.putObject("czxy-lt", path, inputStream);
// 关闭OSSClient。
ossClient.shutdown();
// https://czxy-lt.oss-cn-shanghai.aliyuncs.com/avatar/1616253283637.png
String url = "https://czxy-lt.oss-cn-shanghai.aliyuncs.com/" + path;
System.out.println(url);
}
3.课程管理
======
3.1需求
3.2前端实现
- 添加上传组件和头像组件
<el-form-item label="课程封面">
<el-upload
class="upload-demo"
:action="updateUrl"
:limit="1"
:on-exceed="handleExceed"
:on-success="avatarUploadSuccess">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
<el-avatar shape="square" :size="50" :src="course.cover"></el-avatar>
</el-form-item>
- 编写上传路径
data() {
return {
updateUrl: process.env.VUE_APP_BASE_API + '/course-service/course/avatar/upload', //上传路径
}
}
- 编写处理函数:上传成功后,显示头像
handleExceed(files, fileList) { //默认 this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`); }, avatarUploadSuccess(response) { // 设置头像 this.course.cover = response.data }
2.4后端测试数据
@PostMapping("/avatar/upload")
public BaseResult avatarUpload(MultipartFile file) {
String url = "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif?imageView2/1/w/80/h/80";
return BaseResult.ok("上传成功", url);
}
总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
m/f778738c-e4f8-4870-b634-56703b4acafe.gif?imageView2/1/w/80/h/80";
return BaseResult.ok("上传成功", url);
}
# 总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
[外链图片转存中...(img-Q2hx3Om0-1715446363546)]
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**