自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 Kafka(十一)管理Kafka

因此,可以在/usr/local/bin/kafka_2.13-3.6.0/kafka-logs/-< partition>目录下找到转储文件,对这个例子来说就是/usr/local/bin/kafka_2.13-3.6.0/kafka-logs/peter-test-2-0/。一个很明显的例子是,如果集群的默认RF被修改了,但已有主题的RF个数不会自动随之发生变化,那么这个时候就可以用这个工具增加已有分区的RF。如果删除了主题的一个分区,那么这个分区里的数据也会被删除,导致客户端看到的数据不一致。

2024-03-31 18:27:59 1157 1

原创 Kafka(十)安全

在Kafka中,可以自定义授权这样就可以实,现额外的控制或增加新的访问控制类型,比如基于角色的访问控制。下面的自定义授权器限制了只有内部监听器可以处理某些请求。// 如果不是内部请求,并且ACL是创建和删除的操作,禁止执行 if(!} else {// 如果是内部请求,执行默认的授权逻辑 return super . authorize(context , actions);} } }

2024-03-17 21:10:52 1100

原创 Kafka(九)跨集群数据镜像

下面就一个笔者公司的实际的案例,结合上述的理论知识,来说明Kafka灾备解决方案是如何应用到实际的生产当中的,我们暂且称之为H公司。H公司近年来在进行IT系统的数字化转型,采用了事件驱动(EDA)的架构,对公司数十个独立的IT系统进行重构和整合。事件驱动公有云和私有云/遗留系统之间的消息订阅与发布消息队列Kafka作为一个消息的临时缓存H公司在托管的数据中心KSG搭建了一个Kafka集群,我们称之为PROD集群。集群采用了RedHat的AMQ Stream产品,部署在OCP容器平台中。

2024-01-28 21:54:58 1013

原创 Kafka(八)使用Kafka构建数据管道

如果一个worker停止工作或发生崩溃,那么集群中的其他worker就会感知到(根据Kafka消费者协议的心跳机制来判断),并会将发生崩溃的worker的连接器和任务重新分配给其他worker。这种架构的不足在于,数据的转换占用了目标系统太多的CPU和存储资源。在从Kafka读取数据时,worker会使用指定的转换器将各种格式(也就是原始类型、字节数组、字符串、Avro、JSON、JSON模式和Protobuf)的数据转换成数据API格式的对象,然后将它们传给目标连接器,目标连接器再将它们插入目标系统中。

2024-01-21 18:24:26 1050

原创 Kafka(七)可靠性

min.insync.replicas(默认值为1)代表了正常写入生产者数据所需要的最少ISR个数, 当ISR中的副本数量小于min.insync.replicas时,Leader停止写入生产者生产的消息,并向生产者抛出NotEnoughReplicas异常,阻塞等待更多的 Follower 赶上并重新进入ISR, 因此能够容忍min.insync.replicas-1个副本同时宕机。通常,我们建议您不要设置此项,并使用复制以提高耐用性,并允许操作系统的后台刷新功能,因为它更高效。

2024-01-07 13:10:01 1221

原创 Kafka(六)消费者

Kafka消费者是指使用Apache Kafka消息系统的客户端应用程序,用于从Kafka集群中读取消息并进行处理。Kafka消费者可以订阅一个或多个主题,并实时地从主题中消费新的消息。消费者可以以不同的方式处理消息,例如将其存储到数据库中、进行实时分析或者将其传递给其他系统。Kafka消费者通常是分布式的,可以部署在多个节点上以实现高可用性和扩展性。消费者使用Kafka提供的消费者API来管理消息的订阅和消费,以及处理消息的偏移量(offset)等问题。Kafka消费者的设计使得它们能够处理高吞吐量和大规

2024-01-07 12:39:30 1339

原创 Kafka(五)生产者

Kafka 生产者是 Apache Kafka 中的一个组件,用于将数据发布到 Kafka 集群中的主题(topic)中。生产者负责将消息发送到 Kafka 集群,并且可以指定消息的键(key)和分区(partition)。生产者可以采用异步或同步的方式发送消息,并且可以配置消息的压缩、序列化和批处理等属性。Kafka 生产者可以通过 Kafka 的 API 或者客户端库来实现,常见的客户端库包括 Java、Python、Go、C++ 等。生产者可以在分布式环境中部署,并且可以通过多个线程同时发送消息,以提

2024-01-07 11:45:05 1203

原创 Kafka(四)Broker

Kafka Broker是Apache Kafka中的一个重要组件,它负责接收、存储和转发消息。Kafka Broker是一个分布式系统,可以在多台服务器上运行,以实现高可用性和水平扩展性。Kafka Broker通过分区将消息存储在主题中,并且可以处理多个生产者和消费者之间的消息传递。它还负责管理消息的持久性和复制,以确保消息不会丢失,并且可以在发生故障时进行恢复。Kafka Broker使用Zookeeper来协调集群中的各个节点,以确保数据的一致性和可靠性。

2024-01-06 23:29:32 1345 1

原创 Kafka(三)概述

Apache Kafka是一个开源分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。事件流(event streaming):从技术上讲,事件流是以事件流的形式从数据库、传感器、移动设备、云服务和软件应用程序等事件源实时捕获数据的做法;持久地存储这些事件流以供以后检索;实时地以及回顾性地操纵、处理和响应事件流;以及根据需要将事件流路由到不同的目的地技术。因此,事件流确保了数据的连续流动和解释,从而使正确的信息在正确的时间、正确的地点出现。

2024-01-06 23:06:16 1282

原创 Kafka(二)在WSL搭建Schema Registry

搭建 Confluent Schema Registry Kafka

2023-11-25 22:22:54 788

原创 Kafka(一)在WSL单机搭建Kafka伪集群

WLS Kafka集群搭建

2023-11-25 21:13:17 1489

原创 Linux常用命令

Linux常用命令及使用实例

2023-11-25 20:27:09 898

原创 Zookeeper(一)在WSL单机搭建Zookeeper伪集群

WSL Unbuntu 单机搭建Zookeeper伪集群

2023-11-25 18:51:54 533 1

原创 创建本地Git仓库并推送到Github远程仓库

本地仓库 远程仓库 rebase merge

2023-10-06 18:30:52 346

原创 Java加解密(十一)PGP协议

PGP(Pretty Good Privacy),是一个基于公匙加密体系的安全传输协议,包括数字签名、压缩、加密、数字信封以及 Base64编码等过程。PGP Java示例。

2023-03-12 19:31:01 1402

原创 Java加解密(十)持久化秘钥

它的格式遵循Base64编码规则,以“-----BEGIN CERTIFICATE-----“和”-----END CERTIFICATE-----"两句作为文件头尾标识。加密算法的秘钥持久化是是一个不可避免的话题,如何安全的存储更是重中之重。将秘钥保存在文件中是最简单的一种方法,下面来讨论如何使用Java代码将秘钥保存到文件中。PEM文件通常以.pem, .crt, .cer, .key等扩展名命名。下面介绍几种简单的保存秘钥的方式,以RSA秘钥为例。引入bouncycastle依赖。

2023-03-12 18:28:31 554

原创 Java加解密(九)工具篇

KeyStoreExplorer是Java命令行程序keytool和jarsigner的开源GUI替代工具。keytool 是JDK 提供的证书相关操作的命令行工具,只要安装JDK 并且配置好相应的环境变量或者切换工作目录至keytool工具目录下,就可以在命令窗口运行。OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。是作为证书和密钥存储,以及作为签发证书的签名应用程序,是一个开源的工具,底层还是基于openssl的类库和API的。

2023-03-12 17:54:06 859

原创 Java加解密(八)数字证书

数字证书(Digital Certificate),一般指公钥证书(Public Key Certificate,PKC),类似于我们生活中的身份证,用于标识网络中的用户(计算机)身份,里面记有姓名、组织,邮箱,地区,国家等个人信息,以及属于此人的公钥,还包含由认证机构(Certification Authority,CA)施加的数字签名。公钥证书也简称为证书(Certificate)。上面的描述是不是很抽象,下面我们来具体看一看一个证书包含的具体数据。下面的内容是通过Java程序从证书文件。

2023-01-15 14:47:42 3808 1

原创 Java加解密(七)数字签名

数字签名(digital signature)是一种电子签名,也可以表示为一种数学算法,通常用于验证消息(例如,电子邮件、信用卡交易或数字文档)的真实性和完整性。数字签名并没有创建新的算法,主要是结合使用信息摘要算法(MD,SHA)和非对称加密算法(RSA,DSA)。信息摘要算法用来验证数据完整性,非对称加密算法用来进行身份验证。消息发送方用摘要算法和私钥加密生成签名,接收方用公钥解密验证签名,再用相同的摘要算法验证数据完整性。一个典型的消息发送过程如下:数字签名具有许多重要的应用,例如在电子政务活动中的电

2023-01-11 23:05:22 1023 3

原创 Java加解密(六)基于口令(PBE)加密

PBE(Password Based Encryption,基于口令加密)算法是一种基于口令的加密算法,其特点在于口令是由用户自己掌握的,采用随机数杂凑多重加密等方法保证数据的安全性。PBE算法没有密钥的概念,密钥在其它对称加密算法中是经过算法计算得出来的,PBE算法则是使用口令替代了密钥。密钥的长短直接影响了算法的安全性,但不方便记忆。即便是我们将密钥经过Base64编码转换为一个可见字符,长密钥一样不容易记忆。因此,在这种情况下密钥是需要存储的,但是口令则不然。

2023-01-11 18:51:38 1246

原创 Java加解密(五)信息摘要算法

数据摘要算法(信息摘要)是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于算法具有其不可逆性,有时候也会被用做敏感信息加密。消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法也叫散列函数、哈希函数,严格的说并不算是一种加密算法。消息摘要算法的主要作用不是完成数据的加密与解密工作的,它是用来验证数据完整性的重要技术。

2023-01-10 23:14:30 875

原创 Java加解密(四)非对称加密

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。由于安全性较好,并且密钥可以公开,无交换过程泄密的风险,因此非对此密钥算法被广泛使用,比如SSH、HTTPS、电子证书、数字签名、加密通讯等领域。公钥既可以进行加密,也可以解密,私钥也是一样,用于支持不同场景:1977年,三位数学家Rivest、Shami

2023-01-10 20:33:51 1900

原创 Java加解密(三)对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

2023-01-10 15:37:25 974

原创 Java加解密(二)核心类

JCA核心引擎类的使用,Cipher,Transform, 转换,padding,填充模式,mode,工作模式

2023-01-08 19:12:32 356

原创 Java加解密(一)概述

JCA( Java Cryptography Architecture, Java加密体系结构):JCA提供基本的加密框架, 如证书、 数字签名、消息摘要和密钥对产生器。JCE( Java Cryptography Extension, Java加密扩展包):JCE在JCA的基础上作了扩展, 提供了各种加密算法、 消息摘要算法和密钥管理等功能。JCE的实现主要在javax.crypto包( 及其子包) 中。

2023-01-07 19:32:14 1621

原创 Java I/O(五)NIO应用之Netty

Netty是一个客户端/服务器框架,它在Java的NIO网络组件上提供了一个简化的封装层。这使得它成为创建低级别非阻塞网络应用程序的一个不错的候选。让我们看看Netty框架的主要亮点:易用性:Netty比普通Java NIO更易于使用,并且有一套涵盖大多数用例的广泛示例最小依赖性:我们将在一分钟内看到,您只需一个依赖性即可获得整个框架性能:Netty比核心Java API具有更好的吞吐量和更低的延迟。由于其内部资源池,它还具有可扩展性。安全性:完全支持SSL/TLS和StartTLS。Bootst

2022-12-27 17:34:51 514

原创 Java I/O(三)文件I/O

Java文件I/O 字节流 字符流 输入流 输出流

2022-11-19 21:47:12 11372

原创 Java I/O(四)示例代码

使用Java 中的BIO,NIO,AIO,实现一个简单的客户端/服务端聊天系统

2022-11-10 21:27:53 491

原创 Java I/O(二)BIO, NIO, AIO

Java I/O, BIO, NIO, AIO, Channel, Buffer, Selector, Reactor模式,Proactor模式,多路复用

2022-11-09 23:38:10 366

原创 Java I/O(一)I/O概述

I/O,内存I/O,磁盘I/O,网络I/O,Java I/O,同步 I/O,异步I/O, 阻塞I/O,非阻塞I/O

2022-11-09 21:48:37 659

原创 Java函数式编程(五)设计和架构的原则

java 函数式编程 Lambda表达式 Stream 设计模式

2022-10-04 12:05:17 544

原创 Java函数式编程(四)JDK8对库的增强

java 函数式编程 Lambda表达式 Stream 设计模式

2022-10-04 11:58:17 385

原创 Java函数式编程(三)Stream

java 函数式编程 Lambda表达式 Stream 设计模式

2022-10-04 11:52:18 322

原创 Java函数式编程(二)Lambda表达式

java 函数式编程 Lambda表达式 Stream 设计模式

2022-10-04 11:29:33 383

原创 Java函数式编程(一)概述

java 函数式编程 Lambda表达式 Stream 设计模式

2022-10-04 11:19:16 564

原创 Java并发编程组件实例大全五:锁

锁内置锁(synchronized)显式锁Lock可重入锁(ReentrantLock)ReentrantLockReentrantReadWriteLockStampedLock线程的等待和唤醒LockSupportAQSAbstractOwnableSynchronizerAbstractQueuedSynchronizerAbstractQueuedLongSynchronizer

2022-05-21 17:36:02 1602

原创 Java并发编程组件实例大全四:同步工具

倒计数锁存(CountdownLatch)循环屏障(CyclicBarrier)信号量(Semaphore)exchanger

2022-04-10 18:33:41 513

原创 Java并发编程组件实例大全三:原子操作

原子操作类AtomicBoolean一个可以原子更新的布尔值。原子布尔值用于原子更新标志等应用程序中,不能用作布尔值的替代品。#mermaid-svg-4sRiwvQHECRVw9GZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4sRiwvQHECRVw9GZ .error-icon{fill:#552222;}#mermaid-svg-4sRiwvQHECRV

2022-03-19 23:03:54 155

原创 Java并发编程组件实例大全二:线程池

线程池类结构#mermaid-svg-2u0BVQytIAwZtdbo {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2u0BVQytIAwZtdbo .error-icon{fill:#552222;}#mermaid-svg-2u0BVQytIAwZtdbo .error-text{fill:#552222;stroke:#552222;}#mermaid-svg

2022-03-19 23:01:04 377

原创 Java并发编程组件实例大全一:线程

#mermaid-svg-v4Hzg4hJ0xr3Rdan .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-v4Hzg4hJ0xr3Rdan .label text{fill:#333}#mermaid-svg-v4Hzg4hJ0xr3Rdan .node rect,#mermaid-svg-v4Hzg4hJ0x

2022-03-19 20:13:03 487

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除