- 博客(225)
- 收藏
- 关注

原创 项目亮点:请求合并-线程之间通信,解决高并发请求
在我们平时业务中,经常会遇到一些情况,请求频率很高,需要频繁请求第三方接口,或者需要频繁操作数据库。比如,如下几个例子:(1)电商系统,秒杀场景 ,需要频繁的去数据库修改库存。(2)业务场景,当前接口需要频繁的调用三方接口,当三方接口有反爬虫,或者有固定时间请求次数限制的话,就会导致请求报错或者超时。
2023-02-04 16:50:31
976
2
原创 03. Flink 集群部署
下载地址:https://archive.apache.org/dist/flink/flink-1.17.0/flink-1.17.0-bin-scala_2.12.tgz。准备三台虚拟机,一台作为主节点部署 JobManager,然后三台机器分别部署 TaskManager。(1)修改配置 /usr/local/flink-1.17.0/conf/flink-conf.yaml。(1)下载 Flink 安装包,上传到 /root/software 路径。(2)解压到/usr/local。
2024-05-20 01:33:05
1006
1
原创 02. Flink 快速上手
pom文件:2、需求批处理基本思路:先逐行读取文本,在根据空格进行单词拆分,最后再去统计每个单词出现的频率。(1)数据准备在工程目录下新建文件夹input,新建文本words.txt。文件输入:2.1 批处理代码编写(使用DataSet API实现)运行结果:代码编写(使用DataStream API实现,读取文件属于有界流)执行结果:前面的编号是并行度,线程数。(1)使用 netcat 监听7777端口,建立stream流安装 netcat监听 7777 端口(2)代码编写(使用Data
2024-05-19 18:49:50
576
原创 01. Flink 简介
Spark数据模型:Spark 采用 RDD 模型,Spark Streaming的DStream 实际上也就是一组组小批数据RDD 的集合Spark运行时架构:Spark 是批计算,将 DAG 划分为不同的 stage,一个完成后才可以计算下一个。Flink 数据模型:Flink 基本数据模型是流数据,以及事件(Event)序列。Flink 运行时架构:Flink 是标准的流执行模式,一个事件在一个节点处理完后可以直接发往下一个节点进行处理。
2024-05-19 18:49:15
1589
原创 05、Kafka 操作命令
(1)创建主题–bootstrap-server:设置kafka执行节点–topic:主题名称–partitions:设置分区数,可以用于并发消费。–replication-factor:设置副本因子,数量不能大于kafka节点数。(2)查看主题(3)在我们配置的文件夹下,就可以看到topic对应的文件夹,其中 0,1,2,3是因为我们指定的partitions为4,创建了4个分区。
2024-05-10 12:42:23
2012
1
原创 Zookeeper集群启动报错:Cannot open channel to 2 at election address 192.168.135.1333888
报错:Cannot open channel to 2 at election address /192.168.135.133:3888。记录一个启动zookeeper集群报错,如果你的zookeeper启动失败,查看日志。是因为没有权限开启其他机器的端口,可以去开放指定端口,或者是关闭防火墙。关闭防火墙后,问题解决。
2024-05-10 10:33:37
851
1
原创 Kafka 执行命令超时异常: Timed out waiting for a node assignment
而我的环境是使用了三台虚拟机,分别部署了zookeeper和kafka,所以在没有指定的情况下,默认都是使用localhost,在执行命令的时候,会找不到对应的ip地址。由于刚学习 kafka搭建集群,根据网上教程来,教程中三台kafka都部署在同一台机器上,所以不需要额外指定kafka实力的ip地址。将三台机器的配置ip改为虚拟机ip地址。通过在zookeeper上查看节点信息,其中ip信息也改成了真实ip信息。修改保存后,再去重启kafka。
2024-05-10 10:33:02
3655
1
原创 kafka 集群搭建启动报错:java.lang.RuntimeException: Invalid cluster.id in: /usr/local/kafka_2.12-3.7.0/data/m
根本原因:server.properties和meta.perporties(kafka启动后会在日志目录下生成的配置文件)配置文件的broke.id的值不一样,在我们服务重启后机器重启因meta.properties配置文件没处理掉,所以就会报错。1、我们找到我们的server.properties配置文件的log.dirs参数的配置项,找到我们的log配置目录。就是直接手动将meta.properties的值改成server.properties的值一致。直接原因:服务器在重启后出现的问题。
2024-05-10 10:32:29
1243
1
原创 03、 Kafaka单机环境部署
(1)安装Zookeeper(2)启动zookeeper(3)安装 Kafka(4)启动Kafka–name kafka: 设置容器的名字为“kafka”。-p 9092:9092: 将容器的9092端口映射到宿主机的9092端口。–link zookeeper:zookeeper: 连接到名为“zookeeper”的另一个Docker容器,并且在当前的容器中可以通过zookeeper这个别名来访问它。
2024-05-06 23:52:43
1043
原创 02、Kafaka 简介
Apache Kafka 是一个分布式的发布-订阅消息系统,最初由 LinkedIn 公司开发,并在 2010 年贡献给了 Apache 软件基金会,成为一个顶级开源项目。Kafka 设计之初是为了满足高吞吐量、可扩展性、持久性、容错性以及高并发的需求,它非常适合用于实时数据流的处理,包括日志聚合、事件源、流式处理等场景。Kafka 的设计思想和架构使其成为了大数据处理领域中一个非常流行的工具。
2024-05-06 23:51:23
1016
原创 01、JMS规范介绍
JMS,全称Java Mesage Service,即Java消息服务应用程序接口,是一个Java平台中关于面向消息中间件的AP!,用于在两个应用程序之间、或者分布式系统中发送消息,进行异步通信。JMS是一种与厂商无关的API,用来访问消息、收发系统消息,它类似于JDBC。JMS可以自己使用Java代码或者别的代码来编写,开源的实现有Active MQ、阿里的Rocket MQ(已贡献给Apache)、Kafka等。
2024-05-06 23:50:47
750
转载 MyBatis 插件介绍及应用
MyBatis 插件是 MyBatis 框架的扩展点,它们可以拦截 MyBatis 的核心处理过程,包括执行器、参数处理器、结果处理器等。通过编写插件,开发者可以在不修改 MyBatis 核心代码的情况下,增加新的功能或改变 MyBatis 的行为。
2024-04-29 16:05:54
3022
原创 MySQL为什么建议单表不要超过2000万行
在工作中或者面试中,经常会说mysql单表牛不要超过2000w行,超过两千万行建议分表,否则查询效率会急剧下降。那么一张表最多可以存多少数据呢,今天我们从底层技术进行刨析,分析下根本原因。
2024-04-12 16:30:11
1510
原创 优雅代码 - 策略+模板+工厂模式解决冗余代码
你是否也在项目中遇到了,大量冗余的if else代码,大量的逻辑判断,每个逻辑中的处理有比较类似,如果你熟练掌握设计模式,你肯定能够想到使用策略模式和模板模式进行封装,今天我就给大家带来一个生动的例子,让你同时使用到 策略、模板以及工厂设计模式。
2024-04-11 15:34:34
627
原创 08.适配器模式
将一个类的接口转化成用户需要的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式可以分为类适配器和对象适配器两种,区别在于适配器角色对应被适配角色的适配是通过继承还是组合来实现的。由于Java不支持多继承,而且会破坏封装性,所有我们提倡多用组合少用继承。
2023-02-04 16:27:04
507
原创 06.建造者模式
建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不用的表示。在建造者模式的结构中引入了一个指挥者类,该类的作用主要有两个:一方面它隔离了客户与生产过程;另一方面他负责控制产品的生成过程。指挥者针对抽象建造者编程,客户端只需知道具体建造者的类型,即可通过指挥者类调用建造者的相关方法,返回一个完整的产品对象。
2023-02-04 16:21:55
462
原创 05.抽象工厂模式
抽象工厂又称为Kit模式,属于对象创建型模式。抽象工厂可以将统一产品族的单独工厂封装起来,在正常使用中,客户端需要创建抽象工厂的实现,然后使用抽象工厂作为接口来创建这一主题的具体对象。客户端程序不需要知道它从这些内部的工厂方法中获得对象的具体类型,因为客户端程序仅使用这些对象的通用接口。抽象工厂模式将一组对象的实现细节与他们的一般使用分离开来。
2023-02-04 16:20:44
530
原创 04.单例模式
单例模式是Java中最简单的设计模式之一。这种设计模式属于创建型模式。单例模式一般体现在类声明中,单例的类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
2023-02-04 16:19:01
666
原创 03.工厂模式
在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不负责产品类被实例化这种细节,这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。 工厂方法模式的主要优点是增加新的产品类时无须修改现有系统,并封装了产品对象的创建细节,系统具有良好的灵活性和可扩展性;其缺点在于增加新产品的同时需要增加新的工厂,导致系统类的个数成对增加,在一定程度上增加了系统的复杂性。
2023-02-04 16:17:58
375
原创 01.观察者模式
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。主题和观察者定义了一对多的关系。观察者依赖于此主题,只要主题状态一有变化,观察者就会被通知。根据通知的风格,观察者可能因此新值而更新。实现观察者模式的方法不止一种,包含 Subject 和 Observer 接口的类最为常见。
2023-02-04 16:11:01
459
原创 1752. 检查数组是否经排序和轮转得到(难度:简单)
题目连接:https://leetcode.cn/problems/check-if-array-is-sorted-and-rotated/
2022-12-21 19:40:53
91
原创 813. 最大平均值和的分组(难度:中等)
题目链接:https://leetcode.cn/problems/largest-sum-of-averages/
2022-12-21 19:38:22
266
原创 792. 匹配子序列的单词数(难度:中等)
题目连接:https://leetcode.cn/problems/number-of-matching-subsequences/
2022-12-21 19:35:44
129
原创 775. 全局倒置与局部倒置(难度:中等)
题目描述:https://leetcode.cn/problems/global-and-local-inversions/
2022-12-21 19:32:47
385
原创 1710. 卡车上的最大单元数(难度:简单)
题目链接:https://leetcode.cn/problems/maximum-units-on-a-truck/Q。
2022-12-21 19:30:42
175
原创 790. 多米诺和托米诺平铺(难度:中等)
题目链接:https://leetcode.cn/problems/domino-and-tromino-tiling/
2022-12-21 19:28:30
194
原创 1668. 最大重复子字符串(难度:简单)
题目描述:https://leetcode.cn/problems/maximum-repeating-substring/
2022-12-21 19:22:40
131
原创 1620. 网络信号最好的坐标(难度:中等)
题目链接:https://leetcode.cn/problems/coordinate-with-maximum-network-quality/
2022-12-21 19:20:16
107
原创 1662. 检查两个字符串数组是否相等(难度:简单)
题目链接:https://leetcode.cn/problems/check-if-two-string-arrays-are-equivalent/
2022-12-21 19:15:19
225
原创 784. 字母大小写全排列(难度:中等)
题目链接:https://leetcode.cn/problems/letter-case-permutation/
2022-10-30 23:24:42
125
原创 965. 单值二叉树(难度:简单)
题目链接:https://leetcode.cn/problems/univalued-binary-tree/
2022-10-30 11:01:55
90
原创 1822. 数组元素积的符号(难度:简单)
题目链接:https://leetcode.cn/problems/sign-of-the-product-of-an-array/
2022-10-29 23:19:01
101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人