杂记一

创建项目的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. [转帖]Redis优化:Redis使用TCMalloc提高内存分配性能

    TCMalloc(Thread-Caching Malloc)是google开发的开源工具──"google-perftools"中的成员.与标准的glibc库的malloc相比, ...

  2. Springboot开发的应用为什么这么占用内存

    Springboot开发的应用为什么这么占用内存 Java的原罪 Java 程序员比 c或者是c++程序员相比轻松了很多. 不要管理繁杂的内存申请与释放,也不用担心因为忘记释放内存导致很严重的内存泄漏 ...

  3. [转帖]MySQL数据类型(decimal的存储大小)

    本来还以为MySQL的数据类型挺简单的,没想到竟然有很多坑,容我仔细道来 MySQL数据类型 整数类型(注意是字节) 浮点型(重点关注decimal) 字符型(注意这是4.x版本的定义,5.x以后已经 ...

  4. [转帖]一文浅析Nginx线程池!

    https://zhuanlan.zhihu.com/p/616500765     Nginx通过使用多路复用IO(如Linux的epoll.FreeBSD的kqueue等)技术很好的解决了c10k ...

  5. [转帖]Linux系统下cpio命令详解

    简介 cpio主要是解压或者将文件压缩到指定文件中即copy-in和copy-out模式. 参数说明 参数 参数说明 -i copy-in模式,解压文件 -o copy-out模式,即压缩文件 -d ...

  6. [转帖]一文解决内核是如何给容器中的进程分配CPU资源的?

    https://zhuanlan.zhihu.com/p/615570804   现在很多公司的服务都是跑在容器下,我来问几个容器 CPU 相关的问题,看大家对天天在用的技术是否熟悉. 容器中的核是真 ...

  7. [转帖]Linux系统语言设置和locale命令详解

    简介 Linux系统可以用locale命令查看语言设置,查看中英文环境,具体操作如下. 操作 1.查看当前安装有那些语言: [root@localhost /]# locale -a 2.当前语言相关 ...

  8. [转帖]Nacos 获取配置时启用权限认证

    默认情况下获取 Nacos 中的配置是不需要权限认证的, 这个估计是由其使用场景决定的(绝大多数都是仅内网可访问). 今天调查了下如何在获取配置时增加权限验证以提高其安全性. 1. 启用 Nacos ...

  9. [转帖]Nginx动静分离详解以及配置

    https://developer.aliyun.com/article/885602?spm=a2c6h.24874632.expert-profile.314.7c46cfe9h5DxWK 简介: ...

  10. [译]深入了解现代web浏览器(一)

    本文是根据Mariko Kosaka在谷歌开发者网站上的系列文章https://developer.chrome.com/blog/inside-browser-part1/ 翻译而来,共有四篇,该篇 ...