forked from yudaocode/SpringBoot-Labs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
YunaiV
committed
Mar 19, 2020
1 parent
7e92a03
commit a564adc
Showing
28 changed files
with
789 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
64 changes: 64 additions & 0 deletions
64
labx-13/labx-13-sc-sleuth-mq-kafka/labx-13-sc-sleuth-mq-kafka-producer/pom.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
<?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>labx-13-sc-sleuth-mq-kafka</artifactId> | ||
<groupId>cn.iocoder.springboot.labs</groupId> | ||
<version>1.0-SNAPSHOT</version> | ||
</parent> | ||
<modelVersion>4.0.0</modelVersion> | ||
|
||
<artifactId>labx-13-sc-sleuth-mq-kafka-producer</artifactId> | ||
|
||
<properties> | ||
<maven.compiler.target>1.8</maven.compiler.target> | ||
<maven.compiler.source>1.8</maven.compiler.source> | ||
<spring.boot.version>2.2.4.RELEASE</spring.boot.version> | ||
<spring.cloud.version>Hoxton.SR1</spring.cloud.version> | ||
</properties> | ||
|
||
<!-- | ||
引入 Spring Boot、Spring Cloud、Spring Cloud Alibaba 三者 BOM 文件,进行依赖版本的管理,防止不兼容。 | ||
在 https://dwz.cn/mcLIfNKt 文章中,Spring Cloud Alibaba 开发团队推荐了三者的依赖关系 | ||
--> | ||
<dependencyManagement> | ||
<dependencies> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-parent</artifactId> | ||
<version>${spring.boot.version}</version> | ||
<type>pom</type> | ||
<scope>import</scope> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.springframework.cloud</groupId> | ||
<artifactId>spring-cloud-dependencies</artifactId> | ||
<version>${spring.cloud.version}</version> | ||
<type>pom</type> | ||
<scope>import</scope> | ||
</dependency> | ||
</dependencies> | ||
</dependencyManagement> | ||
|
||
<dependencies> | ||
<!-- 引入 SpringMVC 相关依赖,并实现对其的自动配置 --> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-web</artifactId> | ||
</dependency> | ||
|
||
<!-- 引入 Spring Cloud Stream kafka 相关依赖,将 kafka 作为消息队列,并实现对其的自动配置 --> | ||
<dependency> | ||
<groupId>org.springframework.cloud</groupId> | ||
<artifactId>spring-cloud-starter-stream-kafka</artifactId> | ||
</dependency> | ||
|
||
<!-- 引入 Spring Cloud Sleuth + Zipkin 相关依赖,实现对它们的自动配置,从而实现链路追踪 --> | ||
<dependency> | ||
<groupId>org.springframework.cloud</groupId> | ||
<artifactId>spring-cloud-starter-zipkin</artifactId> | ||
</dependency> | ||
</dependencies> | ||
|
||
</project> |
16 changes: 16 additions & 0 deletions
16
...c/main/java/cn/iocoder/springcloud/labx13/kafkademo/producerdemo/ProducerApplication.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package cn.iocoder.springcloud.labx13.kafkademo.producerdemo; | ||
|
||
import cn.iocoder.springcloud.labx13.kafkademo.producerdemo.message.MySource; | ||
import org.springframework.boot.SpringApplication; | ||
import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
import org.springframework.cloud.stream.annotation.EnableBinding; | ||
|
||
@SpringBootApplication | ||
@EnableBinding(MySource.class) | ||
public class ProducerApplication { | ||
|
||
public static void main(String[] args) { | ||
SpringApplication.run(ProducerApplication.class, args); | ||
} | ||
|
||
} |
37 changes: 37 additions & 0 deletions
37
...ava/cn/iocoder/springcloud/labx13/kafkademo/producerdemo/controller/Demo01Controller.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
package cn.iocoder.springcloud.labx13.kafkademo.producerdemo.controller; | ||
|
||
import cn.iocoder.springcloud.labx13.kafkademo.producerdemo.message.Demo01Message; | ||
import cn.iocoder.springcloud.labx13.kafkademo.producerdemo.message.MySource; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.messaging.Message; | ||
import org.springframework.messaging.support.MessageBuilder; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
import java.util.Random; | ||
|
||
@RestController | ||
@RequestMapping("/demo01") | ||
public class Demo01Controller { | ||
|
||
private Logger logger = LoggerFactory.getLogger(getClass()); | ||
|
||
@Autowired | ||
private MySource mySource; | ||
|
||
@GetMapping("/send") | ||
public boolean send() { | ||
// 创建 Message | ||
Demo01Message message = new Demo01Message() | ||
.setId(new Random().nextInt()); | ||
// 创建 Spring Message 对象 | ||
Message<Demo01Message> springMessage = MessageBuilder.withPayload(message) | ||
.build(); | ||
// 发送消息 | ||
return mySource.demo01Output().send(springMessage); | ||
} | ||
|
||
} |
29 changes: 29 additions & 0 deletions
29
...main/java/cn/iocoder/springcloud/labx13/kafkademo/producerdemo/message/Demo01Message.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package cn.iocoder.springcloud.labx13.kafkademo.producerdemo.message; | ||
|
||
/** | ||
* 示例 01 的 Message 消息 | ||
*/ | ||
public class Demo01Message { | ||
|
||
/** | ||
* 编号 | ||
*/ | ||
private Integer id; | ||
|
||
public Demo01Message setId(Integer id) { | ||
this.id = id; | ||
return this; | ||
} | ||
|
||
public Integer getId() { | ||
return id; | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "Demo01Message{" + | ||
"id=" + id + | ||
'}'; | ||
} | ||
|
||
} |
11 changes: 11 additions & 0 deletions
11
.../src/main/java/cn/iocoder/springcloud/labx13/kafkademo/producerdemo/message/MySource.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package cn.iocoder.springcloud.labx13.kafkademo.producerdemo.message; | ||
|
||
import org.springframework.cloud.stream.annotation.Output; | ||
import org.springframework.messaging.MessageChannel; | ||
|
||
public interface MySource { | ||
|
||
@Output("demo01-output") | ||
MessageChannel demo01Output(); | ||
|
||
} |
34 changes: 34 additions & 0 deletions
34
...sc-sleuth-mq-kafka/labx-13-sc-sleuth-mq-kafka-producer/src/main/resources/application.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
spring: | ||
application: | ||
name: demo-producer-application | ||
cloud: | ||
# Spring Cloud Stream 配置项,对应 BindingServiceProperties 类 | ||
stream: | ||
# Binder 配置项,对应 BinderProperties Map | ||
# binders: | ||
# Binding 配置项,对应 BindingProperties Map | ||
bindings: | ||
demo01-input: | ||
destination: DEMO-TOPIC-01 # 目的地。这里使用 Kafka Topic | ||
content-type: application/json # 内容格式。这里使用 JSON | ||
group: demo01-consumer-group # 消费者分组 | ||
# Spring Cloud Stream Kafka 配置项 | ||
kafka: | ||
# Kafka Binder 配置项,对应 KafkaBinderConfigurationProperties 类 | ||
binder: | ||
brokers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔 | ||
|
||
# Zipkin 配置项,对应 ZipkinProperties 类 | ||
zipkin: | ||
base-url: http://127.0.0.1:9411 # Zipkin 服务的地址 | ||
|
||
# Spring Cloud Sleuth 配置项 | ||
sleuth: | ||
messaging: | ||
# Spring Cloud Sleuth 针对 Kafka 组件的配置项 | ||
kafka: | ||
enabled: true # 是否开启 | ||
remote-service-name: kafka # 远程服务名,默认为 kafka | ||
|
||
server: | ||
port: 18080 |
64 changes: 64 additions & 0 deletions
64
labx-13/labx-13-sc-sleuth-mq-kafka/labx-13-sc-stream-mq-kafka-consumer/pom.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
<?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>labx-10</artifactId> | ||
<groupId>cn.iocoder.springboot.labs</groupId> | ||
<version>1.0-SNAPSHOT</version> | ||
</parent> | ||
<modelVersion>4.0.0</modelVersion> | ||
|
||
<artifactId>labx-13-sc-stream-mq-kafka-consumer</artifactId> | ||
|
||
<properties> | ||
<maven.compiler.target>1.8</maven.compiler.target> | ||
<maven.compiler.source>1.8</maven.compiler.source> | ||
<spring.boot.version>2.2.4.RELEASE</spring.boot.version> | ||
<spring.cloud.version>Hoxton.SR1</spring.cloud.version> | ||
</properties> | ||
|
||
<!-- | ||
引入 Spring Boot、Spring Cloud、Spring Cloud Alibaba 三者 BOM 文件,进行依赖版本的管理,防止不兼容。 | ||
在 https://dwz.cn/mcLIfNKt 文章中,Spring Cloud Alibaba 开发团队推荐了三者的依赖关系 | ||
--> | ||
<dependencyManagement> | ||
<dependencies> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-parent</artifactId> | ||
<version>${spring.boot.version}</version> | ||
<type>pom</type> | ||
<scope>import</scope> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.springframework.cloud</groupId> | ||
<artifactId>spring-cloud-dependencies</artifactId> | ||
<version>${spring.cloud.version}</version> | ||
<type>pom</type> | ||
<scope>import</scope> | ||
</dependency> | ||
</dependencies> | ||
</dependencyManagement> | ||
|
||
<dependencies> | ||
<!-- 引入 SpringMVC 相关依赖,并实现对其的自动配置 --> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-web</artifactId> | ||
</dependency> | ||
|
||
<!-- 引入 Spring Cloud Stream Kafka 相关依赖,将 kafka 作为消息队列,并实现对其的自动配置 --> | ||
<dependency> | ||
<groupId>org.springframework.cloud</groupId> | ||
<artifactId>spring-cloud-starter-stream-kafka</artifactId> | ||
</dependency> | ||
|
||
<!-- 引入 Spring Cloud Sleuth + Zipkin 相关依赖,实现对它们的自动配置,从而实现链路追踪 --> | ||
<dependency> | ||
<groupId>org.springframework.cloud</groupId> | ||
<artifactId>spring-cloud-starter-zipkin</artifactId> | ||
</dependency> | ||
</dependencies> | ||
|
||
</project> |
16 changes: 16 additions & 0 deletions
16
...c/main/java/cn/iocoder/springcloud/labx13/kafkademo/consumerdemo/ConsumerApplication.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package cn.iocoder.springcloud.labx13.kafkademo.consumerdemo; | ||
|
||
import cn.iocoder.springcloud.labx13.kafkademo.consumerdemo.listener.MySink; | ||
import org.springframework.boot.SpringApplication; | ||
import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
import org.springframework.cloud.stream.annotation.EnableBinding; | ||
|
||
@SpringBootApplication | ||
@EnableBinding(MySink.class) | ||
public class ConsumerApplication { | ||
|
||
public static void main(String[] args) { | ||
SpringApplication.run(ConsumerApplication.class, args); | ||
} | ||
|
||
} |
20 changes: 20 additions & 0 deletions
20
...in/java/cn/iocoder/springcloud/labx13/kafkademo/consumerdemo/listener/Demo01Consumer.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package cn.iocoder.springcloud.labx13.kafkademo.consumerdemo.listener; | ||
|
||
import cn.iocoder.springcloud.labx13.kafkademo.consumerdemo.message.Demo01Message; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
import org.springframework.cloud.stream.annotation.StreamListener; | ||
import org.springframework.messaging.handler.annotation.Payload; | ||
import org.springframework.stereotype.Component; | ||
|
||
@Component | ||
public class Demo01Consumer { | ||
|
||
private Logger logger = LoggerFactory.getLogger(getClass()); | ||
|
||
@StreamListener(MySink.DEMO01_INPUT) | ||
public void onMessage(@Payload Demo01Message message) { | ||
logger.info("[onMessage][线程编号:{} 消息内容:{}]", Thread.currentThread().getId(), message); | ||
} | ||
|
||
} |
13 changes: 13 additions & 0 deletions
13
...r/src/main/java/cn/iocoder/springcloud/labx13/kafkademo/consumerdemo/listener/MySink.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package cn.iocoder.springcloud.labx13.kafkademo.consumerdemo.listener; | ||
|
||
import org.springframework.cloud.stream.annotation.Input; | ||
import org.springframework.messaging.SubscribableChannel; | ||
|
||
public interface MySink { | ||
|
||
String DEMO01_INPUT = "demo01-input"; | ||
|
||
@Input(DEMO01_INPUT) | ||
SubscribableChannel demo01Input(); | ||
|
||
} |
29 changes: 29 additions & 0 deletions
29
...main/java/cn/iocoder/springcloud/labx13/kafkademo/consumerdemo/message/Demo01Message.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package cn.iocoder.springcloud.labx13.kafkademo.consumerdemo.message; | ||
|
||
/** | ||
* 示例 01 的 Message 消息 | ||
*/ | ||
public class Demo01Message { | ||
|
||
/** | ||
* 编号 | ||
*/ | ||
private Integer id; | ||
|
||
public Demo01Message setId(Integer id) { | ||
this.id = id; | ||
return this; | ||
} | ||
|
||
public Integer getId() { | ||
return id; | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "Demo01Message{" + | ||
"id=" + id + | ||
'}'; | ||
} | ||
|
||
} |
34 changes: 34 additions & 0 deletions
34
...sc-sleuth-mq-kafka/labx-13-sc-stream-mq-kafka-consumer/src/main/resources/application.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
spring: | ||
application: | ||
name: demo-consumer-application | ||
cloud: | ||
# Spring Cloud Stream 配置项,对应 BindingServiceProperties 类 | ||
stream: | ||
# Binder 配置项,对应 BinderProperties Map | ||
# binders: | ||
# Binding 配置项,对应 BindingProperties Map | ||
bindings: | ||
demo01-input: | ||
destination: DEMO-TOPIC-01 # 目的地。这里使用 Kafka Topic | ||
content-type: application/json # 内容格式。这里使用 JSON | ||
group: demo01-consumer-group # 消费者分组 | ||
# Spring Cloud Stream Kafka 配置项 | ||
kafka: | ||
# Kafka Binder 配置项,对应 KafkaBinderConfigurationProperties 类 | ||
binder: | ||
brokers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔 | ||
|
||
# Zipkin 配置项,对应 ZipkinProperties 类 | ||
zipkin: | ||
base-url: http://127.0.0.1:9411 # Zipkin 服务的地址 | ||
|
||
# Spring Cloud Sleuth 配置项 | ||
sleuth: | ||
messaging: | ||
# Spring Cloud Sleuth 针对 kafka 组件的配置项,例如说 SpringMVC | ||
kafka: | ||
enabled: true # 是否开启 | ||
remote-service-name: kafka # 远程服务名,默认为 kafka | ||
|
||
server: | ||
port: ${random.int[10000,19999]} # 随机端口,方便启动多个消费者 |
Oops, something went wrong.