杂记一

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

杂记二

1Panel是一个和宝塔一样的服务器管理面板,官方网站如下:

1Panel - 现代化、开源的 Linux 服务器运维管理面板

安装地址帮助地址如下:

在线安装 - 1Panel 文档

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开发技巧杂记的更多相关文章

  1. Java 开发技巧

    一 读取配置文件 1 Properties读取配置文件 编写配置文件config.properties放在普通java工程的src目录(如果是maven工程就放在工程的src/main/resourc ...

  2. java开发技巧

    1,IDEA辅助功能Shift +F2去到有错误的地方Alt+Enter,会给出解决错误的建议: 2,调试,没问题的步骤,直接跳过,不要跳入细节: 调试时,要明确要跟踪的变量,不要陷入混乱: 3,调试 ...

  3. Java 8的五大开发技巧

    转载:http://geek.csdn.net/news/detail/94219 在Java 9发布之前,我们来分享一些Java 8开发技巧,本文翻译自JetBrains高级开发主管Trisha G ...

  4. Eclipse Java 开发平台实用技巧

    前言 在使用Eclipse开发Java程序的使用,有很多实用的技巧,能大大提高开发效率. 本文将介绍一部分技巧.更多的心得还得在具体项目中慢慢掌握,熟悉. 初始设定 这些具体的设置方法这里不说,网上很 ...

  5. Java开发小技巧(一)

    前言 相信许多程序员在看别人写的代码的时候,会有怀疑人生的感想,面对一堆天书一样的代码,很难摸清作者的思路,最后选择了重构,如果你认同上面这个作法,说明了两个问题:要么原来的开发者技术菜.要么你技术菜 ...

  6. Java开发小技巧(三):Maven多工程依赖项目

    前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...

  7. 简历编写技巧-java开发工程师简历实战

    看到一遍简历编写的文章 想到也快找工作了 早晚能够用上 现在摘录如下 640?wx_fmt=jpeg 工欲善其事,必先利其器,这是自古以来的道理.所以如果想找到一份好的工作,一定要先整理一份好的简历. ...

  8. 28个Java开发常用规范技巧总结

    1.类的命名使用驼峰式命名的规范. 例如:UserService,但是以下情景例外:DO / BO / PO / DTO / VO. 例如说:UserPO,StudentPO(PO,VO,DTO,等这 ...

  9. 使用Java开发高性能网站需要关注的那些事儿

    无论大型门户网站还是中小型垂直类型网站都会对稳定性.性能和可伸缩性有所追求.大型网站的技术经验分享值得我们去学习和借用,但落实到更具体的实践上并不是对所有网站可以适用,其他语言开发的网站我还不敢多说, ...

  10. 实验一 Java开发环境的熟悉

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...

随机推荐

  1. PG数据库的离线rpm包下载

    PG数据库的离线rpm包下载 背景 周末时间研究数据库的版本. 发现PostgreSQL数据库的版本号已经变成了一年一个大版本. 兼容起来其实成本很高. 想着能够在能够上网的机器上面弄好多套数据库. ...

  2. [转帖]Kafka高可用 — KRaft集群搭建

    Apache Kafka Raft 是一种共识协议,它的引入是为了消除 Kafka 对 ZooKeeper 的元数据管理的依赖,被社区称之为 Kafka Raft metadata mode,简称 K ...

  3. [转帖]最全MySQL锁讲解:页锁、共享锁、行锁、表锁、悲观锁、乐观锁

    我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突),如何保证数据并发访问的一致性.有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从 ...

  4. Oracle TNS 异常问题处理

    今天下午快下班时同事找我说自己的性能测试Oracle数据库 连不上了. 然后自己连上去简单看了一下. 因为已经是事后了, 所以没有截图,只通过文字说明. 环境说明:Win2012r2 + Oracle ...

  5. Chrome 下载地址

    今天同事找到一个网页 感觉非常好用 这里保存并且推荐一下 https://www.chromedownloads.net/chrome64win-stable/

  6. linux线程调度策略

    linux线程调度策略 这是一篇非常好的关于线程调度的资料,翻译自shed 目录 linux线程调度策略 Scheduling policies SCHED_FIFO: First in-first ...

  7. Fabric网络升级(总)

    原文地址在这里. 在fabric网络中,升级nodes和通道至最新版本需要四步: 备份账本和MSPs. 以滚动的方式将orderer升级到最新版. 以滚动的方式将peers升级到最新版. 将order ...

  8. 人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化)、CNN+LSTM模型建模

    "AI Earth"人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化).CNN+LSTM模型建模 1.气象海洋预测-数据分析 数据分 ...

  9. C/C++ 静态编译SQLITE数据库API

    C/C++ 编译并使用Sqlite数据库,实现增删改查. 首先下载数据库: https://sqlite.org/download.html 分别下载:sqlite-amalgamation-3350 ...

  10. 物联网浏览器(IoTBrowser)-Modbus协议集成和测试

    Modbus协议在应用中一般用来与PLC或者其他硬件设备通讯,Modbus集成到IoTBrowser使用串口插件模式开发,不同的是采用命令函数,具体可以参考前面几篇文章.目前示例实现了Modbus-R ...