新年10个Flag实现中~
访问量
1.5M
文章数
146
运行天
1013
一、Kafka的基本框架在Kafka中,发布和订阅的对象称为主题(Topic),主题可以有多个。向主题发布消息的应用称为生产者(Producer),订阅这些主题消息的称为消费者(Consumer)。生产者可以有多个,可以在不同的系统;消费者也可以有多个,同样也可以在不同的系统。生产者和消费者都称为客户端(Clients),这个概念与Kafka服务器(Server)对应。 Kafka服务端可以有多个实例构成集群,每个实例都称为一个消息代理(Broker),这些实例可以分布在一台机器上,也可以分布在多台机器上以达到高可用的目的。你可以在消息中间件中经常看到Broker这个词,例如MQTTBroker等,Broker的本意是“经纪人”、“代理人”等等,中间件正是这样一个中间代理的角色。K
一、系统间的通信方式分布式系统常常需要进行系统间通信:常见的系统间通信方式有两种:远程过程调用(RemoteProcedureCall,RPC)消息队列(MessageQueue,MQ)对于RPC,我们可以同步请求(请求、等待;处理、响应),也可以异步请求(请求、标记请求、等待;处理、完成;释放标记/超时处理)。然而RPC有很多缺点:(1)任何一方出现故障,都可能会造成消息丢失。当然你也可以通过应用/框架重试+多实例来缓解,但只要任何一方全部挂掉,消息必然丢失。(2)平台、协议、开发语言等差异导致对接复杂度高。虽然GRPC也是跨平台跨语言的,但并非所有的系统都会引入GRPC,protobuf也不能完全包含所有的开发语言。(3)服务器性能差异,导致消息堆积。上游数据源(比如上游服务器、或者作为
一、Kafka的名字是怎么来的我一直就怀疑是不是初中学的小说家“弗朗茨·卡夫卡”,没错就是。JayKreps(工作于LinkedIn,Kafka创始人之一):我想既然Kafka是为了写数据而产生的,那么用作家的名字来命名会显得更有意义。我在大学时期上过很多文学课程,很喜欢FranzKafka。况且,对于开源项目来说,这个名字很酷。不过,名字和应用本身基本没有太多联系。  ——《Kafka权威指南》P13二、Kafka和Scala、Java是什么关系?Kafka是使用Java开发的应用程序。 ——《Kafka权威指南》P14 截至本书写作时,Kafka的版本是0.9.0.1,对应的Scala版本是2.11.0。——《Kafka权威指南》P17 
前言最近在系统地学习知识,因此5月~6月的目标是完成Zookeeper和Kafka的学习(以前高考都还有老师给你一份提纲要学什么东西,现在自己给自己定义提纲才发现是很痛苦的事情)。学习提纲初步定义的框架如下:1、Kafka原理和源码动物书《Kafka权威指南》(ISBN978-7-115-47327-1):了解正确的基本知识和术语,不会被网文骗…Kafka官网文档:主要关注0.9.0(重大变化,低于该版本的没有意义了)、2.2.1(目前使用到的)、最新版本(最新的特性)。有关如何选择版本学习,我也是参考的商业的软件一般会选择什么版本的Kafka,比如AWS的MSK服务,它提供的版本是1.1.1、2.2.1、2.3.1、2.4.1,说明这几个版本是有特殊的地方的,比如十分稳定,或者支持了什么重
由于目前没有专门的页面致谢,因此将在这里致谢打赏的同学。感谢各位的关注和支持。 时间  信息  金额  备注  2019.11.21 匿名 0.45  2019.12.18 Tiam  2.33多谢!第一次尝试感觉很好!  2020.02.06 *星河  0.01   2020.04.04 *锦程  0.01  2020.04.28 *得旺 2 感谢博主,微不足道,收下&nbs
一、背景分布式压测1台主控机,15台从机,每台测试机1W长连接客户端,进行混合场景MQTT稳定性PubSub测试,发现服务器在跑了一天以后被重启了。(1)排除GC问题之前的PET测试中,发现偶尔会有长时间的FullGC,导致ServiceMesh探针几次没有响应而强行重启了服务器(那个是由于OpenTracing批量kafka消费的时候没有通过try-resource来释放资源造成堆内存泄漏)。因此看了下GC,发现FullGC耗时很短,次数很少,而且堆内存并没有爆炸。(2)发现内存增长有问题通过观察由Prometheus提供数据、Grafana绘制的图像,发现内存以1MB/分钟的速度几乎是线性增长到8G,然后由于达到了k8s的pod限制,被强行重启了。这种不正常的现象明显就是有内存泄漏,那么
一、发现现象在用Java编写一个项目时,使用了AES作为数据库某些字段的加密方式,在Windows上正常运行,在Linux上调用AWS加密,抛出异常:Noinstalledprovidersupportsthiskey:javax.crypto.spec.SecretKeySpec二、问题根源Java的政策文件限制了密钥长度。JCE(JavaCryptographyExtension)是Java的加密扩展包,由于美国对某些国家有进出口限制,因此低版本Java默认限制了密钥长度,比如AES加密只能使用16位AES-128,超过16位就会报这个错。JDK8文档描述:UnlimitedStrengthJavaCryptographyExtensionDuetoimportcontrolrestri
一、KafkaController简介kafka集群会选举出一个称为Controller的节点,主要有以下几种作用:主题管理:创建、删除主题等等重分区:前面脚本执行分区就是靠控制器实现的集群成员管理:broker新增、关闭、宕机数据管理:元数据管理。目前对Controller的了解不多,我们在进行prometheus监控的时候发现,只有controller节点才可以获取partition的数据,也许就和controller的功能有关。二、节点宕机变化过程1、查看controller节点进入zookeeper机器,进入bin,启动./zkCli.sh$ls/$get/controller可以得到zookeeper上注册的kafkacontroller信息:{"version":1,"broke
12345... 16下一页