Java开发技巧杂记
杂记一
创建项目的spring initializr,要求是创建spring boot3.0,且不在支持java8语言,且要求语言大于17,所以创建项目时,无法创建srping2.0项目了;如果要创建spring2.0,需要改server url,即获取创建模版的地址;地址使用阿里云的:https://start.aliyun.com

杂记二
1Panel是一个和宝塔一样的服务器管理面板,官方网站如下:
1Panel - 现代化、开源的 Linux 服务器运维管理面板
安装地址帮助地址如下:
1Panel会以docker容器安装应用。
杂记三
配置prperties 编码如下:
settings——Editor——FileEncodings配置Default encoding for prperties files:
杂记四
settings——Plugins搜索maven-search,然后安装插件,该插件可以快速搜索jar包,可以不用上https://mvnrepository.com/网站上搜索。
安装完,Tools会增加MavenSearch菜单。
杂记五
在安装了docker的服务器,执行下面命令,可以进入容器内部。
docker exec -it <container-id> /bin/bash
docker exec -it fb623ac9704fb4bec8dc2a6cc84831890947728504c8fed8be57c0b5a3a6197a /bin/bash
权限不足则使用
docker exec -u 0 -it kafka0001 /bin/bash
在linux里执行下面命令,查看安装了哪些docker容器。
docker ps
which docker 命令用于查找 docker 命令所在的路径。
which docker
杂记六 使用1panel安装kafka
在maven-search中搜索kafka-clients,获取到依赖如下:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.6.0</version>
</dependency>
然后编写连接kafka代码。
static Collection<String> topicColl = Collections.singleton("my-topic");
//生产者:键编码器
static String keyEncoder = "org.apache.kafka.common.serialization.StringSerializer";
//生产者:值编码器
static String valueEncoder = "org.apache.kafka.common.serialization.StringSerializer";
//消费者:键解码器
static String keyDecoder = "org.apache.kafka.common.serialization.StringDeserializer";
//消费者:值解码器
static String valueDecoder = "org.apache.kafka.common.serialization.StringDeserializer";
public static void main(String[] args) {
SpringApplication.run(KKafkaApplication.class, args);
producter1();
consumer1();
}
static void producter1() {
Properties properties = new Properties();
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "10.1.0.145:9092");
properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, keyEncoder);
properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, valueEncoder);
properties.put(ConsumerConfig.GROUP_ID_CONFIG, "my-group-id");
KafkaProducer<String, String> producer = new KafkaProducer<>(properties);
String message = "hello world ";
try {
for (int i = 0; i < 10; i++) {
// 异步写入数据
String topic = topicColl.toArray()[0].toString();
ProducerRecord<String, String> producerRecord = new ProducerRecord<>(topic, message + i);
producer.send(producerRecord, new Callback() {
@Override
public void onCompletion(RecordMetadata metadata, Exception exception) {
if (Objects.nonNull(exception)) {
log.error(">>>>>>>>>>Producer生产消息异常:", exception);
}
if (Objects.nonNull(metadata)) {
log.info(">>>>>>>>>>Producer生产消息:metadata:{},partition:{}, offset:{}", metadata, metadata.partition(), metadata.offset());
}
}
});
}
} catch (Exception ex) {
throw new RuntimeException(ex);
} finally {
producer.close();
}
}
static void consumer1() {
try {
Properties properties = new Properties();
properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "10.1.0.145:9092");
properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, keyDecoder);
properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, valueDecoder);
properties.put(ConsumerConfig.GROUP_ID_CONFIG, "my-group-id");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(properties);
consumer.subscribe(topicColl);
while (Boolean.TRUE) {
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(10000));
for (ConsumerRecord<String, String> record : records) {
log.info(">>>>>>>>Consumer offset:{}, value:{}", record.offset(), record.value());
}
}
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
如果抛出异常java.net.UnknownHostException: kafka0001,则需要配置host文件。
在C:\Windows\System32\drivers\etc的host文件下,添加
10.1.0.145 kafka0001
杂记六 flink
在linux部署Flink需要先安装JDK。
需要到官网先下载安装包。
官网下载地址:https://flink.apache.org/downloads/
各个版本下载地址:https://dlcdn.apache.org/flink/
然后使用final shell上传到 soft/resources下。
然后进入soft/resources,执行命令解压
tar -zxvf flink-1.18.0-bin-scala_2.12.tgz -C /soft/flink/
然后进入flink文件夹
cd /soft/flink/flink-1.18.0/
然后进入conf。
cd conf
然后修改配置文件里的localhost都改为0.0.0.0
vi flink-conf.yaml
然后执行命令启动
bin/start-cluster.sh
然后放行8081,然后jps查看进程
jps
然后访问192.1.0.1:8081
flink使用maven快速创建java项目使用的包如下:
<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-quickstart-java -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-quickstart-java</artifactId>
<version>1.18.0</version>
</dependency>
ps:flink官网学习地址:https://nightlies.apache.org/flink/flink-docs-stable/docs/try-flink/local_installation/
ps:flinkCDC,cdc不是flink提供的,是ververica提供的,参考地址:MySQL CDC 连接器 — CDC Connectors for Apache Flink documentation (ververica.github.io)
----------------------------------------------------------------------------------------------------
注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!

Java开发技巧杂记的更多相关文章
- Java 开发技巧
一 读取配置文件 1 Properties读取配置文件 编写配置文件config.properties放在普通java工程的src目录(如果是maven工程就放在工程的src/main/resourc ...
- java开发技巧
1,IDEA辅助功能Shift +F2去到有错误的地方Alt+Enter,会给出解决错误的建议: 2,调试,没问题的步骤,直接跳过,不要跳入细节: 调试时,要明确要跟踪的变量,不要陷入混乱: 3,调试 ...
- Java 8的五大开发技巧
转载:http://geek.csdn.net/news/detail/94219 在Java 9发布之前,我们来分享一些Java 8开发技巧,本文翻译自JetBrains高级开发主管Trisha G ...
- Eclipse Java 开发平台实用技巧
前言 在使用Eclipse开发Java程序的使用,有很多实用的技巧,能大大提高开发效率. 本文将介绍一部分技巧.更多的心得还得在具体项目中慢慢掌握,熟悉. 初始设定 这些具体的设置方法这里不说,网上很 ...
- Java开发小技巧(一)
前言 相信许多程序员在看别人写的代码的时候,会有怀疑人生的感想,面对一堆天书一样的代码,很难摸清作者的思路,最后选择了重构,如果你认同上面这个作法,说明了两个问题:要么原来的开发者技术菜.要么你技术菜 ...
- Java开发小技巧(三):Maven多工程依赖项目
前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...
- 简历编写技巧-java开发工程师简历实战
看到一遍简历编写的文章 想到也快找工作了 早晚能够用上 现在摘录如下 640?wx_fmt=jpeg 工欲善其事,必先利其器,这是自古以来的道理.所以如果想找到一份好的工作,一定要先整理一份好的简历. ...
- 28个Java开发常用规范技巧总结
1.类的命名使用驼峰式命名的规范. 例如:UserService,但是以下情景例外:DO / BO / PO / DTO / VO. 例如说:UserPO,StudentPO(PO,VO,DTO,等这 ...
- 使用Java开发高性能网站需要关注的那些事儿
无论大型门户网站还是中小型垂直类型网站都会对稳定性.性能和可伸缩性有所追求.大型网站的技术经验分享值得我们去学习和借用,但落实到更具体的实践上并不是对所有网站可以适用,其他语言开发的网站我还不敢多说, ...
- 实验一 Java开发环境的熟悉
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
随机推荐
- [转帖]如何在一个Docker中同时运行多个程序进程?
https://cloud.tencent.com/developer/article/1683445 我们都知道Docker容器的哲学是一个Docker容器只运行一个进程,但是有时候我们就是需要在一 ...
- [转帖]金仓数据库KingbaseES V8R6索引坏块故障处理
案例说明: 在执行表数据查询时,出现下图所示错误,索引故障导致表无法访问,后重建索引问题解决.本案例复现了此类故障解决过程. 适用版本: KingbaseES V8R3/R6 一.创建测试环境 # 表 ...
- 【转帖】Linux多链路聚合技术
https://www.jianshu.com/p/dd8587ecf54f 一般而言,在单体结构的操作系统中,一块物理磁盘会接在总线设备上,并经由总线分配 PCI-Bus 号,这个时候一个 bus ...
- [转帖]ebpf 月报 - 2023 年 1 月
https://segmentfault.com/a/1190000043355631 本刊物旨在为中文用户提供及时.深入.有态度的 ebpf 资讯. 如果你吃了鸡蛋觉得好吃,还想认识下蛋的母鸡,欢迎 ...
- [转帖]【JVM】JDK命令行工具
在JDK/bin目录下我发现了许多命令行工具 这些命令有哪些作用呢,接下来我就来详细介绍一下 常用JDK命令行工具 命令名称 全称 用途 jstat JVM Statistics Monitoring ...
- 是否开启raid卡缓存的影响
开启raid卡缓存 Write back 对IO性能的影响 背景 公司买了一台服务器. 想进行一下升级 但是因为管理员担心数据丢失, 使用了write through + (raid6 + hotsp ...
- 部分操作系统不支持 zip unzip 大于4G的文件.
https://www.ibm.com/mysupport/s/question/0D50z00006PD9XXCA1/bad-zipfile-offset-local-header-sig-erro ...
- 【发现一个问题】VictoriaMetrics中,vm-select与vm-storage之间的协议存在版本兼容性问题
使用中发现,vm-select 1.76版本,查询vm-storage的1.70版本,报以下错误: cannot execute rpcName="search_v5" on vm ...
- Go中字符串处理:fmt.Sprintf与string.Builder的比较
在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用fmt.Sprintf函数和string.Builder类型.尽管两者都可以实现字符串的格式化和连接,但它们在性能和用法上有一些关键区 ...
- STM32CubeMX教程28 SDIO - 使用FatFs文件系统读写SD卡
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 ...