diff --git a/austin-service-api-impl/pom.xml b/austin-service-api-impl/pom.xml
index 6c14755..cf380ff 100644
--- a/austin-service-api-impl/pom.xml
+++ b/austin-service-api-impl/pom.xml
@@ -11,5 +11,11 @@
austin-service-api-impl
-
+
+
+ com.java3y.austin
+ austin-service-api
+ 0.0.1-SNAPSHOT
+
+
\ No newline at end of file
diff --git a/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/BusinessProcess.java b/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/BusinessProcess.java
new file mode 100644
index 0000000..c99e99a
--- /dev/null
+++ b/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/BusinessProcess.java
@@ -0,0 +1,10 @@
+package com.java3y.austin.pipeline;
+
+/**
+ * 业务执行器
+ *
+ * @author 3y
+ */
+public interface BusinessProcess {
+ void process(ProcessContext context);
+}
diff --git a/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessContext.java b/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessContext.java
new file mode 100644
index 0000000..43d1fcc
--- /dev/null
+++ b/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessContext.java
@@ -0,0 +1,24 @@
+package com.java3y.austin.pipeline;
+
+/**
+ * 责任链上下文
+ * @author 3y
+ */
+public class ProcessContext {
+
+ /**
+ * 标识责任链的code
+ */
+ private String code;
+
+ /**
+ * 存储责任链上下文数据的模型
+ */
+ private ProcessModel processModel;
+
+ /**
+ * 责任链中断的标识
+ */
+ private Boolean needBreak = false;
+
+}
diff --git a/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessModel.java b/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessModel.java
new file mode 100644
index 0000000..d955a4e
--- /dev/null
+++ b/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessModel.java
@@ -0,0 +1,10 @@
+package com.java3y.austin.pipeline;
+
+
+/**
+ * 真正存储着责任链的数据
+ * @author 3y
+ */
+public class ProcessModel {
+
+}
diff --git a/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessTemplate.java b/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessTemplate.java
new file mode 100644
index 0000000..cb9f964
--- /dev/null
+++ b/austin-service-api-impl/src/main/java/com/java3y/austin/pipeline/ProcessTemplate.java
@@ -0,0 +1,19 @@
+package com.java3y.austin.pipeline;
+
+import java.util.List;
+
+/**
+ * 业务执行模板(把责任链的逻辑串起来)
+ * @author 3y
+ */
+public class ProcessTemplate {
+
+ private List processList;
+
+ public List getProcessList() {
+ return processList;
+ }
+ public void setProcessList(List processList) {
+ this.processList = processList;
+ }
+}
\ No newline at end of file
diff --git a/austin-service-api-impl/src/main/java/com/java3y/austin/service/SendServiceImpl.java b/austin-service-api-impl/src/main/java/com/java3y/austin/service/SendServiceImpl.java
new file mode 100644
index 0000000..3b1a4c3
--- /dev/null
+++ b/austin-service-api-impl/src/main/java/com/java3y/austin/service/SendServiceImpl.java
@@ -0,0 +1,20 @@
+package com.java3y.austin.service;
+
+import com.java3y.austin.domain.SendRequest;
+import com.java3y.austin.domain.SendResponse;
+
+/**
+ * 发送接口
+ * @author 3y
+ */
+public class SendServiceImpl implements SendService {
+ @Override
+ public SendResponse send(SendRequest sendRequest) {
+ return null;
+ }
+
+ @Override
+ public SendResponse batchSend(SendRequest sendRequest) {
+ return null;
+ }
+}
diff --git a/austin-service-api/src/main/java/com/java3y/austin/domain/SendRequest.java b/austin-service-api/src/main/java/com/java3y/austin/domain/SendRequest.java
new file mode 100644
index 0000000..58d9fbc
--- /dev/null
+++ b/austin-service-api/src/main/java/com/java3y/austin/domain/SendRequest.java
@@ -0,0 +1,23 @@
+package com.java3y.austin.domain;
+
+
+/**
+ * 发送接口的参数
+ *
+ */
+public class SendRequest {
+
+ /**
+ * 消息模板Id
+ */
+ private Long messageTemplateId;
+
+ /**
+ * 接收者
+ * 多个用
+ */
+ private String receiver;
+
+
+
+}
diff --git a/austin-service-api/src/main/java/com/java3y/austin/domain/SendResponse.java b/austin-service-api/src/main/java/com/java3y/austin/domain/SendResponse.java
new file mode 100644
index 0000000..031d119
--- /dev/null
+++ b/austin-service-api/src/main/java/com/java3y/austin/domain/SendResponse.java
@@ -0,0 +1,4 @@
+package com.java3y.austin.domain;
+
+public class SendResponse {
+}
diff --git a/austin-service-api/src/main/java/com/java3y/austin/service/SendService.java b/austin-service-api/src/main/java/com/java3y/austin/service/SendService.java
new file mode 100644
index 0000000..9d2f912
--- /dev/null
+++ b/austin-service-api/src/main/java/com/java3y/austin/service/SendService.java
@@ -0,0 +1,18 @@
+package com.java3y.austin.service;
+
+import com.java3y.austin.domain.SendRequest;
+import com.java3y.austin.domain.SendResponse;
+
+/**
+ * 发送接口
+ *
+ * @author 3y
+ */
+public interface SendService {
+
+
+ SendResponse send(SendRequest sendRequest);
+
+
+ SendResponse batchSend(SendRequest sendRequest);
+}
diff --git a/austin-web/pom.xml b/austin-web/pom.xml
index f7e6db8..693bc67 100644
--- a/austin-web/pom.xml
+++ b/austin-web/pom.xml
@@ -21,6 +21,10 @@
austin-handler
0.0.1-SNAPSHOT
+
+ org.springframework.kafka
+ spring-kafka
+
diff --git a/austin-web/src/main/java/com/java3y/austin/controller/KafkaTestController.java b/austin-web/src/main/java/com/java3y/austin/controller/KafkaTestController.java
new file mode 100644
index 0000000..70b6939
--- /dev/null
+++ b/austin-web/src/main/java/com/java3y/austin/controller/KafkaTestController.java
@@ -0,0 +1,24 @@
+package com.java3y.austin.controller;
+
+import com.java3y.austin.kafkatest.UserLogProducer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class KafkaTestController {
+
+ @Autowired
+ private UserLogProducer userLogProducer;
+
+ /**
+ * test insert
+ */
+ @GetMapping("/kafka/insert")
+ public String insert(String userId) {
+ userLogProducer.sendLog(userId);
+
+ return null;
+ }
+
+}
diff --git a/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLog.java b/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLog.java
new file mode 100644
index 0000000..b8432b6
--- /dev/null
+++ b/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLog.java
@@ -0,0 +1,18 @@
+package com.java3y.austin.kafkatest;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @Author 18011618
+ * @Description 定义用户发送的日志数据
+ * @Date 14:42 2018/7/20
+ * @Modify By
+ */
+@Data
+@Accessors(chain = true)
+public class UserLog {
+ private String username;
+ private String userid;
+ private String state;
+}
\ No newline at end of file
diff --git a/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLogConsumer.java b/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLogConsumer.java
new file mode 100644
index 0000000..092ec03
--- /dev/null
+++ b/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLogConsumer.java
@@ -0,0 +1,30 @@
+package com.java3y.austin.kafkatest;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.kafka.clients.consumer.ConsumerRecord;
+import org.springframework.kafka.annotation.KafkaListener;
+import org.springframework.stereotype.Component;
+
+import java.util.Optional;
+
+/**
+ * @Author 18011618
+ * @Description
+ * @Date 14:50 2018/7/20
+ * @Modify By
+ */
+@Component
+@Slf4j
+public class UserLogConsumer {
+ @KafkaListener(topics = {"austin"},groupId = "austinGroup1")
+ public void consumer(ConsumerRecord,?> consumerRecord){
+ //判断是否为null
+ Optional> kafkaMessage = Optional.ofNullable(consumerRecord.value());
+ log.info(">>>>>>>>>> record =" + kafkaMessage);
+ if(kafkaMessage.isPresent()){
+ //得到Optional实例中的值
+ Object message = kafkaMessage.get();
+ System.err.println("消费消息:"+message);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLogProducer.java b/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLogProducer.java
new file mode 100644
index 0000000..d62e3a7
--- /dev/null
+++ b/austin-web/src/main/java/com/java3y/austin/kafkatest/UserLogProducer.java
@@ -0,0 +1,29 @@
+package com.java3y.austin.kafkatest;
+
+import com.alibaba.fastjson.JSON;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.kafka.core.KafkaTemplate;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author 18011618
+ * @Description
+ * @Date 14:43 2018/7/20
+ * @Modify By
+ */
+@Component
+public class UserLogProducer {
+ @Autowired
+ private KafkaTemplate kafkaTemplate;
+
+ /**
+ * 发送数据
+ * @param userid
+ */
+ public void sendLog(String userid){
+ UserLog userLog = new UserLog();
+ userLog.setUsername("jhp").setUserid(userid).setState("0");
+ System.err.println("发送用户日志数据:"+userLog);
+ kafkaTemplate.send("austin", JSON.toJSONString(userLog));
+ }
+}
\ No newline at end of file
diff --git a/austin-web/src/main/resources/application.yml b/austin-web/src/main/resources/application.yml
index d05fae7..dd772c1 100644
--- a/austin-web/src/main/resources/application.yml
+++ b/austin-web/src/main/resources/application.yml
@@ -25,5 +25,17 @@ spring:
username:
password:
driver-class-name:
+ # kafka相关的信息配置 TODO
+ kafka:
+ bootstrap-servers:
+ producer:
+ key-serializer: org.apache.kafka.common.serialization.StringSerializer
+ value-serializer: org.apache.kafka.common.serialization.StringSerializer
+ consumer:
+ key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
+ value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
+ auto:
+ offset:
+ reset: earliest
# tomcat / HikariPool(数据库连接池 配置) TODO
\ No newline at end of file