diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/dubbo.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/dubbo.adoc deleted file mode 100644 index 3dc8bc9ea..000000000 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/dubbo.adoc +++ /dev/null @@ -1,45 +0,0 @@ -== Spring Cloud Alibaba Dubbo - -=== 简介 - -Dubbo Spring Cloud 基于 Dubbo Spring Boot 2.7.3[1] 和 Spring Cloud 2.x 开发,无论开发人员是 Dubbo 用户还是 Spring Cloud 用户, -都能轻松地驾驭,并以接近“零”成本的代价使应用向上迁移。Dubbo Spring Cloud 致力于简化 Cloud Native 开发成本,提高研发效能以及提升应用性能等目的。 - -=== 功能 - -由于 Dubbo Spring Cloud 构建在原生的 Spring Cloud 之上,其服务治理方面的能力可认为是 Spring Cloud Plus, -不仅完全覆盖 Spring Cloud 原生特性[5],而且提供更为稳定和成熟的实现,特性比对如下表所示: - -|=== -|功能组件 |Spring Cloud |Dubbo Spring Cloud -| 分布式配置(Distributed configuration) | Git、Zookeeper、Consul、JDBC | Spring Cloud 分布式配置 + Dubbo 配置中心[6] -| 服务注册与发现(Service registration and discovery) | Eureka、Zookeeper、Consul | Spring Cloud 原生注册中心[7] + Dubbo 原生注册中心[8] -| 负载均衡(Load balancing) | Ribbon(随机、轮询等算法) | Dubbo 内建实现(随机、轮询等算法 + 权重等特性) -| 服务熔断(Circuit Breakers) | Spring Cloud Hystrix | Spring Cloud Hystrix + Alibaba Sentinel[9] 等 -| 服务调用(Service-to-service calls) | Open Feign、`RestTemplate` | Spring Cloud 服务调用 + Dubbo `@Reference` -| 链路跟踪(Tracing) | Spring Cloud Sleuth[10] + Zipkin[11] | Zipkin、opentracing 等 -|=== - -=== Reference 说明 - -[1]: 从 2.7.0 开始,Dubbo Spring Boot 与 Dubbo 在版本上保持一致 - -[2]: Preview releases of Spring Cloud Alibaba are available: 0.9.0, 0.2.2, and 0.1.2 - https://spring.io/blog/2011/04/11/preview-releases-of-spring-cloud-alibaba-are-available-0-9-0-0-2-2-and-0-1-2 - -[3]: 目前最新的 Spring Cloud “F” 版的版本为:`Finchley.SR2` - https://cloud.spring.io/spring-cloud-static/Finchley.SR2/single/spring-cloud.html - -[4]: 当前Spring Cloud “G” 版为 `Greenwich.RELEASE` - -[5]: Spring Cloud 特性列表 - https://cloud.spring.io/spring-cloud-static/Greenwich.RELEASE/single/spring-cloud.html#_features - -[6]: Dubbo 2.7 开始支持配置中心,可自定义适配 - http://dubbo.apache.org/zh-cn/docs/user/configuration/config-center.html - -[7]: Spring Cloud 原生注册中心,除 Eureka、Zookeeper、Consul 之外,还包括 Spring Cloud Alibaba 中的 Nacos - -[8]: Dubbo 原生注册中心 - http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html - -[9]: Alibaba Sentinel:Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性 - https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D ,目前 Sentinel 已被 Spring Cloud 项目纳为 Circuit Breaker 的候选实现 - https://spring.io/blog/2011/04/8/introducing-spring-cloud-circuit-breaker - -[10]:Spring Cloud Sleuth - https://spring.io/projects/spring-cloud-sleuth - -[11]: Zipkin - https://github.com/apache/incubator-zipkin \ No newline at end of file diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/spring-cloud-alibaba.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/spring-cloud-alibaba.adoc index 80f858ea0..ff430c385 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/spring-cloud-alibaba.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/spring-cloud-alibaba.adoc @@ -17,8 +17,6 @@ include::nacos-config.adoc[] include::sentinel.adoc[] -include::dubbo.adoc[] - include::rocketmq-new.adoc[] include::rocketmq.adoc[] diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc/dubbo.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc/dubbo.adoc deleted file mode 100644 index 2d0b6b9b9..000000000 --- a/spring-cloud-alibaba-docs/src/main/asciidoc/dubbo.adoc +++ /dev/null @@ -1,45 +0,0 @@ -== Spring Cloud Alibaba Dubbo - -=== Introduction - -Dubbo Spring Cloud is based on Dubbo Spring Boot 2.7.3[1] and Spring Cloud 2.x development, whether the developer is a Dubbo user or a Spring Cloud user. -Easily navigate and move apps up at a cost close to “zero” costs. Dubbo Spring Cloud is designed to simplify Cloud Native development costs, improve R&D performance, and improve application performance. - -=== Features - -Since Dubbo Spring Cloud is built on top of the native Spring Cloud, its service governance capabilities are considered Spring Cloud Plus. -Not only does it fully cover the Spring Cloud native features [5], but it also provides a more stable and mature implementation, as shown in the following table: - -|=== -|Feature |Spring Cloud |Dubbo Spring Cloud -| Distributed configuration | Git、Zookeeper、Consul、JDBC | Spring Cloud Distributed Configuration + Dubbo Configuration Center[6] -| Service registration and discovery | Eureka、Zookeeper、Consul | Spring Cloud Native Registration Center[7] + Dubbo Native Registration Center[8] -| Load balancing | Ribbon(Random, RoundRobin) | Dubbo built-in implementation (random, polling, etc. + weights, etc.) -| Circuit Breakers | Spring Cloud Hystrix | Spring Cloud Hystrix + Alibaba Sentinel[9] etc. -| Service-to-service calls | Open Feign、`RestTemplate` | Spring Cloud service call + Dubbo `@Reference`. -| Tracing | Spring Cloud Sleuth[10] + Zipkin[11] | Zipkin、opentracing, etc. -|=== - -=== Reference - -[1]: Starting with 2.7.0, Dubbo Spring Boot and Dubbo are consistent in version - -[2]: Preview releases of Spring Cloud Alibaba are available: 0.9.0, 0.2.2, and 0.1.2 - https://spring.io/blog/2011/04/11/preview-releases-of-spring-cloud-alibaba-are-available-0-9-0-0-2-2-and-0-1-2 - -[3]: The current version of the Spring Cloud "F" is: `Finchley.SR2` - https://cloud.spring.io/spring-cloud-static/Finchley.SR2/single/spring-cloud.html - -[4]: The current Spring Cloud "G" version is `Greenwich.RELEASE` - -[5]: Spring Cloud feature list - https://cloud.spring.io/spring-cloud-static/Greenwich.RELEASE/single/spring-cloud.html#_features - -[6]: Dubbo 2.7 starts supporting the configuration center and can be customized - http://dubbo.apache.org/en-us/docs/user/configuration/config-center.html - -[7]: Spring Cloud native registry, in addition to Eureka, Zookeeper, and Consul, includes Nacos in Spring Cloud Alibaba - -[8]: Dubbo Native Registration Center - http://dubbo.apache.org/en-us/docs/user/references/registry/introduction.html - -[9]: Alibaba Sentinel: Sentinel uses traffic as an entry point to protect service stability from multiple dimensions such as flow control, blowdown, and system load protection - https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B %E7%BB%8D, currently Sentinel has been accepted as a candidate for Circuit Breaker by the Spring Cloud project - https://spring.io/blog/2011/04/8/introducing-spring-cloud-circuit-breaker - -[10]:Spring Cloud Sleuth - https://spring.io/projects/spring-cloud-sleuth - -[11]: Zipkin - https://github.com/apache/incubator-zipkin \ No newline at end of file diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc/spring-cloud-alibaba.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc/spring-cloud-alibaba.adoc index 884e0d561..e0cefbbeb 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc/spring-cloud-alibaba.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc/spring-cloud-alibaba.adoc @@ -17,8 +17,6 @@ include::nacos-config.adoc[] include::sentinel.adoc[] -include::dubbo.adoc[] - include::rocketmq.adoc[] include::ans.adoc[] diff --git a/spring-cloud-alibaba-examples/pom.xml b/spring-cloud-alibaba-examples/pom.xml index 82ffda792..c7883b5ee 100644 --- a/spring-cloud-alibaba-examples/pom.xml +++ b/spring-cloud-alibaba-examples/pom.xml @@ -38,7 +38,6 @@ rocketmq-example/rocketmq-produce-example rocketmq-example/rocketmq-comprehensive-example spring-cloud-bus-rocketmq-example - spring-cloud-alibaba-dubbo-examples spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/README_CN.md b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/README_CN.md deleted file mode 100644 index 28e2428d3..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/README_CN.md +++ /dev/null @@ -1,348 +0,0 @@ -# Dubbo Spring Cloud 示例工程 - - -## 快速开始 - -### 定义 Dubbo 服务接口 - -Dubbo 服务接口是服务提供方与消费方的远程通讯契约,通常由普通的 Java 接口(interface)来声明,如 `EchoService` 接口: - -```java -public interface EchoService { - - String echo(String message); -} -``` - -为了确保契约的一致性,推荐的做法是将 Dubbo 服务接口打包在第二方或者第三方的 artifact(jar)中,如以上接口就存放在 - artifact [spring-cloud-dubbo-sample-api](https://github.com/alibaba/spring-cloud-alibaba/tree/master/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api) 之中。 -对于服务提供方而言,不仅通过依赖 artifact 的形式引入 Dubbo 服务接口,而且需要将其实现。对应的服务消费端,同样地需要依赖该 artifact, -并以接口调用的方式执行远程方法。接下来进一步讨论怎样实现 Dubbo 服务提供方和消费方。 - - -### 实现 Dubbo 服务提供方 - - - -#### 初始化 `spring-cloud-dubbo-server-sample` Maven 工程 - -首先,创建 `artifactId` 名为 `spring-cloud-dubbo-server-sample` 的 Maven 工程,并在其 `pom.xml` 文件中增添 -Dubbo Spring Cloud 必要的依赖: - -```xml - - - - org.springframework.cloud - spring-cloud-dubbo-sample-api - ${project.version} - - - - - org.springframework.boot - spring-boot-actuator - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - -``` - -以上依赖 artifact 说明如下: - -- `spring-cloud-dubbo-sample-api` : 提供 `EchoService` 接口的 artifact -- `spring-boot-actuator` : Spring Boot Production-Ready artifact,间接引入 `spring-boot` artifact -- `spring-cloud-starter-dubbo` : Dubbo Spring Cloud Starter `artifact`,间接引入 `dubbo-spring-boot-starter` 等 artifact -- `spring-cloud-starter-alibaba-nacos-discovery` : Nacos Spring Cloud 服务注册与发现 `artifact` - - -值得注意的是,以上 artifact 未指定版本(version),因此,还需显示地声明 `` : - -```xml - - - - - org.springframework.cloud - spring-cloud-alibaba-dependencies - 0.9.0.RELEASE - pom - import - - - -``` - -> 以上完整的 Maven 依赖配置,请参考 `spring-cloud-dubbo-server-sample` [`pom.xml`](spring-cloud-dubbo-server-sample/pom.xml) 文件 - -完成以上步骤之后,下一步则是实现 Dubbo 服务 - - -#### 实现 Dubbo 服务 - -`EchoService` 作为暴露的 Dubbo 服务接口,服务提供方 `spring-cloud-dubbo-server-sample` 需要将其实现: - -```java -@org.apache.dubbo.config.annotation.Service -class EchoServiceImpl implements EchoService { - - @Override - public String echo(String message) { - return "[echo] Hello, " + message; - } -} -``` - -其中,`@org.apache.dubbo.config.annotation.Service` 是 Dubbo 服务注解,仅声明该 Java 服务(本地)实现为 Dubbo 服务。 -因此,下一步需要将其配置 Dubbo 服务(远程)。 - - - -#### 配置 Dubbo 服务提供方 - -在暴露 Dubbo 服务方面,推荐开发人员外部化配置的方式,即指定 Java 服务实现类的扫描基准包。 -> Dubbo Spring Cloud 继承了 Dubbo Spring Boot 的外部化配置特性,也可以通过标注 `@DubboComponentScan` 来实现基准包扫描。 - -同时,Dubbo 远程服务需要暴露网络端口,并设定通讯协议,完整的 YAML 配置如下所示: - -```yaml -dubbo: - scan: - # dubbo 服务扫描基准包 - base-packages: com.alibaba.cloud.dubbo.bootstrap - protocol: - # dubbo 协议 - name: dubbo - # dubbo 协议端口( -1 表示自增端口,从 20880 开始) - port: -1 - registry: - # 挂载到 Spring Cloud 注册中心 - address: spring-cloud://localhost - -spring: - application: - # Dubbo 应用名称 - name: spring-cloud-alibaba-dubbo-server - main: - # Spring Boot 2.1 需要设定 - allow-bean-definition-overriding: true - cloud: - nacos: - # Nacos 服务发现与注册配置 - discovery: - server-addr: 127.0.0.1:8848 -``` - -以上 YAML 内容,上半部分为 Dubbo 的配置: - -- `dubbo.scan.base-packages` : 指定 Dubbo 服务实现类的扫描基准包 -- `dubbo.protocol` : Dubbo 服务暴露的协议配置,其中子属性 `name` 为协议名称,`port` 为协议端口( -1 表示自增端口,从 20880 开始) -- `dubbo.registry` : Dubbo 服务注册中心配置,其中子属性 `address` 的值 "spring-cloud://localhost",说明挂载到 Spring Cloud 注册中心 -> 当前 Dubbo Spring Cloud 实现必须配置 `dubbo.registry.address = spring-cloud://localhost`,下一个版本将其配置变为可选 -(参考 [issue #592](https://github.com/alibaba/spring-cloud-alibaba/issues/592)), -> 并且支持传统 Dubbo 协议的支持(参考 [issue #588](https://github.com/alibaba/spring-cloud-alibaba/issues/588)) - -下半部分则是 Spring Cloud 相关配置: - -- `spring.application.name` : Spring 应用名称,用于 Spring Cloud 服务注册和发现。 -> 该值在 Dubbo Spring Cloud 加持下被视作 `dubbo.application.name`,因此,无需再显示地配置 `dubbo.application.name` -- `spring.main.allow-bean-definition-overriding` : 在 Spring Boot 2.1 以及更高的版本增加该设定, -因为 Spring Boot 默认调整了 Bean 定义覆盖行为。(推荐一个好的 Dubbo 讨论 [issue #3193](https://github.com/apache/dubbo/issues/3193#issuecomment-474340165)) -- `spring.cloud.nacos.discovery` : Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口 - -> 以上完整的 YAML 配置文件,请参考 `spring-cloud-dubbo-server-sample` [`bootstrap.yaml`](spring-cloud-dubbo-server-sample/src/main/resources/bootstrap.yaml) 文件 - - -完成以上步骤后,还需编写一个 Dubbo Spring Cloud 引导类。 - - -#### 引导 Dubbo Spring Cloud 服务提供方应用 - -Dubbo Spring Cloud 引导类与普通 Spring Cloud 应用并无差别,如下所示: -```java -@EnableDiscoveryClient -@EnableAutoConfiguration -public class DubboSpringCloudServerBootstrap { - - public static void main(String[] args) { - SpringApplication.run(DubboSpringCloudServerBootstrap.class); - } -} -``` - -在引导 `DubboSpringCloudServerBootstrap` 之前,请提前启动 Nacos 服务器。 -当 `DubboSpringCloudServerBootstrap` 启动后,将应用 `spring-cloud-dubbo-server-sample` 将出现在 Nacos 控制台界面。 - - -当 Dubbo 服务提供方启动后,下一步实现一个 Dubbo 服务消费方。 - - - -### 实现 Dubbo 服务消费方 - -由于 Java 服务就 `EchoService`、服务提供方应用 `spring-cloud-dubbo-server-sample` 以及 Nacos 服务器均已准备完毕。Dubbo 服务消费方 -只需初始化服务消费方 Maven 工程 `spring-cloud-dubbo-client-sample` 以及消费 Dubbo 服务。 - - - -#### 初始化 `spring-cloud-dubbo-client-sample` Maven 工程 - -与服务提供方 Maven 工程类,需添加相关 Maven 依赖: - -```xml - - - - - org.springframework.cloud - spring-cloud-alibaba-dependencies - 0.9.0.RELEASE - pom - import - - - - - - - - org.springframework.cloud - spring-cloud-dubbo-sample-api - ${project.version} - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-actuator - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - -``` - -与应用 `spring-cloud-dubbo-server-sample` 不同的是,当前应用依赖 `spring-boot-starter-web`,表明它属于 Web Servlet 应用。 - -> 以上完整的 Maven 依赖配置,请参考 `spring-cloud-dubbo-client-sample` [`pom.xml`](spring-cloud-dubbo-client-sample/pom.xml) 文件 - - -#### 配置 Dubbo 服务消费方 - -Dubbo 服务消费方配置与服务提供方类似,当前应用 `spring-cloud-dubbo-client-sample` 属于纯服务消费方,因此,所需的外部化配置更精简: - -```yaml -dubbo: - registry: - # 挂载到 Spring Cloud 注册中心 - address: spring-cloud://localhost - cloud: - subscribed-services: spring-cloud-alibaba-dubbo-server - -spring: - application: - # Dubbo 应用名称 - name: spring-cloud-alibaba-dubbo-client - main: - # Spring Boot 2.1 需要设定 - allow-bean-definition-overriding: true - cloud: - nacos: - # Nacos 服务发现与注册配置 - discovery: - server-addr: 127.0.0.1:8848 -``` - -对比应用 `spring-cloud-dubbo-server-sample`,除应用名称 `spring.application.name` 存在差异外,`spring-cloud-dubbo-client-sample` -新增了属性 `dubbo.cloud.subscribed-services` 的设置。并且该值为服务提供方应用 "spring-cloud-dubbo-server-sample"。 - -- `dubbo.cloud.subscribed-services` : 用于服务消费方订阅服务提供方的应用名称的列表,若需订阅多应用,使用 "," 分割。 -不推荐使用默认值为 "*",它将订阅所有应用。 -> 当应用使用属性 `dubbo.cloud.subscribed-services` 默认值时,日志中将会输出一行警告: -> > Current application will subscribe all services(size:x) in registry, a lot of memory and CPU cycles may be used, -> > thus it's strongly recommend you using the externalized property 'dubbo.cloud.subscribed-services' to specify the services - -由于当前应用属于 Web 应用,它会默认地使用 8080 作为 Web 服务端口,如果需要自定义,可通过属性 `server.port` 调整。 - -> 以上完整的 YAML 配置文件,请参考 `spring-cloud-dubbo-client-sample` [`bootstrap.yaml`](spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml) 文件 - - - -#### 引导 Dubbo Spring Cloud 服务消费方应用 - -为了减少实现步骤,以下引导类将 Dubbo 服务消费以及引导功能合二为一: - -```java -@EnableDiscoveryClient -@EnableAutoConfiguration -@RestController -public class DubboSpringCloudClientBootstrap { - - @Reference - private EchoService echoService; - - @GetMapping("/echo") - public String echo(String message) { - return echoService.echo(message); - } - - public static void main(String[] args) { - SpringApplication.run(DubboSpringCloudClientBootstrap.class); - } -} -``` - -不仅如此,`DubboSpringCloudClientBootstrap` 也作为 REST Endpoint,通过暴露 `/echo` Web 服务,消费 Dubbo `EchoService` 服务。因此, -可通过 `curl` 命令执行 HTTP GET 方法: - -``` -$ curl http://127.0.0.1:8080/echo?message=%E5%B0%8F%E9%A9%AC%E5%93%A5%EF%BC%88mercyblitz%EF%BC%89 -``` - -HTTP 响应为: - -``` -[echo] Hello, 小马哥(mercyblitz) -``` - -以上结果说明应用 `spring-cloud-dubbo-client-sample` 通过消费 Dubbo 服务,返回服务提供方 `spring-cloud-dubbo-server-sample` -运算后的内容。 - -以上操作就一套完整的 Dubbo 服务提供方和消费方的运用,更多的详情请直接参考模块: -- [`spring-cloud-dubbo-server-sample` ](spring-cloud-dubbo-server-sample) -- [`spring-cloud-dubbo-client-sample`](spring-cloud-dubbo-client-sample) - - - - -## 模块说明 - -- [spring-cloud-dubbo-sample-api](spring-cloud-dubbo-sample-api):API 模块,存放 Dubbo 服务接口和模型定义 -- [spring-cloud-dubbo-provider-web-sample](spring-cloud-dubbo-provider-web-sample):Dubbo Spring Cloud 服务提供方示例(Web 应用) -- [spring-cloud-dubbo-provider-sample](spring-cloud-dubbo-provider-sample):Dubbo Spring Cloud 服务提供方示例(非 Web 应用) -- [spring-cloud-dubbo-consumer-sample](spring-cloud-dubbo-consumer-sample):Dubbo Spring Cloud 服务消费方示例 -- [spring-cloud-dubbo-servlet-gateway](spring-cloud-dubbo-servlet-gateway-sample):Dubbo Spring Cloud Servlet 网关简易实现示例 diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml deleted file mode 100644 index 75ed08831..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - com.alibaba.cloud - spring-cloud-alibaba-examples - ${revision} - ../pom.xml - - 4.0.0 - - com.alibaba.cloud - spring-cloud-alibaba-dubbo-examples - ${revision} - Spring Cloud Alibaba Dubbo Examples - pom - - - spring-cloud-dubbo-sample-api - spring-cloud-dubbo-server-sample - spring-cloud-dubbo-client-sample - spring-cloud-dubbo-provider-sample - spring-cloud-dubbo-consumer-sample - spring-cloud-dubbo-provider-web-sample - spring-cloud-dubbo-servlet-gateway-sample - - - \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml deleted file mode 100644 index 1a675b438..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - com.alibaba.cloud - spring-cloud-alibaba-dubbo-examples - ${revision} - ../pom.xml - - 4.0.0 - - spring-cloud-dubbo-client-sample - Spring Cloud Dubbo Client Sample - - - - - com.alibaba.cloud - spring-cloud-dubbo-sample-api - ${project.version} - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-actuator - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudClientBootstrap.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudClientBootstrap.java deleted file mode 100644 index ec7f585aa..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudClientBootstrap.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.bootstrap; - -import com.alibaba.cloud.dubbo.service.EchoService; -import org.apache.dubbo.config.annotation.DubboReference; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * Dubbo Spring Cloud Client Bootstrap. - * - * @author Mercy - */ -@EnableDiscoveryClient -@EnableAutoConfiguration -@RestController -public class DubboSpringCloudClientBootstrap { - - @DubboReference - private EchoService echoService; - - @GetMapping("/echo") - public String echo(String message) { - return echoService.echo(message); - } - - public static void main(String[] args) { - SpringApplication.run(DubboSpringCloudClientBootstrap.class); - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml deleted file mode 100644 index 19d22ad11..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml +++ /dev/null @@ -1,22 +0,0 @@ -dubbo: - cloud: - subscribed-services: spring-cloud-alibaba-dubbo-server - protocols: - dubbo: - port: -1 - -spring: - application: - name: spring-cloud-alibaba-dubbo-client - main: - allow-bean-definition-overriding: true - cloud: - nacos: - discovery: - username: nacos - password: nacos - server-addr: 127.0.0.1:8848 - namespace: public - -server: - port: 8080 \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml deleted file mode 100644 index 8d50f7224..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - com.alibaba.cloud - spring-cloud-alibaba-dubbo-examples - ${revision} - ../pom.xml - - 4.0.0 - - spring-cloud-dubbo-consumer-sample - Spring Cloud Dubbo Consumer Sample - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-actuator - - - - - org.springframework.cloud - spring-cloud-starter-openfeign - - - - - org.springframework.retry - spring-retry - - - - - com.alibaba.cloud - spring-cloud-dubbo-sample-api - ${project.version} - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - - org.springframework.cloud - spring-cloud-starter-zookeeper-discovery - - - org.apache.zookeeper - zookeeper - - - - - - org.apache.zookeeper - zookeeper - 3.4.14 - true - - - org.slf4j - slf4j-log4j12 - - - - - - org.apache.curator - curator-framework - ${curator.version} - - - - - org.springframework.cloud - spring-cloud-starter-consul-discovery - - - - org.springframework.cloud - spring-cloud-starter-bootstrap - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudConsumerBootstrap.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudConsumerBootstrap.java deleted file mode 100644 index 218246594..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudConsumerBootstrap.java +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.bootstrap; - -import java.util.HashMap; -import java.util.Map; - -import com.alibaba.cloud.dubbo.annotation.DubboTransported; -import com.alibaba.cloud.dubbo.service.RestService; -import com.alibaba.cloud.dubbo.service.User; -import com.alibaba.cloud.dubbo.service.UserService; -import org.apache.dubbo.config.annotation.DubboReference; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.ApplicationRunner; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.cloud.openfeign.EnableFeignClients; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Lazy; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.client.RestTemplate; - -import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; - -/** - * Dubbo Spring Cloud Consumer Bootstrap. - * - * @author Mercy - */ -@EnableDiscoveryClient -@EnableAutoConfiguration -@EnableFeignClients -@EnableScheduling -@EnableCaching -public class DubboSpringCloudConsumerBootstrap { - - @DubboReference - private UserService userService; - - @DubboReference(version = "1.0.0", protocol = "dubbo") - private RestService restService; - - @Autowired - @Lazy - private FeignRestService feignRestService; - - @Autowired - @Lazy - private DubboFeignRestService dubboFeignRestService; - - @Value("${provider.application.name}") - private String providerApplicationName; - - @Autowired - @LoadBalanced - private RestTemplate restTemplate; - - @Bean - public ApplicationRunner userServiceRunner() { - return arguments -> { - - User user = new User(); - user.setId(1L); - user.setName("小马哥"); - user.setAge(33); - - // save User - System.out.printf("UserService.save(%s) : %s\n", user, - userService.save(user)); - - // find all Users - System.out.printf("UserService.findAll() : %s\n", user, - userService.findAll()); - - // remove User - System.out.printf("UserService.remove(%d) : %s\n", user.getId(), - userService.remove(user.getId())); - - }; - } - - @Bean - public ApplicationRunner callRunner() { - return arguments -> { - callAll(); - }; - } - - private void callAll() { - - // To call /path-variables - callPathVariables(); - - // To call /headers - callHeaders(); - - // To call /param - callParam(); - - // To call /params - callParams(); - - // To call /request/body/map - callRequestBodyMap(); - } - - @Scheduled(fixedDelay = 10 * 1000L) - public void onScheduled() { - callAll(); - } - - private void callPathVariables() { - // Dubbo Service call - System.out.println(restService.pathVariables("a", "b", "c")); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.pathVariables("c", "b", "a")); - // Spring Cloud Open Feign REST Call - // System.out.println(feignRestService.pathVariables("b", "a", "c")); - - // RestTemplate call - System.out.println(restTemplate.getForEntity( - "http://" + providerApplicationName + "//path-variables/{p1}/{p2}?v=c", - String.class, "a", "b")); - } - - private void callHeaders() { - // Dubbo Service call - System.out.println(restService.headers("a", "b", 10)); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.headers("b", 10, "a")); - // Spring Cloud Open Feign REST Call - // System.out.println(feignRestService.headers("b", "a", 10)); - } - - private void callParam() { - // Dubbo Service call - System.out.println(restService.param("mercyblitz")); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.param("mercyblitz")); - // Spring Cloud Open Feign REST Call - // System.out.println(feignRestService.param("mercyblitz")); - } - - private void callParams() { - // Dubbo Service call - System.out.println(restService.params(1, "1")); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.params("1", 1)); - // Spring Cloud Open Feign REST Call - // System.out.println(feignRestService.params("1", 1)); - - // RestTemplate call - System.out.println(restTemplate.getForEntity( - "http://" + providerApplicationName + "/param?param=小马哥", String.class)); - } - - private void callRequestBodyMap() { - - Map data = new HashMap<>(); - data.put("id", 1); - data.put("name", "小马哥"); - data.put("age", 33); - - // Dubbo Service call - System.out.println(restService.requestBodyMap(data, "Hello,World")); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.requestBody("Hello,World", data)); - // Spring Cloud Open Feign REST Call - // System.out.println(feignRestService.requestBody("Hello,World", data)); - - // RestTemplate call - System.out.println(restTemplate.postForObject( - "http://" + providerApplicationName + "/request/body/map?param=小马哥", data, - User.class)); - } - - @Bean - @LoadBalanced - @DubboTransported - public RestTemplate restTemplate() { - return new RestTemplate(); - } - - public static void main(String[] args) { - new SpringApplicationBuilder(DubboSpringCloudConsumerBootstrap.class) - .properties("spring.profiles.active=nacos").run(args); - } - - @FeignClient("${provider.application.name}") - public interface FeignRestService { - - @GetMapping("/param") - String param(@RequestParam("param") String param); - - @PostMapping("/params") - String params(@RequestParam("b") String b, @RequestParam("a") int a); - - @PostMapping(value = "/request/body/map", produces = APPLICATION_JSON_VALUE) - User requestBody(@RequestParam("param") String param, - @RequestBody Map data); - - @GetMapping("/headers") - String headers(@RequestHeader("h2") String header2, - @RequestHeader("h") String header, @RequestParam("v") Integer value); - - @GetMapping("/path-variables/{p1}/{p2}") - String pathVariables(@PathVariable("p2") String path2, - @PathVariable("p1") String path1, @RequestParam("v") String param); - - } - - @FeignClient("${provider.application.name}") - @DubboTransported(protocol = "dubbo") - public interface DubboFeignRestService { - - @GetMapping("/param") - String param(@RequestParam("param") String param); - - @PostMapping("/params") - String params(@RequestParam("b") String paramB, @RequestParam("a") int paramA); - - @PostMapping(value = "/request/body/map", produces = APPLICATION_JSON_VALUE) - User requestBody(@RequestParam("param") String param, - @RequestBody Map data); - - @GetMapping("/headers") - String headers(@RequestHeader("h2") String header2, - @RequestParam("v") Integer value, @RequestHeader("h") String header); - - @GetMapping("/path-variables/{p1}/{p2}") - String pathVariables(@RequestParam("v") String param, - @PathVariable("p2") String path2, @PathVariable("p1") String path1); - - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/application.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/application.yaml deleted file mode 100644 index 17945be2c..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/application.yaml +++ /dev/null @@ -1,16 +0,0 @@ -dubbo: - cloud: - # The subscribed services in consumer side - subscribed-services: ${provider.application.name} - protocols: - dubbo: - port: -1 - consumer: - check: false - -server: - port: 0 - -provider: - application: - name: spring-cloud-alibaba-dubbo-provider \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml deleted file mode 100644 index 6dcd0df3a..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml +++ /dev/null @@ -1,72 +0,0 @@ -spring: - application: - name: spring-cloud-alibaba-dubbo-consumer - main: - allow-bean-definition-overriding: true - - - # default disable all - cloud: - nacos: - username: nacos - password: nacos - discovery: - enabled: false - register-enabled: false - zookeeper: - enabled: false - consul: - enabled: false - -eureka: - client: - enabled: false - -ribbon: - nacos: - enabled: false - ---- -spring: - profiles: nacos - - cloud: - nacos: - discovery: - enabled: true - register-enabled: true - server-addr: 127.0.0.1:8848 - -ribbon: - nacos: - enabled: true - ---- -spring: - profiles: eureka - -eureka: - client: - enabled: true - service-url: - defaultZone: http://127.0.0.1:8761/eureka/ - - ---- -spring: - profiles: zookeeper - cloud: - zookeeper: - enabled: true - connect-string: 127.0.0.1:2181 - - ---- -spring: - profiles: consul - - cloud: - consul: - enabled: true - host: 127.0.0.1 - port: 8500 \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml deleted file mode 100644 index cc3e32738..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - com.alibaba.cloud - spring-cloud-alibaba-dubbo-examples - ${revision} - ../pom.xml - - 4.0.0 - - spring-cloud-dubbo-provider-sample - Spring Cloud Dubbo Provider Sample - - - - - - javax.servlet - javax.servlet-api - 3.1.0 - - - - - org.springframework - spring-web - - - - - com.alibaba.cloud - spring-cloud-dubbo-sample-api - ${project.version} - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - - org.springframework.cloud - spring-cloud-starter-zookeeper-discovery - - - org.apache.zookeeper - zookeeper - - - - - - org.apache.zookeeper - zookeeper - 3.4.14 - true - - - org.slf4j - slf4j-log4j12 - - - - - - org.apache.curator - curator-framework - ${curator.version} - - - - - org.springframework.cloud - spring-cloud-starter-consul-discovery - - - - - io.netty - netty-all - - - - org.jboss.resteasy - resteasy-jaxrs - - - - org.jboss.resteasy - resteasy-client - - - - org.jboss.resteasy - resteasy-netty4 - - - - javax.validation - validation-api - - - - org.jboss.resteasy - resteasy-jackson-provider - - - - org.jboss.resteasy - resteasy-jaxb-provider - - - - org.hibernate.validator - hibernate-validator - - - - org.springframework.cloud - spring-cloud-starter-bootstrap - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudProviderBootstrap.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudProviderBootstrap.java deleted file mode 100644 index 2421c755e..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudProviderBootstrap.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.bootstrap; - -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; - -/** - * Dubbo Spring Cloud Provider Bootstrap. - * - * @author Mercy - */ -@EnableDiscoveryClient -@EnableAutoConfiguration -public class DubboSpringCloudProviderBootstrap { - - public static void main(String[] args) { - new SpringApplicationBuilder(DubboSpringCloudProviderBootstrap.class) - .properties("spring.profiles.active=nacos").web(WebApplicationType.NONE) - .run(args); - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/service/InMemoryUserService.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/service/InMemoryUserService.java deleted file mode 100644 index b1acd0a06..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/service/InMemoryUserService.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.service; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -import org.apache.dubbo.config.annotation.DubboService; - -/** - * In-Memory {@link UserService} implementation. - */ -@DubboService(protocol = "dubbo") -public class InMemoryUserService implements UserService { - - private Map usersRepository = new HashMap<>(); - - @Override - public boolean save(User user) { - return usersRepository.put(user.getId(), user) == null; - } - - @Override - public boolean remove(Long userId) { - return usersRepository.remove(userId) != null; - } - - @Override - public Collection findAll() { - return usersRepository.values(); - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/service/StandardRestService.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/service/StandardRestService.java deleted file mode 100644 index 24f34f46d..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/java/com/alibaba/cloud/dubbo/service/StandardRestService.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.service; - -import java.util.HashMap; -import java.util.Map; - -import javax.ws.rs.Consumes; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; - -import org.apache.dubbo.config.annotation.DubboService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import static com.alibaba.cloud.dubbo.util.LoggerUtils.log; -import static org.springframework.util.MimeTypeUtils.APPLICATION_JSON_VALUE; - -/** - * Default {@link RestService}. - * - * @author Mercy - */ -@DubboService(version = "1.0.0", protocol = { "dubbo", "rest" }) -@Path("/") -public class StandardRestService implements RestService { - - private Logger logger = LoggerFactory.getLogger(getClass()); - - @Override - @Path("param") - @GET - public String param(@QueryParam("param") String param) { - log("/param", param); - return param; - } - - @Override - @Path("params") - @POST - public String params(@QueryParam("a") int a, @QueryParam("b") String b) { - log("/params", a + b); - return a + b; - } - - @Override - @Path("headers") - @GET - public String headers(@HeaderParam("h") String header, - @HeaderParam("h2") String header2, @QueryParam("v") Integer param) { - String result = header + " , " + header2 + " , " + param; - log("/headers", result); - return result; - } - - @Override - @Path("path-variables/{p1}/{p2}") - @GET - public String pathVariables(@PathParam("p1") String path1, - @PathParam("p2") String path2, @QueryParam("v") String param) { - String result = path1 + " , " + path2 + " , " + param; - log("/path-variables", result); - return result; - } - - // @CookieParam does not support : https://github.com/OpenFeign/feign/issues/913 - // @CookieValue also does not support - - @Override - @Path("form") - @POST - public String form(@FormParam("f") String form) { - return String.valueOf(form); - } - - @Override - @Path("request/body/map") - @POST - @Produces(APPLICATION_JSON_VALUE) - public User requestBodyMap(Map data, - @QueryParam("param") String param) { - User user = new User(); - user.setId(((Integer) data.get("id")).longValue()); - user.setName((String) data.get("name")); - user.setAge((Integer) data.get("age")); - log("/request/body/map", param); - return user; - } - - @Path("request/body/user") - @POST - @Override - @Consumes(MediaType.APPLICATION_JSON) - public Map requestBodyUser(User user) { - Map map = new HashMap<>(); - map.put("id", user.getId()); - map.put("name", user.getName()); - map.put("age", user.getAge()); - return map; - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/application.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/application.yaml deleted file mode 100644 index 5a8558436..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/application.yaml +++ /dev/null @@ -1,14 +0,0 @@ -dubbo: - scan: - base-packages: com.alibaba.cloud.dubbo.service - protocols: - dubbo: - name: dubbo - port: -1 - rest: - name: rest - port: 9090 - server: netty -feign: - hystrix: - enabled: true \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml deleted file mode 100644 index 7efde94a5..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml +++ /dev/null @@ -1,67 +0,0 @@ -spring: - application: - name: spring-cloud-alibaba-dubbo-provider - main: - allow-bean-definition-overriding: true - - - # default disable all - cloud: - nacos: - discovery: - enabled: false - register-enabled: false - zookeeper: - enabled: false - consul: - enabled: false - -eureka: - client: - enabled: false - - ---- -spring: - profiles: nacos - - cloud: - nacos: - username: nacos - password: nacos - discovery: - enabled: true - register-enabled: true - server-addr: 127.0.0.1:8848 - ephemeral: false - - ---- -spring: - profiles: eureka - -eureka: - client: - enabled: true - service-url: - defaultZone: http://127.0.0.1:8761/eureka/ - - ---- -spring: - profiles: zookeeper - cloud: - zookeeper: - enabled: true - connect-string: 127.0.0.1:2181 - - ---- -spring: - profiles: consul - - cloud: - consul: - enabled: true - host: 127.0.0.1 - port: 8500 \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml deleted file mode 100644 index 27b18db29..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - com.alibaba.cloud - spring-cloud-alibaba-dubbo-examples - ${revision} - ../pom.xml - - 4.0.0 - - spring-cloud-dubbo-provider-web-sample - Spring Cloud Dubbo Provider Web Sample - - - - - - org.springframework.boot - spring-boot-starter-actuator - - - - org.springframework.boot - spring-boot-starter-web - - - - - com.alibaba.cloud - spring-cloud-dubbo-sample-api - ${project.version} - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - - org.springframework.cloud - spring-cloud-starter-zookeeper-discovery - - - org.apache.zookeeper - zookeeper - - - - - - org.apache.zookeeper - zookeeper - 3.4.14 - true - - - org.slf4j - slf4j-log4j12 - - - - - - org.apache.curator - curator-framework - ${curator.version} - - - - - org.springframework.cloud - spring-cloud-starter-consul-discovery - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudWebProviderBootstrap.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudWebProviderBootstrap.java deleted file mode 100644 index d13733c39..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudWebProviderBootstrap.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.bootstrap; - -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; - -/** - * Dubbo Spring Cloud Provider Bootstrap. - * - * @author Mercy - */ -@EnableDiscoveryClient -@EnableAutoConfiguration -public class DubboSpringCloudWebProviderBootstrap { - - public static void main(String[] args) { - new SpringApplicationBuilder(DubboSpringCloudWebProviderBootstrap.class) - .properties("spring.profiles.active=nacos").run(args); - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/service/InMemoryUserService.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/service/InMemoryUserService.java deleted file mode 100644 index b1acd0a06..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/service/InMemoryUserService.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.service; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -import org.apache.dubbo.config.annotation.DubboService; - -/** - * In-Memory {@link UserService} implementation. - */ -@DubboService(protocol = "dubbo") -public class InMemoryUserService implements UserService { - - private Map usersRepository = new HashMap<>(); - - @Override - public boolean save(User user) { - return usersRepository.put(user.getId(), user) == null; - } - - @Override - public boolean remove(Long userId) { - return usersRepository.remove(userId) != null; - } - - @Override - public Collection findAll() { - return usersRepository.values(); - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/service/SpringRestService.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/service/SpringRestService.java deleted file mode 100644 index 792b9876b..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/java/com/alibaba/cloud/dubbo/service/SpringRestService.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.service; - -import java.util.HashMap; -import java.util.Map; - -import org.apache.dubbo.config.annotation.DubboService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import static com.alibaba.cloud.dubbo.util.LoggerUtils.log; - -/** - * Spring MVC {@link RestService}. - * - * @author Mercy - */ -@DubboService(version = "1.0.0") -@RestController -public class SpringRestService implements RestService { - - private Logger logger = LoggerFactory.getLogger(getClass()); - - @Override - @GetMapping("/param") - public String param(@RequestParam String param) { - log("/param", param); - return param; - } - - @Override - @PostMapping("/params") - public String params(@RequestParam int a, @RequestParam String b) { - log("/params", a + b); - return a + b; - } - - @Override - @GetMapping("/headers") - public String headers(@RequestHeader("h") String header, - @RequestHeader("h2") String header2, @RequestParam("v") Integer param) { - String result = header + " , " + header2 + " , " + param; - log("/headers", result); - return result; - } - - @Override - @GetMapping("/path-variables/{p1}/{p2}") - public String pathVariables(@PathVariable("p1") String path1, - @PathVariable("p2") String path2, @RequestParam("v") String param) { - String result = path1 + " , " + path2 + " , " + param; - log("/path-variables", result); - return result; - } - - @Override - @PostMapping("/form") - public String form(@RequestParam("f") String form) { - return String.valueOf(form); - } - - @Override - @PostMapping(value = "/request/body/map", - produces = MediaType.APPLICATION_JSON_VALUE) - public User requestBodyMap(@RequestBody Map data, - @RequestParam("param") String param) { - User user = new User(); - user.setId(((Integer) data.get("id")).longValue()); - user.setName((String) data.get("name")); - user.setAge((Integer) data.get("age")); - log("/request/body/map", param); - return user; - } - - @PostMapping(value = "/request/body/user", - consumes = MediaType.APPLICATION_JSON_VALUE) - @Override - public Map requestBodyUser(@RequestBody User user) { - Map map = new HashMap<>(); - map.put("id", user.getId()); - map.put("name", user.getName()); - map.put("age", user.getAge()); - return map; - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/application.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/application.yaml deleted file mode 100644 index 2bc346c83..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/application.yaml +++ /dev/null @@ -1,19 +0,0 @@ -dubbo: - scan: - base-packages: com.alibaba.cloud.dubbo.service - protocols: - dubbo: - port: -1 - -feign: - hystrix: - enabled: true - -server: - port: 8080 - -management: - endpoints: - web: - exposure: - include: dubborestmetadata \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml deleted file mode 100644 index bf4d028d7..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml +++ /dev/null @@ -1,66 +0,0 @@ -spring: - application: - name: spring-cloud-alibaba-dubbo-provider - main: - allow-bean-definition-overriding: true - - - # default disable all - cloud: - nacos: - username: nacos - password: nacos - discovery: - enabled: false - register-enabled: false - zookeeper: - enabled: false - consul: - enabled: false - -eureka: - client: - enabled: false - - ---- -spring: - profiles: nacos - - cloud: - nacos: - discovery: - enabled: true - register-enabled: true - server-addr: 127.0.0.1:8848 - - ---- -spring: - profiles: eureka - -eureka: - client: - enabled: true - service-url: - defaultZone: http://127.0.0.1:8761/eureka/ - - ---- -spring: - profiles: zookeeper - cloud: - zookeeper: - enabled: true - connect-string: 127.0.0.1:2181 - - ---- -spring: - profiles: consul - - cloud: - consul: - enabled: true - host: 127.0.0.1 - port: 8500 \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml deleted file mode 100644 index 8727237fe..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - com.alibaba.cloud - spring-cloud-alibaba-dubbo-examples - ${revision} - - 4.0.0 - - com.alibaba.cloud - spring-cloud-dubbo-sample-api - Spring Cloud Dubbo Sample API - - - - - org.slf4j - slf4j-api - 1.7.25 - - - - - org.apache.dubbo - dubbo - ${dubbo.version} - - - - \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/EchoService.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/EchoService.java deleted file mode 100644 index 068c72c8f..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/EchoService.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.service; - -/** - * Echo Service. - */ -public interface EchoService { - - String echo(String message); - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/RestService.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/RestService.java deleted file mode 100644 index 175b7cb7a..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/RestService.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.service; - -import java.util.Map; - -/** - * Rest Service. - * - * @author Mercy - */ -public interface RestService { - - String param(String param); - - String params(int a, String b); - - String headers(String header, String header2, Integer param); - - String pathVariables(String path1, String path2, String param); - - String form(String form); - - User requestBodyMap(Map data, String param); - - Map requestBodyUser(User user); - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/User.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/User.java deleted file mode 100644 index edbe3f01c..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/User.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.service; - -import java.io.Serializable; - -/** - * User Entity. - * - * @author Mercy - */ -public class User implements Serializable { - - private Long id; - - private String name; - - private Integer age; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Integer getAge() { - return age; - } - - public void setAge(Integer age) { - this.age = age; - } - - @Override - public String toString() { - return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/UserService.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/UserService.java deleted file mode 100644 index acd875b07..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/service/UserService.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.service; - -import java.util.Collection; - -/** - * {@link User} Service. - * - * @author Mercy - */ -public interface UserService { - - boolean save(User user); - - boolean remove(Long userId); - - Collection findAll(); - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/util/LoggerUtils.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/util/LoggerUtils.java deleted file mode 100644 index 6e73e6340..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/src/main/java/com/alibaba/cloud/dubbo/util/LoggerUtils.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.util; - -import org.apache.dubbo.rpc.RpcContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Logger Utilities. - */ -public abstract class LoggerUtils { - - private static final Logger logger = LoggerFactory.getLogger(LoggerUtils.class); - - public static void log(String url, Object result) { - String message = String - .format("The client[%s] uses '%s' protocol to call %s : %s", - RpcContext.getContext().getRemoteHostName(), - RpcContext.getContext().getUrl() == null ? "N/A" - : RpcContext.getContext().getUrl().getProtocol(), - url, result); - if (logger.isInfoEnabled()) { - logger.info(message); - } - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml deleted file mode 100644 index 21e17c6dd..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - com.alibaba.cloud - spring-cloud-alibaba-dubbo-examples - ${revision} - ../pom.xml - - - 4.0.0 - - com.alibaba.cloud - spring-cloud-dubbo-server-sample - Spring Cloud Dubbo Server Sample - ${revision} - - - - - - com.alibaba.cloud - spring-cloud-dubbo-sample-api - ${project.version} - - - - - org.springframework.boot - spring-boot-actuator - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudServerBootstrap.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudServerBootstrap.java deleted file mode 100644 index d54597cc5..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudServerBootstrap.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.bootstrap; - -import com.alibaba.cloud.dubbo.service.EchoService; -import org.apache.dubbo.config.annotation.DubboService; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; - -/** - * Dubbo Spring Cloud Server Bootstrap. - * - * @author Mercy - */ -@EnableDiscoveryClient -@EnableAutoConfiguration -public class DubboSpringCloudServerBootstrap { - - public static void main(String[] args) { - SpringApplication.run(DubboSpringCloudServerBootstrap.class); - } - -} - -@DubboService -class EchoServiceImpl implements EchoService { - - @Override - public String echo(String message) { - return "[echo] Hello, " + message; - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/resources/bootstrap.yaml deleted file mode 100644 index db7e38c0d..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/resources/bootstrap.yaml +++ /dev/null @@ -1,18 +0,0 @@ -dubbo: - cloud: - subscribed-services: ${spring.application.name} - scan: - base-packages: com.alibaba.cloud.dubbo.bootstrap - protocol: - name: dubbo - port: -1 - -spring: - application: - name: spring-cloud-alibaba-dubbo-server - main: - allow-bean-definition-overriding: true - cloud: - nacos: - discovery: - server-addr: 127.0.0.1:8848 \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml deleted file mode 100644 index f659fb10a..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - com.alibaba.cloud - spring-cloud-alibaba-dubbo-examples - ${revision} - ../pom.xml - - 4.0.0 - - spring-cloud-dubbo-servlet-gateway-sample - Spring Cloud Dubbo Servlet Gateway Sample - - - - - com.alibaba.cloud - spring-cloud-alibaba-commons - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-actuator - - - - - com.alibaba.cloud - spring-cloud-dubbo-sample-api - ${project.version} - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - javax.servlet - javax.servlet-api - provided - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudServletGatewayBootstrap.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudServletGatewayBootstrap.java deleted file mode 100644 index 9aaab1fe5..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudServletGatewayBootstrap.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.bootstrap; - -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.cloud.openfeign.EnableFeignClients; - -/** - * Dubbo Spring Cloud Servlet Gateway Bootstrap. - * - * @author Mercy - */ -@EnableDiscoveryClient -@EnableAutoConfiguration -@EnableFeignClients -@ServletComponentScan(basePackages = "com.alibaba.cloud.dubbo.gateway") -public class DubboSpringCloudServletGatewayBootstrap { - - public static void main(String[] args) { - new SpringApplicationBuilder(DubboSpringCloudServletGatewayBootstrap.class) - .properties("spring.profiles.active=nacos").run(args); - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboGatewayServlet.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboGatewayServlet.java deleted file mode 100644 index 2cfb8db0d..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboGatewayServlet.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.cloud.dubbo.gateway; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Arrays; -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.ServletException; -import javax.servlet.ServletInputStream; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.alibaba.cloud.dubbo.http.MutableHttpServerRequest; -import com.alibaba.cloud.dubbo.metadata.DubboRestServiceMetadata; -import com.alibaba.cloud.dubbo.metadata.RequestMetadata; -import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; -import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; -import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContext; -import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContextFactory; -import com.alibaba.cloud.dubbo.service.DubboGenericServiceFactory; -import org.apache.dubbo.rpc.service.GenericException; -import org.apache.dubbo.rpc.service.GenericService; - -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpRequest; -import org.springframework.util.AntPathMatcher; -import org.springframework.util.PathMatcher; -import org.springframework.util.StreamUtils; -import org.springframework.web.servlet.HttpServletBean; -import org.springframework.web.util.UriComponents; - -import static com.alibaba.cloud.commons.lang.StringUtils.substringAfter; -import static com.alibaba.cloud.commons.lang.StringUtils.substringBetween; -import static org.springframework.web.util.UriComponentsBuilder.fromUriString; - -@WebServlet(urlPatterns = "/dsc/*") -public class DubboGatewayServlet extends HttpServletBean { - - private final DubboServiceMetadataRepository repository; - - private final DubboGenericServiceFactory serviceFactory; - - private final DubboGenericServiceExecutionContextFactory contextFactory; - - private final PathMatcher pathMatcher = new AntPathMatcher(); - - private final Map dubboTranslatedAttributes = new HashMap<>(); - - public DubboGatewayServlet(DubboServiceMetadataRepository repository, - DubboGenericServiceFactory serviceFactory, - DubboGenericServiceExecutionContextFactory contextFactory) { - this.repository = repository; - this.serviceFactory = serviceFactory; - this.contextFactory = contextFactory; - dubboTranslatedAttributes.put("protocol", "dubbo"); - dubboTranslatedAttributes.put("cluster", "failover"); - } - - private String resolveServiceName(HttpServletRequest request) { - - // /g/{app-name}/{rest-path} - String requestURI = request.getRequestURI(); - // /g/ - String servletPath = request.getServletPath(); - - String part = substringAfter(requestURI, servletPath); - - String serviceName = substringBetween(part, "/", "/"); - - return serviceName; - } - - @Override - public void service(HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { - - String serviceName = resolveServiceName(request); - - String restPath = substringAfter(request.getRequestURI(), serviceName); - - // 初始化 serviceName 的 REST 请求元数据 - repository.initializeMetadata(serviceName); - // 将 HttpServletRequest 转化为 RequestMetadata - RequestMetadata clientMetadata = buildRequestMetadata(request, restPath); - - DubboRestServiceMetadata dubboRestServiceMetadata = repository.get(serviceName, - clientMetadata); - - if (dubboRestServiceMetadata == null) { - // if DubboServiceMetadata is not found, executes next - throw new ServletException("DubboServiceMetadata can't be found!"); - } - - RestMethodMetadata dubboRestMethodMetadata = dubboRestServiceMetadata - .getRestMethodMetadata(); - - GenericService genericService = serviceFactory.create(dubboRestServiceMetadata, - dubboTranslatedAttributes); - - // TODO: Get the Request Body from HttpServletRequest - byte[] body = getRequestBody(request); - - MutableHttpServerRequest httpServerRequest = new MutableHttpServerRequest( - new HttpRequestAdapter(request), body); - - DubboGenericServiceExecutionContext context = contextFactory - .create(dubboRestMethodMetadata, httpServerRequest); - - Object result = null; - GenericException exception = null; - - try { - result = genericService.$invoke(context.getMethodName(), - context.getParameterTypes(), context.getParameters()); - } - catch (GenericException e) { - exception = e; - } - response.getWriter().println(result); - } - - private byte[] getRequestBody(HttpServletRequest request) throws IOException { - ServletInputStream inputStream = request.getInputStream(); - return StreamUtils.copyToByteArray(inputStream); - } - - private RequestMetadata buildRequestMetadata(HttpServletRequest request, - String restPath) { - UriComponents uriComponents = fromUriString(request.getRequestURI()).build(true); - RequestMetadata requestMetadata = new RequestMetadata(); - requestMetadata.setPath(restPath); - requestMetadata.setMethod(request.getMethod()); - requestMetadata.setParams(getParams(request)); - requestMetadata.setHeaders(getHeaders(request)); - return requestMetadata; - } - - private Map> getHeaders(HttpServletRequest request) { - Map> map = new LinkedHashMap<>(); - Enumeration headerNames = request.getHeaderNames(); - while (headerNames.hasMoreElements()) { - String headerName = headerNames.nextElement(); - Enumeration headerValues = request.getHeaders(headerName); - map.put(headerName, Collections.list(headerValues)); - } - return map; - } - - private Map> getParams(HttpServletRequest request) { - Map> map = new LinkedHashMap<>(); - for (Map.Entry entry : request.getParameterMap().entrySet()) { - map.put(entry.getKey(), Arrays.asList(entry.getValue())); - } - return map; - } - - private final static class HttpRequestAdapter implements HttpRequest { - - private final HttpServletRequest request; - - private HttpRequestAdapter(HttpServletRequest request) { - this.request = request; - } - - @Override - public String getMethodValue() { - return request.getMethod(); - } - - @Override - public URI getURI() { - try { - return new URI(request.getRequestURL().toString() + "?" - + request.getQueryString()); - } - catch (URISyntaxException e) { - e.printStackTrace(); - } - throw new RuntimeException(); - } - - @Override - public HttpHeaders getHeaders() { - return new HttpHeaders(); - } - - } - -} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/application.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/application.yaml deleted file mode 100644 index 263a56997..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/application.yaml +++ /dev/null @@ -1,12 +0,0 @@ -dubbo: - registry: - # The Spring Cloud Dubbo's registry extension - address: spring-cloud://localhost -# The traditional Dubbo's registry -# address: zookeeper://127.0.0.1:2181 -server: - port: 0 - -provider: - application: - name: spring-cloud-alibaba-dubbo-web-provider \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/bootstrap.yaml deleted file mode 100644 index a86acd15e..000000000 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/bootstrap.yaml +++ /dev/null @@ -1,70 +0,0 @@ -spring: - application: - name: spring-cloud-alibaba-dubbo-servlet-gateway - main: - allow-bean-definition-overriding: true - - - # default disable all - cloud: - nacos: - discovery: - enabled: false - register-enabled: false - zookeeper: - enabled: false - consul: - enabled: false - -eureka: - client: - enabled: false - -ribbon: - nacos: - enabled: false - ---- -spring: - profiles: nacos - - cloud: - nacos: - discovery: - enabled: true - register-enabled: true - server-addr: 127.0.0.1:8848 - -ribbon: - nacos: - enabled: true - ---- -spring: - profiles: eureka - -eureka: - client: - enabled: true - service-url: - defaultZone: http://127.0.0.1:8761/eureka/ - - ---- -spring: - profiles: zookeeper - cloud: - zookeeper: - enabled: true - connect-string: 127.0.0.1:2181 - - ---- -spring: - profiles: consul - - cloud: - consul: - enabled: true - host: 127.0.0.1 - port: 8500 \ No newline at end of file