- 博客(19)
- 收藏
- 关注
原创 Kafka性能调优实战:同等资源配置性能提升20几倍的秘诀
将消息分成批次,批次1必须要先与批次2执行,但在执行一个批次的时候,如果这个批次中的消息的key(例如id)不相同,那这批消息内部其实是无需保证其顺序的,就可以将这批消息异步发送,使每条消息并发发送,大大提高其并发度,TPS将得到进一步提升。为了确保sender线程能一次发送较多数据,kafka在客户端引入了一个参数linger.ms,默认为200ms,即小心进入到缓存区后不会立即被send线程发送,而是等待一定时间,这样能提高send线程的发送效率,提高吞吐率。Kafka的高吞吐率设计的核心要点之一是。
2025-01-12 22:38:00
582
原创 kafka-我与面霸的三百回合大战
有,这种情况的核心问题就是可能会有大量的、重复的位移消息占用存储空间,只要把重复的去掉即可,kafka提供一种类似redis的aofrewrite的功能,叫compact策略,compact是由一个logCleaner线程来完成的,它会把重复的、并且较老的消息清除掉。第一种就是生产者不关心消息的情况,只负责发,这种模式无疑速度是最快的,吞吐是最好的,但是可能造成大量的数据丢失,比如在borker出现问题的时候,生产者还不停的发,那么到broker恢复期间的数据都将丢失。:这里分为自动提交和手动提交。
2025-01-12 22:34:19
1099
原创 k8s学习-CKA真题-监控Pod度量指标_kutr
找出具有name=cpu-user标签的Pod,并过滤出使用CPU最高的Pod,然后把它的名字写在已经存在的/opt/KUTR00401/KUTR00401.txt文件里。kubectl top po出错的话,可能是没有安装metrics-server,可使用下面的yaml内容创建(博主k8s版本v1.23.6)找到所有标签含name=cpu-user的pod。找一个存在的po加下标签即可。
2025-01-12 22:30:37
289
原创 Gson的解析复杂数据
:[{“currentCity”:“南京”,“weather_data”:[{“date”:“周六(今天, 实时:19℃)”,“dayPictureUrl”” +““http://api.map.baidu.com/images/weather/night/dayu.png”,“weather”:“大雨”,“wind”” +“:“东南风5-6级”,“temperature”:“18℃”},{“date”:“周日”,“dayPictureUrl”:” +“wind”: “西北风4-5级”,
2025-01-12 04:38:23
965
原创 go语言并发之道-笔记_《go语言并发之道》读书笔记
本书一共6章节。作者罗列golang中的好处,简洁、编译快速、运行稳定、支持鸭子类型(duck typing)。最重要的还是语言级原生支持并发。作者在过去几年使用golang做项目,出于在社区里面没有Golang并发编程的综合指南,决定编写这本书。本书的读者对象本书不会讲解Golang基础语法。最好能了解过其他语言的并发。讨论的并发逻辑:常见并发陷阱,golang并发设计原则,golang并发原语中的基础语法,常见并发模式,并发模式的设计,各种工具使用。各章节的简介并发概述。
2025-01-12 04:34:41
1022
原创 GO语言基础(二):常用的数据类型_go中的20e9
但是 Go 编译器的智商已经高到可以根据变量的值来自动推断其类型,这有点像 Ruby 和 Python 这类动态语言,只不过它们是在运行时进行推断,而 Go 是在编译时就已经完成推断过程。尽管变量的标识符必须是唯一的,但你可以在某个代码块的内层代码块中使用相同名称的变量,则此时外部的同名变量将会暂时隐藏(结束内部代码块的执行后隐藏的外部同名变量又会出现,而内部同名变量则被释放),你任何的操作都只会影响内部代码块的局部变量。一般情况下,当变量a和变量b之间类型相同时,才能进行如a = b的赋值。
2025-01-12 04:30:58
302
原创 Android设计模式系列--工厂方法模式
先抽象的产品类,抽象的工厂类,然后用客户端具体的工厂生产相应的具体的产品,但是客户端并不知道具体的产品是怎么生产的,生产的过程封装在工厂里。因为这种情况下,我们往往需要的是马上生产子类,getConnection方法往往是静态的,所以简单工厂,也叫静态工厂方法。这张图其实和原本的结构图有细微的区别,那就是参数化得工厂,而且从业务意义上也有些不同,但是思想是一样的。其中Connection这个抽象类,既充当抽象产品类,也充当具体工厂类。//同理,我们可以创建另外类似的工厂,生产某种专门的线程,非常容易扩展。
2025-01-11 13:59:30
270
原创 Android设计模式系列--工厂方法模式(1)
先抽象的产品类,抽象的工厂类,然后用客户端具体的工厂生产相应的具体的产品,但是客户端并不知道具体的产品是怎么生产的,生产的过程封装在工厂里。因为这种情况下,我们往往需要的是马上生产子类,getConnection方法往往是静态的,所以简单工厂,也叫静态工厂方法。这张图其实和原本的结构图有细微的区别,那就是参数化得工厂,而且从业务意义上也有些不同,但是思想是一样的。其中Connection这个抽象类,既充当抽象产品类,也充当具体工厂类。//同理,我们可以创建另外类似的工厂,生产某种专门的线程,非常容易扩展。
2025-01-11 13:55:49
258
原创 Android记录18-集成极光推送的一点说明
支持推送的内容有通知、消息、富媒体,稳定性好、能及时到达、提供服务API、支持Android、iOS平台,服务端支持Java、PHP、Python、C#、Ruby、Node.js。这里还有一个附加字段,我们有时候可能需要根据推送的不同消息来实现跳转不同的页面,这时候就可能需要用到附加字段了,我们在Broadcast Receiver来接受推送下来的消息,解析附加字段内容,来达到我们的目的。设置注册ID:适用于单播推送,指定推送给某一个人,可以使注册过的用户ID,主要用来区分。
2025-01-11 13:52:07
893
原创 ESMAScript 6
for(let key of Object.keys(obj4)){ //自定义对象不能遍历,需要借助keys转换成“键数组”function add(…for(let [k,v] of Object.entries(obj4)){//也可以借助entries转换成“键值对”for(let [k,v] of map4){ //遍历Map,for…for(let s of set4){ //遍历Set。map4.forEach( (k,v)=> { //遍历Map。
2024-12-17 10:12:32
518
原创 ES6:【深扒】深入理解 JavaScript 中的异步编程
异步:不会等待耗时任务,遇到异步任务就开启后立即执行下一个任务,耗时任务的后续逻辑通常通过回调函数来定义执行,代码执行顺序混乱实现异步编程在 ES6 诞生之前,实现异步编程的方法有以下几种。回调函数事件监听发布/订阅Promise 对象下面来先来回顾以下传统方法是如何实现异步编程的。
2024-12-17 10:08:51
733
原创 ES6深入—async 函数 与 Symbol 类型
对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。如果有,就返回这个 Symbol 值,否则就新建并返回一个以该字符串为名称的 Symbol 值。ES5 时,声明对象属性通常使用的是字符串,ES6 中提供了 Symbol,使用 Symbol 可以作为对象的属性名。函数的 message 可以省略,表示对当前 Symbol 值的描述,用于区分 Symbol 变量。示例,新建一个名为 test1.js 的文件,在其中写入以下代码。statements: 函数体语句。
2024-12-17 10:05:11
816
原创 ES6 reduce方法:示例与详解、应用场景
callback(累计器):累计回调的返回值,也是上一次调用回调时返回的值,或者是。(当前值):数组中当前正在处理的元素。index(可选):当前元素在数组中的索引(从0开始或从指定的位置开始)。array(可选):调用reduce方法的原数组。(可选):传递给reduce的初始值。如果不提供此值,那么reduce会从数组的第二个元素开始执行,并使用第一个元素作为的初始值。
2024-12-17 10:01:30
457
原创 ElasticSearch架构介绍及原理解析_elasticsearch+sqlserver架构
Elasticsearch 集群由多个节点组成,每个节点是一个独立的 Elasticsearch 实例。- 集群是由多个节点组成的 Elasticsearch 实体,它能够处理跨节点的搜索和数据存储。- Lucene 使用倒排索引来存储索引数据,它是一种将单词映射到包含这些单词的文档的索引。- Elasticsearch 支持跨多个节点的搜索和数据存储,以实现高可用性和负载均衡。- Elasticsearch 支持丰富的搜索功能,如布尔搜索、范围搜索、聚合搜索等。
2024-12-17 09:57:50
562
原创 Elasticsearch 通过索引阻塞实现数据保护深入解析
Elasticsearch 是一种强大的搜索和分析引擎,被广泛用于各种应用中,以其强大的全文搜索能力而著称。不过,在日常管理 Elasticsearch 时,我们经常需要对索引进行保护,以防止数据被意外修改或删除,特别是在进行系统维护或者需要优化资源使用时。Elasticsearch提供了一种名为“索引阻塞(Index blocks)”的功能,让我们能够限制对某个索引的操作类型。Elasticsearch的索引阻塞功能在早期版本中就已存在,用于管理对索引的访问和操作。
2024-12-17 09:54:09
315
原创 ElasticSearch 文档并发处理以及文档路由
某些特定的语言,例如 JavaScript 的 HTTP 请求库是不允许 GET 请求有请求体的,实际上在 RFC7231 文档中,并没有规定 GET 请求的请求体该如何处理,这样造成了一定程度的混乱,有的 HTTP 服务器支持 GET 请求携带请求体,有的 HTTP 服务器则不支持。对于用户数据,我们可以将 userid 作为 routing,这样就能保证同一个用户的数据保存在同一个分片中,检索时,同样使用 userid 作为 routing,这样就可以精准的从某一个分片中获取数据。
2024-12-17 09:50:28
719
1
原创 ElasticSearch + Canal 开发千万级的实时搜索系统【转】
要扛得起海量的搜索请求,可以使用ElasticSearch来实现,它是在Lucene的基础上进行封装的一个开源项目,它将Lucene复杂的原理以及API封装起来,对外提供了一个易用的API接口。但随着业务的发展,搜索接口调用频次越来越高,搜索接口压力越来越大,搜索数据库经常崩溃,从而导致搜索功能经常不能使用。Canal技术变更平台在获取到对应的数据库变更消息后会将其放到指定的Kafka分片里,具体的业务项目需要到指定的Kafka片区里消费对应的数据变更消息,之后根据具体的业务需求进行处理。
2024-12-17 09:46:47
830
原创 Eigen库使用教程之旋转矩阵,旋转向量和四元数的初始化和相互转换的实现_eigen quaterniond fromtwovectors源码解析
Eigen库是一个开源的C++线性代数库,它提供了快速的有关矩阵的线性代数运算,还包括解方程等功能。Eigen是一个用纯头文件搭建起来的库,这意味这你只要能找到它的头文件,就能使用它。由于Eigen库相较于OpenCV中的Mat等库而言更加高效,许多上层的软件库也使用Eigen进行矩阵运算,比如SLAM中常用的g2o,Sophus等。旋转矩阵(R),旋转向量(V)和四元数(Q)分别通过自身初始化自己的方式,也就是第一分部分代码对旋转矩阵(R),旋转向量(V)和四元数(Q)赋值的第一种方式。
2024-12-17 09:43:07
672
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅