diff --git a/README.md b/README.md
index 5788d48..6306df4 100644
--- a/README.md
+++ b/README.md
@@ -68,13 +68,13 @@ spring-cloud:Finchley.SR2
| samples | 描述 | 官方文档 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
-| [spring-cloud-Eureka](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-eureka) | eureka 服务的注册和发现 | [Service Discovery: Eureka Server](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-eureka-server.html) |
-| [spring-cloud-Eureka-cluster](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-eureka-cluster) | eureka 高可用集群搭建 | [Service Discovery: Eureka Server](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-eureka-server.html) |
-| [spring-cloud-Ribbon](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-ribbon) | ribbon客户端负载均衡 | [Client Side Load Balancer: Ribbon](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-ribbon.html) |
-| [spring-cloud-OpenFeign](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-feign) | openfeign 声明式服务调用 | [Declarative REST Client: Feign](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-feign.html) |
-| [spring-cloud-Hystrix](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-hystrix) | hystix 服务容错保护
hystrix dashboard 断路器监控
turbine 断路器聚合监控 | [Circuit Breaker: Hystrix Clients](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi__circuit_breaker_hystrix_clients.html)
[Hystrix metrics aggregation with Turbine ](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-consul-turbine.html) |
+| [spring-cloud-eureka](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-eureka) | eureka 服务的注册和发现 | [Service Discovery: Eureka Server](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-eureka-server.html) |
+| [spring-cloud-eureka-cluster](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-eureka-cluster) | eureka 高可用集群搭建 | [Service Discovery: Eureka Server](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-eureka-server.html) |
+| [spring-cloud-ribbon](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-ribbon) | ribbon客户端负载均衡 | [Client Side Load Balancer: Ribbon](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-ribbon.html) |
+| [spring-cloud-openFeign](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-feign) | openfeign 声明式服务调用 | [Declarative REST Client: Feign](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-feign.html) |
+| [spring-cloud-hystrix](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-hystrix) | hystix 服务容错保护
hystrix dashboard 断路器监控
turbine 断路器聚合监控 | [Circuit Breaker: Hystrix Clients](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi__circuit_breaker_hystrix_clients.html)
[Hystrix metrics aggregation with Turbine ](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-consul-turbine.html) |
| [spring-cloud-zuul](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-zuul) | zuul 网关服务 | [Router and Filter: Zuul](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi__router_and_filter_zuul.html) |
-| [spring-cloud-sleuth-Zipkin](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-sleuth-zipkin) | sleuth 分布式系统服务追踪 | [Spring Cloud Sleuth](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi__introduction.html#sleuth-adding-project) |
+| [spring-cloud-sleuth-zipkin](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-sleuth-zipkin) | sleuth 分布式系统服务追踪 | [Spring Cloud Sleuth](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi__introduction.html#sleuth-adding-project) |
| [spring-cloud-config-bus](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-config) | config 分布式配置中心
bus消息总线 实现配置热更新 | [Spring Cloud Config Client](https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi__spring_cloud_config_client.html) |
| [spring-cloud-stream](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring-cloud/spring-cloud-stream) | stream 对消息服务的抽象整合 | [spring-cloud-stream](http://cloud.spring.io/spring-cloud-stream/single/spring-cloud-stream.html) |
diff --git a/pictures/SCSt-with-binder.png b/pictures/SCSt-with-binder.png
new file mode 100644
index 0000000..b4d66fd
Binary files /dev/null and b/pictures/SCSt-with-binder.png differ
diff --git a/pictures/spring-cloud-stream.png b/pictures/spring-cloud-stream.png
new file mode 100644
index 0000000..09ab529
Binary files /dev/null and b/pictures/spring-cloud-stream.png differ
diff --git a/spring-cloud/spring-cloud-stream/pom.xml b/spring-cloud/spring-cloud-stream/pom.xml
deleted file mode 100644
index 01f606d..0000000
--- a/spring-cloud/spring-cloud-stream/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.0.8.RELEASE
-
-
- com.heibaiying.stream
- spring-cloud-stream
- 0.0.1-SNAPSHOT
- spring-cloud-stream
- spring cloud stream project for Spring Boot
-
-
- 1.8
- Finchley.SR2
-
-
-
-
-
- org.springframework.boot
- spring-boot-starter-amqp
-
-
- org.springframework.cloud
- spring-cloud-starter-stream-rabbit
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.projectlombok
- lombok
- true
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
-
-
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- ${spring-cloud.version}
- pom
- import
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
-
diff --git a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/SpringCloudStreamApplication.java b/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/SpringCloudStreamApplication.java
deleted file mode 100644
index 7addbf5..0000000
--- a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/SpringCloudStreamApplication.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.heibaiying.stream;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class SpringCloudStreamApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(SpringCloudStreamApplication.class, args);
- }
-
-}
-
diff --git a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/bean/Programmer.java b/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/bean/Programmer.java
deleted file mode 100644
index 892da29..0000000
--- a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/bean/Programmer.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.heibaiying.stream.bean;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-import java.util.Date;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class Programmer implements Serializable {
-
- private String name;
-
- private int age;
-
- private float salary;
-
- private Date birthday;
-}
diff --git a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/controller/MessageController.java b/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/controller/MessageController.java
deleted file mode 100644
index 1a4d671..0000000
--- a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/controller/MessageController.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.heibaiying.stream.controller;
-
-import com.heibaiying.stream.bean.Programmer;
-import com.heibaiying.stream.stream.CustomStream;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.messaging.Message;
-import org.springframework.messaging.MessageHeaders;
-import org.springframework.messaging.support.MessageBuilder;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author : heibaiying
- * @description : 发送测试消息
- */
-@RestController
-public class MessageController {
-
- @Autowired
- private CustomStream customStream;
-
- /***
- * 1、发送简单消息
- */
- @RequestMapping("sendSimpleMessage")
- public void sendSimpleMessage() {
- customStream.input().send(MessageBuilder.withPayload("hello spring cloud stream").build());
- }
-
-
- /***
- * 2、发送消息体为对象的消息
- */
- @RequestMapping("sendObject")
- public void sendObject() {
- Programmer programmer=new Programmer("pro",12,212.2f,new Date());
- customStream.input().send(MessageBuilder.withPayload(programmer).build());
- }
-
- /**
- * 3、发送带有消息头的消息
- */
- @RequestMapping("sendWithHeads")
- public void sendWithHeads() {
- Programmer programmer=new Programmer("pro",12,212.2f,new Date());
- Map map=new HashMap<>();
- map.put("code","868686");
- MessageHeaders messageHeaders=new MessageHeaders(map);
- Message message= MessageBuilder.createMessage(programmer,messageHeaders);
- customStream.input().send(message);
- }
-
- /**
- * 4、条件消息 可以看做是消息路由键的一种实现
- */
- @RequestMapping("sendWithKey")
- public void sendWithKey() {
- // 创建消息头key 为 01 的消息
- Programmer programmer=new Programmer("key01",12,212.2f,new Date());
- Map map=new HashMap<>();
- map.put("key","01");
- MessageHeaders messageHeaders=new MessageHeaders(map);
- Message message= MessageBuilder.createMessage(programmer,messageHeaders);
- customStream.input().send(message);
-
- // 创建消息头key 为 02 的消息
- programmer.setName("key02");
- map.put("key","02");
- MessageHeaders messageHeaders02=new MessageHeaders(map);
- Message message02= MessageBuilder.createMessage(programmer,messageHeaders02);
- customStream.input().send(message02);
- }
-
- /**
- * 5、消息转发
- */
- @RequestMapping("forward")
- public void forward(){
- customStream.input().send(MessageBuilder.withPayload("hello spring cloud stream").build());
- }
-
- /**
- * 5、直接往output发消息
- */
- @RequestMapping("toOutPut")
- public void toOutPut(){
- customStream.output().send(MessageBuilder.withPayload("direct to output channel").build());
- }
-}
diff --git a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/stream/CustomStream.java b/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/stream/CustomStream.java
deleted file mode 100644
index 1224468..0000000
--- a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/stream/CustomStream.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.heibaiying.stream.stream;
-
-import org.springframework.cloud.stream.annotation.Input;
-import org.springframework.cloud.stream.annotation.Output;
-import org.springframework.messaging.MessageChannel;
-import org.springframework.messaging.SubscribableChannel;
-
-/**
- * @author : heibaiying
- */
-public interface CustomStream {
-
- String INPUT = "customInput";
- String OUTPUT = "customOutput";
-
- @Input(CustomStream.INPUT)
- SubscribableChannel input();
-
- @Output(CustomStream.OUTPUT)
- MessageChannel output();
-
-}
diff --git a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/stream/StreamReceived.java b/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/stream/StreamReceived.java
deleted file mode 100644
index 759f4f4..0000000
--- a/spring-cloud/spring-cloud-stream/src/main/java/com/heibaiying/stream/stream/StreamReceived.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.heibaiying.stream.stream;
-
-import com.heibaiying.stream.bean.Programmer;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.cloud.stream.annotation.EnableBinding;
-import org.springframework.cloud.stream.annotation.StreamListener;
-import org.springframework.messaging.handler.annotation.Header;
-import org.springframework.messaging.handler.annotation.Headers;
-import org.springframework.messaging.handler.annotation.Payload;
-import org.springframework.messaging.handler.annotation.SendTo;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @author : heibaiying
- * @description :消息的监听
- * 注意: 测试这个类的时候需要注释掉不必要的监听,因为对同一个通道存在多个监听,任何一个通道都不能存在返回值(如果有返回值应该指定出站目标) 我们下面的forward消息转发的方法是有返回值的
- * 否则会抛出异常: IllegalArgumentException: If multiple @StreamListener methods are listening to the same binding target, none of them may return a value
- */
-
-@Component
-@EnableBinding(CustomStream.class)
-@Slf4j
-public class StreamReceived {
-
- @StreamListener(value = CustomStream.INPUT)
- public void simple(Object payload) {
- log.info("收到简单消息: {}", payload);
- }
-
- @StreamListener(value = CustomStream.INPUT)
- public void object(Programmer programmer) {
- log.info("收到对象消息: {}", programmer);
- }
-
- /*
- * 用 @Header 监听时候需要注意,指定名称的属性必须在消息头中存在 不然就会抛出异常 MessageHandlingException: Missing header 'XXXX' for method parameter type [class java.lang.String]
- */
- @StreamListener(value = CustomStream.INPUT)
- public void heads(@Payload Programmer programmer, @Headers Map map, @Header(name = "code") String code) {
- log.info("收到对象消息: {}", programmer);
- map.forEach((key, value) -> {
- log.info("消息头{}的值为{}", key, value);
- });
- log.info("绑定指定消息头: code = {}", code);
- }
-
-
- /*
- * 监听消息头key = 01 的消息
- */
- @StreamListener(target = CustomStream.INPUT, condition = "headers['key']=='01'")
- public void key01(@Payload Programmer programmer) {
- log.info("key01 监听器接收到消息: {}", programmer.getName());
- }
-
- /*
- * 监听消息头key = 02 的消息
- */
- @StreamListener(target = CustomStream.INPUT, condition = "headers['key']=='01'")
- public void key02(@Payload Programmer programmer) {
- log.info("key02 监听器接收到消息: {}", programmer.getName());
- }
-
- /**
- * 消息转发
- */
- @StreamListener(target = CustomStream.INPUT)
- @SendTo(CustomStream.OUTPUT)
- public String forward(String payload){
- log.info("input forward: {}",payload);
- return "forward "+payload;
- }
-
- @StreamListener(target = CustomStream.OUTPUT)
- public void outSimpleListen(String payload){
- log.info("output 收到简单消息: {}", payload);
- }
-
-}
diff --git a/spring-cloud/spring-cloud-stream/src/main/resources/application.yml b/spring-cloud/spring-cloud-stream/src/main/resources/application.yml
deleted file mode 100644
index 7858ee9..0000000
--- a/spring-cloud/spring-cloud-stream/src/main/resources/application.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-spring:
- rabbitmq:
- host: localhost
- port: 5672
- username: guest
- password: guest
- # 指定消息的分组 默认交换机的类型是topic,发送消息是广播的方式,
- # 所有客户端都会受到消息,指定分组后只有一个客户端可以接收到消息
- cloud:
- stream:
- bindings:
- # 和我们在接口中声明消息名称的保持一致
- customInput:
- # 分组名称任意填写即可
- group: gro
diff --git a/spring-cloud/spring-cloud-stream/src/test/java/com/heibaiying/stream/SpringCloudStreamApplicationTests.java b/spring-cloud/spring-cloud-stream/src/test/java/com/heibaiying/stream/SpringCloudStreamApplicationTests.java
deleted file mode 100644
index 2efa878..0000000
--- a/spring-cloud/spring-cloud-stream/src/test/java/com/heibaiying/stream/SpringCloudStreamApplicationTests.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.heibaiying.stream;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class SpringCloudStreamApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
-