Kafka 结合了三个关键功能,因此您可以使用 一个经过实战检验的解决方案来实现端到端事件流的 用例:
发布(写入)和订阅(读取)事件流,包括从其他系统持续导入/导出数据。
根据需要持久可靠地存储事件 流。
在事件发生时或回顾性地 处理 事件流。
Kafka启动拉取镜像
docker pull bitnami/kafka
启动kafka
参考:https://hub.docker.com/r/bitnami/kafka
第一步:创建网络
docker network create kafka-learn --driver bridge
第二步:启动 kafka 服务器实例(windows powershell)注意此处是使用kraft模式
集群的部署
docker-compose up -d
version: "3"services: kafka1: image: docker.io/bitnami/kafka:latest container_name: kafka1 restart: always ports ...
吞吐量:每秒钟系统能够处理的请求数、任务数。
响应时间:服务处理一个请求或一个任务的耗时。
错误率:一批请求中结果出错的请求所占比例。
性能需求分析项目业务: 注册,登录,视频上传,视频搜索
需要压测的业务: 核心,用户量,与外部接口对接
分析: 需要压测的业务 —–> 登录,视频搜索,视频上传
性能指标:
非硬件: 50%line < 1s 90%line < 1 s,TPS, 事务成功率100%(响应时间几十毫秒到几百毫秒)
硬件: CPU 内存 <= 70%
性能方案设计7大场景:
单业务基准测试、单业务压力测试,单业务负载测试|综合业务基准测试,综合业务压力测试,综合业务负载测试,综合业务稳定性测试
单业务: 登录
基准:30min 2w登录
经过分析:
性能场景:
1s启动所有线程,压测5min,观察性能指标
登录测试:
1s内启动,20个线程组,持续300s
docker内存使用情况图形化docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --vol ...
一 等价类划分定义:依据需求将输入划分成若干个等价类,从等价类中选定一个测试用例,如果该用例通过,则表明整个等价类通过。
适用范围:适用于有无限多种输入。
目的:使用较少的测试用例尽可能多的将功能覆盖。
有效等价类:有意义的输入构成的集合,对需求规格说明书来说是合法的。
无效等价类:不满足需求的输入。
例如:学生成绩录入系统,分数X为0到100的整数。
有效等价类:0≤X≤100(50)
无效等价类:X≤0(-5),X≥100(200)
如果没有整数要求,还要考虑小数,非数字(字母,汉字,特殊字符)和空值。
但只按照等价类划分还不够,还要考虑边界值。
二 边界值分析法边界值分析法是对等价类划分法的补充,一般从等价类的边界寻找错误。
边界值分析法的基本思路:
正好等于边界值,刚好小于边界值,刚好大于边界值作为测试数据。
特殊:0/空是特殊的值,在考虑边界值的时候也要考虑这个特殊值。
边界值思想的体现:网上购物,库存12。
数量=11:下单成功;数量=12:下单成功;数量=13:下单失败,并给出提示。
例如:学生成绩录入系统,分数X为0到100的 ...
flutter网络框架dio v5.3.3
dio 是一个强大的 HTTP 网络请求库,支持全局配置、Restful API、FormData、拦截器、 请求取消、Cookie 管理、文件上传/下载、超时、自定义适配器、转换器等。
入门使用添加依赖
flutter pub add dio
使用
import 'package:dio/dio.dart';final dio = Dio();void getHttp() async { final response = await dio.get('https://dart.dev'); print(response);}
GET请求
import 'package:dio/dio.dart';final dio = Dio();void request() async { Response response; response = await dio.get('/test?id=12&name=dio& ...
复习React的相关知识
快速入门1. 创建和嵌套组件React 应用程序是由 组件 组成的。一个组件是 UI(用户界面)的一部分,它拥有自己的逻辑和外观。组件可以小到一个按钮,也可以大到整个页面。
React 组件是返回标签的 JavaScript 函数:
function MyButton(){ return ( <button>I'm a button</button> )}
至此,你已经声明了 MyButton,现在把它嵌套到另一个组件中:
export default function MyApp() { return ( <div> <h1>Welcome to my app</h1> <MyButton /> </div> );}
2. 使用JSX编写标签上面所使用的标签语法被称为 JSX。它是可选的,但大多数 React 项目会使用 JSX,主要是它很方便。所有 我们 ...
用于记录我开发过程中碰到的文件上传方式
material ui的文件上传如果您正在使用 Material UI 并想要实现图片上传功能,可以使用 Material UI 的 Input 组件和 IconButton 组件,以及 HTML 的 input 标签和 label 标签来实现。
首先,您需要在 React 组件中创建一个 state 来存储上传的图片,例如:
const [selectedFile, setSelectedFile] = useState(null);
然后,在 render 函数中,您可以创建一个包含 Input 组件和 IconButton 组件的 label 标签,如下所示:
<label htmlFor="upload-photo"> <Input style={{ display: 'none' }} id="upload-photo" type="file" onChange=& ...
由于最近开发碰到了需要调用外部软件程序的任务,对此有一定的兴趣,所以本人翻阅互联网,寻找如何操作,得此文章。
Go语言调用外部程序os/exec包中的exec.Commad()
package mainimport ( "fmt" "os/exec" "runtime" "syscall")const path = "D:\\tools\\wangyiyun\\CloudMusic\\cloudmusic.exe"func main() { // 注意一第一个参数,其实就是你要运行的 .exe程序 cmd := exec.Command(path) if runtime.GOOS == "windows" { cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} } err := cmd.Run() fmt.Println(err.Error() ...
什么是sqlc和sqlx?
github上有解释,可以自行查找
https://github.com/sqlc-dev/sqlc
https://github.com/jmoiron/sqlx
sqlx的使用sqlx连接数据库–Connect
连接mysql数据库
import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx")var DB *sqlx.DBfunc initMysql() (err error) { dsn := "root:123456@tcp(127.0.0.1:3306)/demo" DB, err = sqlx.Connect("mysql", dsn) if err != nil { _ = fmt.Sprintf("database connect error: %v\n", err) return err ...
Go 1.18 泛型
2022年3月15日,争议非常大但同时也备受期待的泛型终于伴随着Go1.18发布了。
官方文档: Tutorial: Getting started with generics - The Go Programming Language
参考文档: Go 编程语言规范 - Go 编程语言
Go还引入了非常多全新的概念:
类型形参 (Type parameter)
类型实参(Type argument)
类型形参列表( Type parameter list)
类型约束(Type constraint)
实例化(Instantiations)
泛型类型(Generic type)
泛型接收器(Generic receiver)
泛型函数(Generic function)
类型形参,类型实参,类型约束,泛型类型type IntSlice []intvar a IntSlice = []int{1, 2, 3} // 正确var b IntSlice = []float32{1.0, 2.0, 3.0} // ✗ 错误 ...
我为什么学GO
首先申明,我是一名大三的学生!以下学习GO的观点属于个人观点,只提供参考。
第一次听说go的契机
契机:就是由于听到同学在学,然后当时了解到的Docker的容器化技术是Go语言编写的,于是开始对于Go有了一些兴趣。
隔壁的哥哥推荐
推荐:由于在大二寒假的时候,对于技术的热爱(当时可能就只是想学更多东西吧),询问了他如何学习,他和我分享了许多如何提升自己,还有一些基础知识十分重要和设计模式的重要性。并且他还推荐我学习Go语言。
网络上的说法(当然网络上众说风云)
学习GO语言主要是因为它在安全领域的应用,它是区块链最主流的编程语言,同时也是当前最具发展潜力的语言。它支持数据处理和大并发处理能力,能有效解决我的很多问题。Go语言是Google公司创造的语言,也是Google主推的语言。国外如Google、AWS、Cloudflare、CoreOS等,国内如七牛、阿里、小米、京东等都已经开始大规模使用Golang开发其云计算相关产品。
以下是一些参考
https://bbs.huaweicloud.com/blogs/279117
为什么要学go语言,golang的优 ...