[新增功能](master): 初始化后项目

更新了log的 初始化配置代码
master
土豆兄弟 3 years ago
commit 549b0736b6

46
.gitignore vendored

@ -0,0 +1,46 @@
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

@ -0,0 +1,39 @@
<h1><div style="text-align: center; color: cornflowerblue">百业代码规范及一些标准化过程示例 v0.1.1</div></h1>
## 0. 项目说明
对后端java代码进行一些标准化的过程说明,帮助整个技术团队提升自己的技术规范及水平
## 1. 项目内容说明
dev-protocol-test
- SpringBoot项目Test的编写规范及使用标准
- 参考: https://mp.weixin.qq.com/s/W5v8zOCHbc2_NvobMGaU8w
dev-protocol-log
- 分布式日志系统的设计及实现,主要涉及kafka Springboot ELK
## 2. 基本命令
- Kafka
查看topic列表命令(连接其中一个就好了)
【旧版】kafka-topics.sh --zookeeper 172.16.26.183:2181 --list
【新版】kafka-topics.sh --bootstrap-server localhost:9092 --list
zookeeper is not a recognized option主要原因是 Kafka 版本过高,命令不存在)
创建topic主题
kafka-topics.sh --bootstrap-server localhost:9092 --create --topic topic1 --partitions 1 --replication-factor 3
--create 命令后 --topic 为创建topic 并指定 topic name
--partitions 为指定分区数量
--replication-factor 为指定副本集数量
向kafka集群发送数据
【无key型消息】kafka-console-producer.sh --bootstrap-server localhost:9092 --topic topic1
【有key型消息】 kafka-console-producer.sh --bootstrap-server localhost:9092 --topic topic1 --property parse.key=true
默认消息键与消息值间使用“Tab键”进行分隔切勿使用转义字符(\t)
kafka命令接受数据
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic1 --from-beginning
## 3. 注意事项
必须在hosts文件中配置 /etc/hosts
方法一:改掉/etc/sysconfig/network中hostname的值为localhost
方法二:在/etc/hosts中添加127.0.0.1到该hostname的映射

@ -0,0 +1,46 @@
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>dev-protocol</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dev-protocol-log</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,17 @@
package com.baiye;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
*
*
* @author q
* @date 2021/11/16
*/
@SpringBootApplication
public class DevProtocolLogApplication {
public static void main(String[] args) {
SpringApplication.run(DevProtocolLogApplication.class, args);
}
}

@ -0,0 +1,47 @@
package com.baiye.kafka;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.Acknowledgment;
import org.springframework.stereotype.Component;
/**
*
*
* @author q
* @date 2021/11/16
*/
@Component
@Slf4j
public class KafkaConsumer {
@Autowired
private KafkaTemplate<String, Object> kafkaTemplate;
/**
*
*
* @param record
* @param acknowledgment ack
* @param consumer
*/
@KafkaListener(groupId = "group02", topics = "topic02")
public void onMessage(ConsumerRecord<String, Object> record, Acknowledgment acknowledgment, Consumer<?, ?> consumer){
// 接收到消息
log.info(" 消费端接收消息: {}", record.toString());
// 手工ACK确认接收到消息
acknowledgment.acknowledge();
}
}

@ -0,0 +1,45 @@
package com.baiye.kafka;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.SendResult;
import org.springframework.stereotype.Component;
import org.springframework.util.concurrent.ListenableFuture;
import org.springframework.util.concurrent.ListenableFutureCallback;
/**
*
*
* @author q
* @date 2021/11/16
*/
@Component
@Slf4j
public class KafkaProducer {
@Autowired
private KafkaTemplate<String, Object> kafkaTemplate;
/**
*
*
* @param topic
* @param object
*/
public void sendMessage(String topic, Object object){
ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send(topic, object);
future.addCallback(new ListenableFutureCallback<SendResult<String, Object>>() {
@Override
public void onFailure(Throwable ex) {
log.error("发送消息失败, {} , {} " ,ex.getMessage(), ex.toString());
}
@Override
public void onSuccess(SendResult<String, Object> result) {
log.info("发送消息成功, 消息: {}", result.toString());
}
});
}
}

@ -0,0 +1,58 @@
server:
servlet:
context-path: /kafka
port: 8001
# Spring整合Kafka的整合选项
spring:
kafka:
# todo 公网访问端口,这里没开
bootstrap-servers: 121.89.208.118:9092,39.103.195.38:9092,39.103.188.57:9092
# 生产者
producer:
# kafka producer 发送消息失败的一个重试的次数
retries: 0
# 批量发送数据的配置
batch-size: 16384
# 设置 kafka 生产者内存缓冲区的大小(32M)
buffer-memory: 33554432
# 设置 kafka 消息的序列化配置
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
# kafka 生产端最重要的选项,
# acks=0 表示生产者在成功写入消息之前不会等待任何来自服务器的响应
# acks=1 只要集群的首领节点收到消息,生产者就会收到来自服务器成功响应
# acks=-1 表示分区leader必须等待消息被成功写入到所有的ISR副本同步副本中才认为produce请求成功这种方案提供最高的消息持久性保证,但理论上吞吐率也是最差的。
acks: 1
# 消费者
consumer:
# todo 公网访问端口,这里没开
bootstrap-servers: 121.89.208.118:9092,39.103.195.38:9092,39.103.188.57:9092
# consumer 消息的签收机制: 手工签收
enable-auto-commit: false
# 该属性制定了消费者在读取一个没有偏移量的分区或者偏移量无效的情况下该作何处理
# latest (默认值) 在偏移量无效的情况下,消费者姜葱最新的记录开始读取数据(在消费者启动之后生成的记录)
# earliest 在偏移量无效的情况下, 消费者从起始位置读取分区的记录
auto-offset-reset: earliest
# 序列化配置
key-deserializer: org.apache.kafka.common.serialization.StringSerializer
value-deserializer: org.apache.kafka.common.serialization.StringSerializer
listener:
# 手动ack方式进行确认
ack-mode: manual
# 并行度
concurrency: 5

@ -0,0 +1,46 @@
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>dev-protocol</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dev-protocol-test</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- 防止使用旧的junit4相关接口我们将其依赖排除。 -->
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

@ -0,0 +1,14 @@
package com.baiye.service;
/**
*
*
* <p>ps: Dao/Model,Service</>
*
* @author q
* @date 2021/11/12
*/
public interface DemoTestService {
void oneOperation();
}

@ -0,0 +1,10 @@
package com.baiye.service.impl;
import com.baiye.service.DemoTestService;
public class DemoTestServiceImpl implements DemoTestService {
@Override
public void oneOperation() {
}
}

@ -0,0 +1,31 @@
package com.baiye.service.impl;
class DemoTestServiceImplTest {
/*
*
*
* @BeforeEach
* @BeforeAll
* @DisplayName("商品入库测试")
* @Disabled
* @RepeatedTest(n)n
* @ParameterizedTest
* @ValueSource(ints = {1, 2, 3})
*/
/*
: 使
JUnit Jupiter
使java8lambdaorg.junit.jupiter.api.Assertionsstatic
*/
}

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>dev-protocol</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>dev-protocol-test</module>
<module>dev-protocol-log</module>
</modules>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring.boot.version>2.3.2.RELEASE</spring.boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Loading…
Cancel
Save