diff --git a/spring-cloud-alibaba-examples/integrated-example/config-init/config/datasource-config.yaml b/spring-cloud-alibaba-examples/integrated-example/config-init/config/datasource-config.yaml index fb6ff397b1..d19c8ffb13 100644 --- a/spring-cloud-alibaba-examples/integrated-example/config-init/config/datasource-config.yaml +++ b/spring-cloud-alibaba-examples/integrated-example/config-init/config/datasource-config.yaml @@ -1,6 +1,6 @@ spring: datasource: - driver-class-name: com.mysql.jdbc.Driver + driver-class-name: com.mysql.cj.jdbc.Driver username: 'root' password: 'root' main: diff --git a/spring-cloud-alibaba-examples/integrated-example/config-init/config/integrated-consumer.yaml b/spring-cloud-alibaba-examples/integrated-example/config-init/config/integrated-consumer.yaml index 661501dd30..edec6caf33 100644 --- a/spring-cloud-alibaba-examples/integrated-example/config-init/config/integrated-consumer.yaml +++ b/spring-cloud-alibaba-examples/integrated-example/config-init/config/integrated-consumer.yaml @@ -12,7 +12,7 @@ spring: group: praise-consumer-group-PRAISE-TOPIC-01 rocketmq: binder: - name-server: rocketmq:9876 + name-server: rocketmq-server:9876 bindings: consumer-in-0: consumer: diff --git a/spring-cloud-alibaba-examples/integrated-example/config-init/config/integrated-provider.yaml b/spring-cloud-alibaba-examples/integrated-example/config-init/config/integrated-provider.yaml index 38cb14392a..ce3af3b50b 100644 --- a/spring-cloud-alibaba-examples/integrated-example/config-init/config/integrated-provider.yaml +++ b/spring-cloud-alibaba-examples/integrated-example/config-init/config/integrated-provider.yaml @@ -7,7 +7,7 @@ spring: content-type: application/json rocketmq: binder: - name-server: rocketmq:9876 + name-server: rocketmq-server:9876 bindings: praise-output: producer: diff --git a/spring-cloud-alibaba-examples/integrated-example/config-init/rocketmq/broker.conf b/spring-cloud-alibaba-examples/integrated-example/config-init/rocketmq/broker.conf index 61e6e8b3e6..d58bac8259 100644 --- a/spring-cloud-alibaba-examples/integrated-example/config-init/rocketmq/broker.conf +++ b/spring-cloud-alibaba-examples/integrated-example/config-init/rocketmq/broker.conf @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -brokerIP1=172.20.0.4 +brokerIP1 = rocketmq-server brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 @@ -21,3 +21,4 @@ deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH +autoCreateTopicEnable = true \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/integrated-example/config-init/scripts/nacos-config-quick.sh b/spring-cloud-alibaba-examples/integrated-example/config-init/scripts/nacos-config-quick.sh index 638567ee1d..a30ecd3c93 100644 --- a/spring-cloud-alibaba-examples/integrated-example/config-init/scripts/nacos-config-quick.sh +++ b/spring-cloud-alibaba-examples/integrated-example/config-init/scripts/nacos-config-quick.sh @@ -1,18 +1,24 @@ #!/bin/sh echo "Nacos auto config started" -datasourceConfig=$(cat ../config/datasource-config.yaml) -storageConfig=$(cat ../config/integrated-storage.yaml) -accountConfig=$(cat ../config/integrated-account.yaml) -orderConfig=$(cat ../config/integrated-order.yaml) -gatewayConfig=$(cat ../config/integrated-gateway.yaml) -providerConfig=$(cat ../config/integrated-provider.yaml) -consumerConfig=$(cat ../config/integrated-consumer.yaml) + +config_dir="./config-init/config" groupId="integrated-example" -curl -X POST "nacos-server:8848/nacos/v1/cs/configs" -d "dataId=datasource-config.yaml&group=${groupId}&content=${datasourceConfig}" -curl -X POST "nacos-server:8848/nacos/v1/cs/configs" -d "dataId=integrated-storage.yaml&group=${groupId}&content=${storageConfig}" -curl -X POST "nacos-server:8848/nacos/v1/cs/configs" -d "dataId=integrated-account.yaml&group=${groupId}&content=${accountConfig}" -curl -X POST "nacos-server:8848/nacos/v1/cs/configs" -d "dataId=integrated-order.yaml&group=${groupId}&content=${orderConfig}" -curl -X POST "nacos-server:8848/nacos/v1/cs/configs" -d "dataId=integrated-gateway.yaml&group=${groupId}&content=${gatewayConfig}" -curl -X POST "nacos-server:8848/nacos/v1/cs/configs" -d "dataId=integrated-provider.yaml&group=${groupId}&content=${providerConfig}" -curl -X POST "nacos-server:8848/nacos/v1/cs/configs" -d "dataId=integrated-consumer.yaml&group=${groupId}&content=${consumerConfig}" -echo "Nacos config pushed successfully finished" \ No newline at end of file + +# find all yaml config file then push to nacos +for config_file in $(find "${config_dir}" -type f -name "*.yaml"); do + # use filename as dataId + dataId=$(basename "$config_file") + + # read file content + file_content=$(cat "$config_file") + echo "\npublish config ${config_file}" + + # publish config to nacos + curl -X POST "nacos-server:8848/nacos/v1/cs/configs" \ + -d "type=yaml" \ + --data-urlencode "dataId=${dataId}" \ + --data-urlencode "group=${groupId}" \ + --data-urlencode "content=${file_content}" +done + +echo "\npublish Nacos config finished" diff --git a/spring-cloud-alibaba-examples/integrated-example/docker-compose/.env b/spring-cloud-alibaba-examples/integrated-example/docker-compose/.env index 4062895a60..1df27f3307 100644 --- a/spring-cloud-alibaba-examples/integrated-example/docker-compose/.env +++ b/spring-cloud-alibaba-examples/integrated-example/docker-compose/.env @@ -1,7 +1,7 @@ # port GATEWAY_PORT=30010 ACCOUNT_PORT=8012 -FRONTEND_PORT=8080 +FRONTEND_PORT=8010 ORDER_PORT=8013 STORAGE_PORT=8011 PRAISE_PROVIDER_PORT=8015 diff --git a/spring-cloud-alibaba-examples/integrated-example/docker-compose/docker-compose-env.yml b/spring-cloud-alibaba-examples/integrated-example/docker-compose/docker-compose-env.yml index a6d39261d4..b6097075fc 100644 --- a/spring-cloud-alibaba-examples/integrated-example/docker-compose/docker-compose-env.yml +++ b/spring-cloud-alibaba-examples/integrated-example/docker-compose/docker-compose-env.yml @@ -12,6 +12,7 @@ services: - MODE=standalone ports: - "8848:8848" + - "9848:9848" # mysql mysql: @@ -34,7 +35,7 @@ services: # rocketMQ rmqnamesrv: - image: apache/rocketmq:4.9.4 + image: apache/rocketmq:5.3.1 hostname: rocketmq restart: always container_name: integrated-example-rmqnamesrv @@ -43,29 +44,31 @@ services: command: sh mqnamesrv rmqbroker: - image: apache/rocketmq:4.9.4 + image: apache/rocketmq:5.3.1 restart: always container_name: integrated-example-rmqbroker ports: - "10909:10909" - "10911:10911" + - "10912:10912" volumes: - - ../config-init/rocketmq/broker.conf:/opt/rocketmq-4.9.4/conf/broker.conf + - ../config-init/rocketmq/broker.conf:/opt/rocketmq-5.3.1/conf/broker.conf environment: NAMESRV_ADDR: "rmqnamesrv:9876" JAVA_OPTS: " -Duser.home=/opt" JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m" - command: sh mqbroker -c /opt/rocketmq-4.9.4/conf/broker.conf + command: sh mqbroker -c /opt/rocketmq-5.3.1/conf/broker.conf depends_on: - rmqnamesrv # seata seata-server: - image: seataio/seata-server:1.5.1 + image: apache/seata-server:2.1.0 hostname: seata-server restart: always container_name: integrated-example-seata-server ports: + - "7091:7091" - "8091:8091" environment: - SEATA_PORT=8091 diff --git a/spring-cloud-alibaba-examples/integrated-example/docs/en/docker-compose-deployment.md b/spring-cloud-alibaba-examples/integrated-example/docs/en/docker-compose-deployment.md index d11c2191da..76a3f343ac 100644 --- a/spring-cloud-alibaba-examples/integrated-example/docs/en/docker-compose-deployment.md +++ b/spring-cloud-alibaba-examples/integrated-example/docs/en/docker-compose-deployment.md @@ -18,11 +18,13 @@ To ensure that the code can start properly, please configure the local host mapp 127.0.0.1 integrated-mysql 127.0.0.1 nacos-server 127.0.0.1 seata-server -127.0.0.1 rocketmq +127.0.0.1 rocketmq-server 127.0.0.1 gateway-service 127.0.0.1 integrated-frontend ``` +> recommend to use host machine's ip, in case run `docker-compose-env.yaml` and `docker-compose-service.yaml` separately,eg depoly env on linux and debug service on windows + ### Preparing jar packages Go to the `spring-cloud-alibaba-examples` directory and run the `mvn package` command to compile the project and generate the jar package, so as to prepare for the subsequent construction of the docker service image. @@ -74,7 +76,7 @@ For the distributed transaction capability, we provide the scenario **where a us #### Start test -Visit `http://integrated-frontend:8080/order` to experience the corresponding scenario. +Visit `http://integrated-frontend:8010/order` to experience the corresponding scenario. By clicking the order button directly to submit the form, we simulate the client sending a request to the gateway to create an order. @@ -111,7 +113,7 @@ For service fusion limiting and peak and valley cutting in the context of high t - Sentinel service meltdown degradation -Visit `http://integrated-frontend:8080/sentinel` to experience the corresponding scenario. +Visit `http://integrated-frontend:8010/sentinel` to experience the corresponding scenario. ![](https://my-img-1.oss-cn-hangzhou.aliyuncs.com/image-20221016155501290.png) @@ -123,7 +125,7 @@ Therefore, we can see that Sentinel performs a service fusion on the Gateway sid - RocketMQ is performing peak and valley reduction -Visit `http://integrated-frontend:8080/rocketmq` to experience the corresponding scenario. +Visit `http://integrated-frontend:8010/rocketmq` to experience the corresponding scenario. Since we previously configured the consumption rate and interval of the `integrated-praise-consumer` consumer module in Nacos, we simulate 1000 requests for likes at the click of a button, and the `integrated-praise-provider` will deliver 1000 requests to the Broker, and the consumer module will consume them according to the configured consumption rate, and update the database with the product data of the likes, simulating the characteristics of RocketMQ to cut the peaks and fill the valleys under high traffic. diff --git a/spring-cloud-alibaba-examples/integrated-example/docs/en/local-deployment.md b/spring-cloud-alibaba-examples/integrated-example/docs/en/local-deployment.md index e83264ca14..c53a5fed9d 100644 --- a/spring-cloud-alibaba-examples/integrated-example/docs/en/local-deployment.md +++ b/spring-cloud-alibaba-examples/integrated-example/docs/en/local-deployment.md @@ -30,11 +30,13 @@ To ensure that the code can start properly, please configure the local host mapp 127.0.0.1 integrated-mysql 127.0.0.1 nacos-server 127.0.0.1 seata-server -127.0.0.1 rocketmq +127.0.0.1 rocketmq-server 127.0.0.1 gateway-service 127.0.0.1 integrated-frontend ``` +> recommend to use host machine's ip, in case run `docker-compose-env.yaml` and `docker-compose-service.yaml` separately,eg depoly env on linux and debug service on windows + ### Database configuration Before you start the database configuration, please make sure the MySQL server is on. @@ -138,7 +140,7 @@ For the distributed transaction capability, we provide the scenario **where a us Start `integrated-storage`,`integrated-account`,`integrated-order` microservices respectively. -Visit `http://integrated-frontend:8080/order` to experience the corresponding scenario. +Visit `http://integrated-frontend:8010/order` to experience the corresponding scenario. By clicking the order button directly to submit the form, application simulate the client sending a request to the gateway to create an order. @@ -177,7 +179,7 @@ Start the `integrated-praise-provider` and `integrated-praise-consumer` modules - Sentinel service meltdown degradation -Visit `http://integrated-frontend:8080/sentinel` to experience the corresponding scenario. +Visit `http://integrated-frontend:8010/sentinel` to experience the corresponding scenario. ![](https://my-img-1.oss-cn-hangzhou.aliyuncs.com/image-20221016155501290.png) @@ -189,7 +191,7 @@ Therefore, we can see that Sentinel performs a service fusion on the Gateway sid - RocketMQ is performing peak and valley reduction -Visit `http://integrated-frontend:8080/rocketmq` to experience the corresponding scenario. +Visit `http://integrated-frontend:8010/rocketmq` to experience the corresponding scenario. Since previously configured the consumption rate and interval of the `integrated-praise-consumer` consumer module in Nacos, simulate 1000 requests for likes at the click of a button, and the `integrated-praise-provider` will deliver 1000 requests to the Broker, and the consumer module will consume them according to the configured consumption rate, and update the database with the product data of the likes, simulating the characteristics of RocketMQ to cut the peaks and fill the valleys under high traffic. diff --git a/spring-cloud-alibaba-examples/integrated-example/docs/zh/docker-compose-deploy-zh.md b/spring-cloud-alibaba-examples/integrated-example/docs/zh/docker-compose-deploy-zh.md index 3786a4e4b5..9de9404bb9 100644 --- a/spring-cloud-alibaba-examples/integrated-example/docs/zh/docker-compose-deploy-zh.md +++ b/spring-cloud-alibaba-examples/integrated-example/docs/zh/docker-compose-deploy-zh.md @@ -18,11 +18,13 @@ 127.0.0.1 integrated-mysql 127.0.0.1 nacos-server 127.0.0.1 seata-server -127.0.0.1 rocketmq +127.0.0.1 rocketmq-server 127.0.0.1 gateway-service 127.0.0.1 integrated-frontend ``` +> 推荐直接使用宿主机ip,避免 `docker-compose-env.yaml` 和 `docker-compose-service.yaml` 运行在不同环境的情况下,出现网络无法连接的情况,例如服务部署在Linux,但在Windows上 debug 应用 + ### 准备 jar 包 进入 `spring-cloud-alibaba-examples` 目录下,执行 `mvn package` 命令编译项目生成 jar 包,为后续 Docker 构建服务镜像做准备。 @@ -75,7 +77,7 @@ docker-compose-env.yml 文件运行成功之后,添加 Nacos 配置: #### 启动测试 -访问 `http://integrated-frontend:8080/order` 来体验对应场景。 +访问 `http://integrated-frontend:8010/order` 来体验对应场景。 直接点击下单按钮提交表单,应用模拟客户端向网关发送了一个创建订单的请求。 @@ -112,7 +114,7 @@ docker-compose-env.yml 文件运行成功之后,添加 Nacos 配置: - Sentinel 服务熔断降级 -访问 `http://integrated-frontend:8080/sentinel` 体验对应场景。 +访问 `http://integrated-frontend:8010/sentinel` 体验对应场景。 ![](https://my-img-1.oss-cn-hangzhou.aliyuncs.com/image-20221016155501290.png) @@ -124,7 +126,7 @@ docker-compose-env.yml 文件运行成功之后,添加 Nacos 配置: - RocketMQ 进行流量削峰填谷 -访问 `http://integrated-frontend:8080/rocketmq` 体验对应场景。 +访问 `http://integrated-frontend:8010/rocketmq` 体验对应场景。 由于之前在 Nacos 中配置了 `integrated-praise-consumer` 消费者模块的消费速率以及间隔,在点击按钮时应用模拟 1000 个点赞请求,针对 1000 个点赞请求,`integrated-praise-provider` 会将 1000 次请求都向 Broker 投递消息,而在消费者模块中会根据配置的消费速率进行消费,向数据库更新点赞的商品数据,模拟大流量下 RocketMQ 削峰填谷的特性。 diff --git a/spring-cloud-alibaba-examples/integrated-example/docs/zh/local-deployment-zh.md b/spring-cloud-alibaba-examples/integrated-example/docs/zh/local-deployment-zh.md index 866ec259eb..c459978a10 100644 --- a/spring-cloud-alibaba-examples/integrated-example/docs/zh/local-deployment-zh.md +++ b/spring-cloud-alibaba-examples/integrated-example/docs/zh/local-deployment-zh.md @@ -29,11 +29,13 @@ 127.0.0.1 integrated-mysql 127.0.0.1 nacos-server 127.0.0.1 seata-server -127.0.0.1 rocketmq +127.0.0.1 rocketmq-server 127.0.0.1 gateway-service 127.0.0.1 integrated-frontend ``` +> 推荐直接使用宿主机ip,避免 `docker-compose-env.yaml` 和 `docker-compose-service.yaml` 运行在不同环境的情况下,出现网络无法连接的情况,例如服务部署在Linux,但在Windows上 debug 应用 + ### 数据库配置 下面开始本地环境搭建准备,在数据库配置开始之前,请确保 MySQL 的服务端开启。 @@ -137,7 +139,7 @@ sh bin/mqbroker 分别启动 `integrated-storage`,`integrated-account`,`integrated-order` 三个微服务应用。 -访问 `http://integrated-frontend:8080/order` 来体验对应场景。 +访问 `http://integrated-frontend:8010/order` 来体验对应场景。 直接点击下单按钮提交表单,应用模拟客户端向网关发送了一个创建订单的请求。 @@ -176,7 +178,7 @@ sh bin/mqbroker - Sentinel 服务熔断降级 -访问 `http://integrated-frontend:8080/sentinel` 体验对应场景。 +访问 `http://integrated-frontend:8010/sentinel` 体验对应场景。 ![](https://my-img-1.oss-cn-hangzhou.aliyuncs.com/image-20221016155501290.png) @@ -188,7 +190,7 @@ sh bin/mqbroker - RocketMQ 进行流量削峰填谷 -访问 `http://integrated-frontend:8080/rocketmq` 体验对应场景。 +访问 `http://integrated-frontend:8010/rocketmq` 体验对应场景。 由于之前在 Nacos 中配置了 `integrated-praise-consumer` 消费者模块的消费速率以及间隔,在点击按钮时应用模拟 1000 个点赞请求,针对 1000 个点赞请求,`integrated-praise-provider` 会将 1000 次请求都向 Broker 投递消息,而在消费者模块中会根据配置的消费速率进行消费,向数据库更新点赞的商品数据,模拟大流量下 RocketMQ 削峰填谷的特性。 diff --git a/spring-cloud-alibaba-examples/integrated-example/helm-chart/templates/integrated-frontend.yaml b/spring-cloud-alibaba-examples/integrated-example/helm-chart/templates/integrated-frontend.yaml index 82f8f5d2ff..45235af5d2 100644 --- a/spring-cloud-alibaba-examples/integrated-example/helm-chart/templates/integrated-frontend.yaml +++ b/spring-cloud-alibaba-examples/integrated-example/helm-chart/templates/integrated-frontend.yaml @@ -7,9 +7,9 @@ metadata: spec: type: NodePort ports: - - port: 8080 + - port: 8010 name: web - targetPort: 8080 + targetPort: 8010 nodePort: 30080 selector: app: integrated-frontend diff --git a/spring-cloud-alibaba-examples/integrated-example/helm-chart/templates/integrated-rocketmq.yaml b/spring-cloud-alibaba-examples/integrated-example/helm-chart/templates/integrated-rocketmq.yaml index 94957657fa..83ae9574a1 100644 --- a/spring-cloud-alibaba-examples/integrated-example/helm-chart/templates/integrated-rocketmq.yaml +++ b/spring-cloud-alibaba-examples/integrated-example/helm-chart/templates/integrated-rocketmq.yaml @@ -52,7 +52,7 @@ spec: containers: - name: mqbroker image: registry.cn-hangzhou.aliyuncs.com/sca-community/rocketmq-server - command: ["sh","/usr/local/rocketmq-4.8.0/bin/mqbroker", "-n","rocketmq:9876"] + command: ["sh","/usr/local/rocketmq-4.8.0/bin/mqbroker", "-n","rocketmq-server:9876"] imagePullPolicy: IfNotPresent env: - name: JAVA_OPT diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-account/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-account/Dockerfile index 762e9b570e..c2bfcfb900 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-account/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-account/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:8-jdk-alpine as builder +FROM openjdk:17-jdk-alpine AS builder LABEL author="yuluo" \ email="yuluo829@aliyun.com" diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-account/src/main/java/com/alibaba/cloud/integration/account/controller/AccountController.java b/spring-cloud-alibaba-examples/integrated-example/integrated-account/src/main/java/com/alibaba/cloud/integration/account/controller/AccountController.java index 7b1d7e4b3d..f9bf2b268c 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-account/src/main/java/com/alibaba/cloud/integration/account/controller/AccountController.java +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-account/src/main/java/com/alibaba/cloud/integration/account/controller/AccountController.java @@ -22,11 +22,7 @@ import com.alibaba.cloud.integration.common.Result; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * @author TrevorLink @@ -50,7 +46,7 @@ public Result reduceBalance(@RequestBody AccountDTO accountDTO) { } @GetMapping("/") - public Result getRemainAccount(String userId) { + public Result getRemainAccount(@RequestParam("userId") String userId) { return accountService.getRemainAccount(userId); } diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/Dockerfile index 1bf3880b7b..6506207709 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:8-jdk-alpine as builder +FROM openjdk:17-jdk-alpine AS builder LABEL author="yuluo" \ email="yuluo829@aliyun.com" @@ -7,6 +7,6 @@ ADD ./integrated-frontend/target/integrated-frontend-*.jar /app.jar RUN sh -c 'touch /app.jar' -EXPOSE 8080 +EXPOSE 8010 ENTRYPOINT ["java", "-jar", "/app.jar"] diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/src/main/resources/application.yaml b/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/src/main/resources/application.yaml new file mode 100644 index 0000000000..32ebd3582b --- /dev/null +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/src/main/resources/application.yaml @@ -0,0 +1,6 @@ +spring: + application: + name: integrated-frontend + +server: + port: 8010 diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-gateway/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-gateway/Dockerfile index 8fb93a28de..d65a47ad95 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-gateway/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-gateway/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:8-jdk-alpine as builder +FROM openjdk:17-jdk-alpine AS builder LABEL author="yuluo" \ email="yuluo829@aliyun.com" diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-order/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-order/Dockerfile index 23cf648f98..da4901f1e0 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-order/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-order/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:8-jdk-alpine as builder +FROM openjdk:17-jdk-alpine AS builder LABEL author="yuluo" \ email="yuluo829@aliyun.com" diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/Dockerfile index ac40e8e05f..51f1100273 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:8-jdk-alpine as builder +FROM openjdk:17-jdk-alpine AS builder LABEL author="yuluo" \ email="yuluo829@aliyun.com" diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/controller/PraiseController.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/controller/PraiseController.java index 10610491ea..678bd804bf 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/controller/PraiseController.java +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/controller/PraiseController.java @@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** @@ -34,7 +35,7 @@ public class PraiseController { private PraiseService praiseService; @GetMapping("/query") - public Integer getPraise(Integer itemId) { + public Integer getPraise(@RequestParam("itemId") Integer itemId) { return praiseService.getPraise(itemId); } diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/Dockerfile index 0f9f746eea..64fe3ec8df 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:8-jdk-alpine as builder +FROM openjdk:17-jdk-alpine AS builder LABEL author="yuluo" \ email="yuluo829@aliyun.com" diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/controller/PraiseController.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/controller/PraiseController.java index b5a08c22af..b250306650 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/controller/PraiseController.java +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/controller/PraiseController.java @@ -38,7 +38,7 @@ public class PraiseController { private StreamBridge streamBridge; @GetMapping({ "/rocketmq", "/sentinel" }) - public boolean praise(@RequestParam Integer itemId) { + public boolean praise(@RequestParam("itemId") Integer itemId) { PraiseMessage message = new PraiseMessage(); message.setItemId(itemId); Message praiseMessage = MessageBuilder.withPayload(message) diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-storage/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-storage/Dockerfile index db3348737d..19fae52b04 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-storage/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-storage/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:8-jdk-alpine as builder +FROM openjdk:17-jdk-alpine AS builder LABEL author="yuluo" \ email="yuluo829@aliyun.com" diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-storage/src/main/java/com/alibaba/cloud/integration/storage/controller/StorageController.java b/spring-cloud-alibaba-examples/integrated-example/integrated-storage/src/main/java/com/alibaba/cloud/integration/storage/controller/StorageController.java index c7fdb09d24..f48efd0f3b 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-storage/src/main/java/com/alibaba/cloud/integration/storage/controller/StorageController.java +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-storage/src/main/java/com/alibaba/cloud/integration/storage/controller/StorageController.java @@ -22,11 +22,7 @@ import com.alibaba.cloud.integration.storage.service.StorageService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * @author TrevorLink @@ -51,7 +47,7 @@ public Result reduceStock(@RequestBody StorageDTO storageDTO) { } @GetMapping("/") - public Result getRemainCount(String commodityCode) { + public Result getRemainCount(@RequestParam("commodityCode") String commodityCode) { return storageService.getRemainCount(commodityCode); } diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java/com/alibaba/cloud/examples/EchoController.java b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java/com/alibaba/cloud/examples/EchoController.java index 93d824800b..6041ec6ecc 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java/com/alibaba/cloud/examples/EchoController.java +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java/com/alibaba/cloud/examples/EchoController.java @@ -63,7 +63,7 @@ public String sleep() { } @GetMapping("/echo/{string}") - public String echo(@PathVariable String string) { + public String echo(@PathVariable("string") String string) { return "hello Nacos Discovery " + string; } diff --git a/spring-cloud-alibaba-examples/seata-example/account-service/src/main/java/com/alibaba/cloud/examples/AccountController.java b/spring-cloud-alibaba-examples/seata-example/account-service/src/main/java/com/alibaba/cloud/examples/AccountController.java index b244123379..0083576dd2 100644 --- a/spring-cloud-alibaba-examples/seata-example/account-service/src/main/java/com/alibaba/cloud/examples/AccountController.java +++ b/spring-cloud-alibaba-examples/seata-example/account-service/src/main/java/com/alibaba/cloud/examples/AccountController.java @@ -24,6 +24,7 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** @@ -48,7 +49,7 @@ public AccountController(JdbcTemplate jdbcTemplate) { } @PostMapping(value = "/account", produces = "application/json") - public String account(String userId, int money) { + public String account(@RequestParam("userId") String userId,@RequestParam("money") Integer money) { LOGGER.info("Account Service ... xid: " + RootContext.getXID()); if (random.nextBoolean()) { diff --git a/spring-cloud-alibaba-examples/seata-example/order-service/src/main/java/com/alibaba/cloud/examples/OrderController.java b/spring-cloud-alibaba-examples/seata-example/order-service/src/main/java/com/alibaba/cloud/examples/OrderController.java index 2cc1317b4b..82855bf83d 100644 --- a/spring-cloud-alibaba-examples/seata-example/order-service/src/main/java/com/alibaba/cloud/examples/OrderController.java +++ b/spring-cloud-alibaba-examples/seata-example/order-service/src/main/java/com/alibaba/cloud/examples/OrderController.java @@ -36,6 +36,7 @@ import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @@ -68,7 +69,7 @@ public OrderController(JdbcTemplate jdbcTemplate, RestTemplate restTemplate) { } @PostMapping(value = "/order", produces = "application/json") - public String order(String userId, String commodityCode, int orderCount) { + public String order(@RequestParam("userId") String userId, @RequestParam("commodityCode") String commodityCode, @RequestParam("orderCount") Integer orderCount) { LOGGER.info("Order Service Begin ... xid: " + RootContext.getXID()); int orderMoney = calculate(commodityCode, orderCount); diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/controller/ApiController.java b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/controller/ApiController.java index 7125420be2..e063a3b991 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/controller/ApiController.java +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/controller/ApiController.java @@ -29,7 +29,7 @@ public class ApiController { @GetMapping("/default/{ok}") - public String defaultConfig(@PathVariable boolean ok) { + public String defaultConfig(@PathVariable(value = "ok") boolean ok) { if (ok) { return "ok"; } @@ -37,7 +37,7 @@ public String defaultConfig(@PathVariable boolean ok) { } @GetMapping("/feign/{ok}") - public String feignConfig(@PathVariable boolean ok) { + public String feignConfig(@PathVariable(value = "ok") boolean ok) { if (ok) { return "ok"; } @@ -45,7 +45,7 @@ public String feignConfig(@PathVariable boolean ok) { } @GetMapping("/feignMethod/{ok}") - public String feignMethodConfig(@PathVariable boolean ok) { + public String feignMethodConfig(@PathVariable(value = "ok") boolean ok) { if (ok) { return "ok"; } diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/controller/TestController.java b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/controller/TestController.java index 31784d563e..c74574fdab 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/controller/TestController.java +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/controller/TestController.java @@ -38,17 +38,17 @@ public class TestController { private OrderClient orderClient; @GetMapping("/test/default/{ok}") - public String testDefault(@PathVariable boolean ok) { + public String testDefault(@PathVariable(value = "ok") boolean ok) { return orderClient.defaultConfig(ok); } @GetMapping("/test/feign/{ok}") - public String testFeign(@PathVariable boolean ok) { + public String testFeign(@PathVariable(value = "ok") boolean ok) { return userClient.feign(ok); } @GetMapping("/test/feignMethod/{ok}") - public String testFeignMethod(@PathVariable boolean ok) { + public String testFeignMethod(@PathVariable(value = "ok") boolean ok) { return userClient.feignMethod(ok); } diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/feign/OrderClient.java b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/feign/OrderClient.java index d574310e57..97b1278819 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/feign/OrderClient.java +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/feign/OrderClient.java @@ -29,6 +29,6 @@ public interface OrderClient { @GetMapping("/default/{ok}") - String defaultConfig(@PathVariable boolean ok); + String defaultConfig(@PathVariable(value = "ok") boolean ok); } diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/feign/UserClient.java b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/feign/UserClient.java index 3f3408d51c..ec8f83b669 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/feign/UserClient.java +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java/com/alibaba/cloud/examples/feign/UserClient.java @@ -29,9 +29,9 @@ public interface UserClient { @GetMapping("/feignMethod/{ok}") - String feignMethod(@PathVariable boolean ok); + String feignMethod(@PathVariable(value = "ok") boolean ok); @GetMapping("/feign/{ok}") - String feign(@PathVariable boolean ok); + String feign(@PathVariable(value = "ok") boolean ok); } diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/resources/application.yml index cdb4417c73..8a4ef9447a 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/resources/application.yml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/resources/application.yml @@ -27,6 +27,9 @@ spring: server-addr: 127.0.0.1:8848 username: 'nacos' password: 'nacos' + openfeign: + circuitbreaker: + enabled: true config: import: optional:nacos:sentinel-circuitbreaker-rules.yml diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/java/com/alibaba/cloud/examples/TestController.java b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/java/com/alibaba/cloud/examples/TestController.java index 51a0b3927c..3fe503e465 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/java/com/alibaba/cloud/examples/TestController.java +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/java/com/alibaba/cloud/examples/TestController.java @@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @@ -30,45 +31,44 @@ @RestController public class TestController { - @Autowired - private RestTemplate restTemplate; + @Autowired + private RestTemplate restTemplate; - @Autowired - private CircuitBreakerFactory circuitBreakerFactory; + @Autowired + private CircuitBreakerFactory circuitBreakerFactory; - @GetMapping("/hello") - @SentinelResource("resource") - public String hello() { - return "Hello"; - } + @GetMapping("/hello") + @SentinelResource("resource") + public String hello() { + return "Hello"; + } - @GetMapping("/aa") - @SentinelResource("aa") - public String aa(int b, int a) { - return "Hello test"; - } + @GetMapping("/aa") + @SentinelResource("aa") + public String aa(@RequestParam("b") int b, @RequestParam("a") int a) { + return "Hello test"; + } - @GetMapping("/test") - public String test1() { - return "Hello test"; - } + @GetMapping("/test") + public String test1() { + return "Hello test"; + } - @GetMapping("/template") - public String client() { - return restTemplate.getForObject("http://www.taobao.com/test", String.class); - } + @GetMapping("/template") + public String client() { + return restTemplate.getForObject("http://www.taobao.com/test", String.class); + } - @GetMapping("/slow") - public String slow() { - return circuitBreakerFactory.create("slow").run(() -> { - try { - Thread.sleep(500L); - } - catch (InterruptedException e) { - e.printStackTrace(); - } - return "slow"; - }, throwable -> "fallback"); - } + @GetMapping("/slow") + public String slow() { + return circuitBreakerFactory.create("slow").run(() -> { + try { + Thread.sleep(500L); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return "slow"; + }, throwable -> "fallback"); + } } diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/application.yml index 6069364d94..e3f95a7c0a 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/application.yml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/application.yml @@ -67,14 +67,16 @@ server: port: 18083 management: - endpoint: + endpoints: web: exposure: include: "*" + endpoint: health: show-details: always - diskSpace: - # we can disable health check, default is enable - enabled: false - # sentinel: - # enabled: false + health: + diskspace: + # we can disable health check, default is enable + enabled: false +# sentinel: +# enabled: false diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/src/main/resources/application.yml index a32c172c0b..48384702df 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/src/main/resources/application.yml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/src/main/resources/application.yml @@ -37,4 +37,4 @@ management: endpoints: web: exposure: - include=*: + include: '*'