├── .gitignore ├── .idea └── vcs.xml ├── README.md ├── business-common-api ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── alibaba │ └── cloud │ └── youxia │ ├── bo │ ├── Example2ProductBo.java │ └── Example5OrderBo.java │ ├── dto │ ├── GoodDTO.java │ └── UserDTO.java │ ├── request │ ├── GoodServiceRequest.java │ └── UserServiceRequest.java │ ├── response │ ├── DefaultResult.java │ ├── ResponseFuture.java │ └── Result.java │ └── service │ ├── GoodService.java │ └── UserService.java ├── chaptereight ├── pom.xml ├── use-spring-boot-access-rocketmq │ ├── pom.xml │ ├── use-spring-boot-consume │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── UseSpringBootConsumeApplication.java │ │ │ │ ├── config │ │ │ │ └── UseSpringBootConsumeConfig.java │ │ │ │ └── consumer │ │ │ │ └── StringConsumer.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── use-spring-boot-produce │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── UseSpringBootProduceApplication.java │ │ │ └── config │ │ │ └── UseSpringBootProduceConfig.java │ │ └── resources │ │ └── bootstrap.yaml ├── use-spring-cloud-alibaba-access-rocketmq │ ├── pom.xml │ ├── use-spring-cloud-alibaba-consume │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── ReceiveService.java │ │ │ │ ├── UseSpringCloudAlibabaConsumeApplication.java │ │ │ │ └── config │ │ │ │ ├── MySink.java │ │ │ │ └── RocketmqConsumeConfig.java │ │ │ └── resources │ │ │ └── application.properties │ └── use-spring-cloud-alibaba-produce │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SenderService.java │ │ │ ├── SpringCloudAlibabaMessage.java │ │ │ ├── UseSpringCloudAlibabaProduceApplication.java │ │ │ ├── config │ │ │ └── RocketmqConfig.java │ │ │ ├── controller │ │ │ └── ProduceController.java │ │ │ └── source │ │ │ └── MySource.java │ │ └── resources │ │ └── application.properties ├── use-spring-cloud-alibaba-pull-consume │ ├── pom.xml │ ├── pull-message-consume │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── cloud │ │ │ │ │ └── youxia │ │ │ │ │ ├── PullMessageConsumeApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── PullLongPollMessageController.java │ │ │ │ │ └── rocketmq │ │ │ │ │ ├── PullLongPollMessageReceiveService.java │ │ │ │ │ ├── PullMessageConsumeSink.java │ │ │ │ │ └── PushMessageReceiveService.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ └── test │ │ │ └── resources │ │ │ └── application.properties │ └── pull-message-produce │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── PullMessageProduceApplication.java │ │ │ ├── controller │ │ │ └── PullMessageController.java │ │ │ └── rocketmq │ │ │ ├── PullMessageSendService.java │ │ │ └── PullMessageSource.java │ │ └── resources │ │ └── application.properties ├── use-spring-cloud-alibaba-rocketmq-transaction-message │ ├── consume-transaction-message │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ └── ConsumeTransactionMessageApplication.java │ │ │ └── resources │ │ │ └── application.properties │ ├── pom.xml │ └── produce-transaction-message │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ProduceTransationMessageApplication.java │ │ │ ├── config │ │ │ └── ProducerConfig.java │ │ │ ├── controller │ │ │ └── TransationMessageController.java │ │ │ └── transation │ │ │ ├── ProducerTransationService.java │ │ │ └── TransactionListenerImpl.java │ │ └── resources │ │ └── application.properties └── use-spring-cloud-alibaba-sync-async │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── UseSpringCloudAlibabaSyncAsyncApplication.java │ │ ├── controller │ │ └── SyncAsyncSendMessageController.java │ │ └── rocketmq │ │ ├── SyncAsyncMessageSource.java │ │ └── SyncAsyncSendService.java │ └── resources │ └── application.properties ├── chaptereighteen ├── alarm-platform │ ├── alarm-client │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ └── AlarmService.java │ ├── alarm-distribution │ │ ├── pom.xml │ │ ├── productA-development.xml │ │ ├── productA-development │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productA-prod.xml │ │ ├── productA-prod │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productA-test.xml │ │ ├── productA-test │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productB-development.xml │ │ ├── productB-development │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productB-prod.xml │ │ ├── productB-prod │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productB-test.xml │ │ └── productB-test │ │ │ ├── env.properties │ │ │ └── start.sh │ ├── alarm-server │ │ ├── pom.xml │ │ ├── src │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── cloud │ │ │ │ │ └── youxia │ │ │ │ │ ├── AlarmApplicationServer.java │ │ │ │ │ ├── config │ │ │ │ │ ├── AlarmConfig.java │ │ │ │ │ ├── AlarmConfigService.java │ │ │ │ │ ├── AlarmServicePhoneConfig.java │ │ │ │ │ ├── NacosAlarmConfig.java │ │ │ │ │ ├── RocketMQAlarmConfig.java │ │ │ │ │ ├── RocketMQWhiteListConfig.java │ │ │ │ │ ├── SkwalkingWhiteListConfig.java │ │ │ │ │ └── SkywalkingErrorTraceConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── AlarmPushController.java │ │ │ │ │ ├── dto │ │ │ │ │ ├── AlarmMessageDTO.java │ │ │ │ │ ├── AlarmPrincipalDTO.java │ │ │ │ │ ├── NacosAlarmMessage.java │ │ │ │ │ ├── QueueStatInfo.java │ │ │ │ │ ├── SkyOapConfigDTO.java │ │ │ │ │ ├── SkywalkingAlarmMessage.java │ │ │ │ │ ├── SkywalkingWhiteList.java │ │ │ │ │ └── TopicConsumerInfo.java │ │ │ │ │ ├── job │ │ │ │ │ ├── RocketmqAlarmJob.java │ │ │ │ │ ├── SkywalkingErrorAlarmJob.java │ │ │ │ │ └── nacos │ │ │ │ │ │ └── NacosHealthAlarmPullJob.java │ │ │ │ │ ├── service │ │ │ │ │ ├── NacosAlarmService.java │ │ │ │ │ └── SkywalkingErrorAlarmService.java │ │ │ │ │ └── util │ │ │ │ │ ├── AlarmRedisUtil.java │ │ │ │ │ ├── DingDingUtils.java │ │ │ │ │ ├── HttpClientUtils.java │ │ │ │ │ └── RestResult.java │ │ │ │ └── resources │ │ │ │ ├── agent.config │ │ │ │ └── bootstrap.yaml │ │ └── target │ │ │ └── classes │ │ │ ├── agent.config │ │ │ └── bootstrap.yaml │ └── pom.xml ├── good-server │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── GoodApplicationServer.java │ │ │ │ ├── config │ │ │ │ └── GoodAlarmConfig.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── GoodServiceImpl.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── target │ │ └── classes │ │ └── bootstrap.yaml ├── inventory-server │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── InventoryApplicationServer.java │ │ │ │ ├── config │ │ │ │ └── InventoryAlarmConfig.java │ │ │ │ ├── manager │ │ │ │ └── InventoryManager.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── InventoryServiceImpl.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── target │ │ └── classes │ │ └── bootstrap.yaml ├── logistics-server │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── LogisticsApplicationServer.java │ │ │ │ ├── rocketmq │ │ │ │ ├── OrderSyncMessageSendService.java │ │ │ │ └── SendServiceSource.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── LogisticsServiceImpl.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── target │ │ └── classes │ │ └── bootstrap.yaml ├── order-server │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── OrderApplicationServer.java │ │ │ │ ├── config │ │ │ │ ├── MySink.java │ │ │ │ ├── OrderAlarmConfig.java │ │ │ │ ├── ReceiveService.java │ │ │ │ └── RocketmqConsumeConfig.java │ │ │ │ ├── manager │ │ │ │ └── OrderManager.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── OrderServiceImpl.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── target │ │ └── classes │ │ └── bootstrap.yaml ├── pay-server │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── PayApplicationServer.java │ │ │ │ ├── config │ │ │ │ └── PayAlarmConfig.java │ │ │ │ ├── manager │ │ │ │ └── PayManager.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── PayServiceImpl.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── target │ │ └── classes │ │ └── bootstrap.yaml ├── pom.xml └── trade-server │ ├── pom.xml │ ├── src │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── TradeApplicationServer.java │ │ │ ├── config │ │ │ ├── SwaggerConfig.java │ │ │ └── TradeAlarmConfig.java │ │ │ ├── controller │ │ │ └── OrderController.java │ │ │ ├── manager │ │ │ └── TradeManager.java │ │ │ └── service │ │ │ └── impl │ │ │ └── TradeServiceImpl.java │ │ └── resources │ │ └── bootstrap.yaml │ └── target │ └── classes │ └── bootstrap.yaml ├── chaptereleven ├── elasticjob-Job-trace-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SpringCloudTraceAlibabaElasticJobApplication.java │ │ │ ├── config │ │ │ └── ElasticJobTraceConfig.java │ │ │ └── elasticjob │ │ │ └── ElasticTraceMessageJob.java │ │ └── resources │ │ └── bootstrap.yaml ├── elasticjob-operate-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SpringCloudOperateAlibabaElasticJobApplication.java │ │ │ └── elasticjob │ │ │ └── ElasticOperateMessageJob.java │ │ └── resources │ │ └── bootstrap.yaml ├── elasticjob-shard-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SpringCloudShardAlibabaElasticJobApplication.java │ │ │ └── elasticjob │ │ │ └── ElasticShardMessageJob.java │ │ └── resources │ │ └── application.yaml ├── elasticjob-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SpringCloudAlibabaElasticJobApplication.java │ │ │ └── elasticjob │ │ │ └── ElasticMessageJob.java │ │ └── resources │ │ └── bootstrap.yaml └── pom.xml ├── chapterfive ├── beata-spring-cloud-alibaba-config │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── BeataSpringCloudAlibabaApplication.java │ │ │ ├── ConfigReader.java │ │ │ └── NacosConfig.java │ │ └── resources │ │ ├── application.properties │ │ └── bootstrap.yaml ├── configuring-priorities-load-nacos │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com.alibaba.cloud.youxia │ │ │ ├── Application.java │ │ │ └── service │ │ │ ├── Config.java │ │ │ ├── ConfigValueTest.java │ │ │ ├── ConfigValueThread.java │ │ │ ├── OrderService.java │ │ │ └── OrderServiceImpl.java │ │ └── resources │ │ └── bootstrap.yaml ├── nacos2.0-grpc-spring-cloud-alibaba-config │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ └── NacosGrpcApplication.java │ │ └── resources │ │ ├── application.properties │ │ └── bootstrap.yaml ├── openapi-nacos-config │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── OpenAPINacosConfigApplication.java │ │ │ │ ├── OpenApiConfig.java │ │ │ │ └── ReaderConfigManager.java │ │ └── resources │ │ │ └── bootstrap.yaml │ │ └── test │ │ └── ConfigReader.java ├── pom.xml ├── soft-jraft-apache-derby-config │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ConfigReader.java │ │ │ ├── NacosConfig.java │ │ │ └── SoftJraftApacheDerbyApplication.java │ │ └── resources │ │ ├── application.properties │ │ └── bootstrap.yaml ├── spring-cloud-alibaba-config │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ConfigReader.java │ │ │ ├── SpringCloudConfigApplication.java │ │ │ └── config │ │ │ └── NacosConfig.java │ │ └── resources │ │ ├── application.properties │ │ └── bootstrap.yaml └── use-nacos-client-nacos-config │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── NacosClientApplication.java │ │ ├── config │ │ └── NacosConfig.java │ │ └── manager │ │ └── NacosConfigManager.java │ └── resources │ └── bootstrap.yaml ├── chapterfiveteen ├── elk-common-log-format │ ├── .gitignore │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ └── log │ │ ├── AbstractLogFormat.java │ │ ├── JsonLogFormat.java │ │ ├── KVJsonFormat.java │ │ ├── LogFormat.java │ │ ├── ObjectJsonFormat.java │ │ └── util │ │ ├── AbstractLogUtil.java │ │ ├── JsonUtil.java │ │ └── LogUtil.java ├── elk-common-logback │ ├── .gitignore │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ └── logback │ │ │ └── appender │ │ │ ├── AsyncRollingFileAppender.java │ │ │ ├── dubbo │ │ │ ├── DubboLogFilter.java │ │ │ ├── DubboLogProperties.java │ │ │ └── LogInfo.java │ │ │ └── logger │ │ │ ├── LoggerMarker.java │ │ │ ├── LoggerMarkers.java │ │ │ └── Loggers.java │ │ └── resources │ │ ├── META-INF │ │ └── dubbo │ │ │ └── org.apache.dubbo.rpc.Filter │ │ └── include-logback.xml ├── elk-front-api-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ElkFrontApiServer.java │ │ │ ├── config │ │ │ └── ApiConfig.java │ │ │ └── controller │ │ │ └── OrderController.java │ │ └── resources │ │ ├── bootstrap.yaml │ │ └── logback-spring.xml ├── elk-order-dubbo-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ElkOrderDubboServer.java │ │ │ └── service │ │ │ └── impl │ │ │ └── FiveteenOrderServiceImpl.java │ │ └── resources │ │ ├── bootstrap.yaml │ │ └── logback-spring.xml ├── elk-trade-dubbo-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ElkTradeDubboServer.java │ │ │ └── service │ │ │ └── impl │ │ │ └── FiveteenTradeServiceImpl.java │ │ └── resources │ │ ├── bootstrap.yaml │ │ └── logback-spring.xml ├── logs │ └── bak │ │ ├── dubbo_access.2021-09-09.log172277898293791.tmp │ │ └── dubbo_access.2021-09-10.log181125766032500.tmp └── pom.xml ├── chapterfour ├── idempotent-design-spring-cloud-alibaba │ ├── distributed-uuid-server │ │ ├── pom.xml │ │ ├── src │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── cloud │ │ │ │ │ └── youxia │ │ │ │ │ ├── DistributedServerApplication.java │ │ │ │ │ ├── config │ │ │ │ │ ├── SnowflakeConfig.java │ │ │ │ │ └── SnowflakeInfo.java │ │ │ │ │ ├── service │ │ │ │ │ └── impl │ │ │ │ │ │ ├── DistributedServiceImpl.java │ │ │ │ │ │ └── SnowFlake.java │ │ │ │ │ └── util │ │ │ │ │ └── NetUtils.java │ │ │ │ └── resources │ │ │ │ └── bootstrap.yaml │ │ └── target │ │ │ └── classes │ │ │ └── bootstrap.yaml │ ├── idempotent-design-user-api │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── bo │ │ │ ├── Example2ProductBo.java │ │ │ └── Example5OrderBo.java │ │ │ ├── dto │ │ │ ├── GoodDTO.java │ │ │ └── UserDTO.java │ │ │ ├── request │ │ │ ├── GoodServiceRequest.java │ │ │ └── UserServiceRequest.java │ │ │ ├── response │ │ │ ├── DefaultResult.java │ │ │ ├── ResponseFuture.java │ │ │ └── Result.java │ │ │ └── service │ │ │ ├── GoodService.java │ │ │ └── UserService.java │ ├── idempotent-design-user-client │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── UserClientApplication.java │ │ │ │ ├── config │ │ │ │ ├── NacosConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ └── controller │ │ │ │ ├── GoodController.java │ │ │ │ └── UserController.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ ├── idempotent-design-user-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── UserServerApplication.java │ │ │ │ ├── config │ │ │ │ ├── MybatisPlusConfig.java │ │ │ │ └── MybatisPlusOptLockerConfig.java │ │ │ │ ├── entity │ │ │ │ ├── Example2ProductEntity.java │ │ │ │ └── UserEntity.java │ │ │ │ ├── mapper │ │ │ │ ├── Example2ProductMapper.java │ │ │ │ └── UserMapper.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ ├── GoodServiceImpl.java │ │ │ │ └── UserServiceImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mybatis │ │ │ └── mapper │ │ │ ├── Example2ProductMapper.xml │ │ │ └── UserMapper.xml │ └── pom.xml ├── integration-dubbo-alibaba-metadata │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── DubboMetadataApplication.java │ │ │ ├── controller │ │ │ └── OrderController.java │ │ │ └── service │ │ │ ├── OrderService.java │ │ │ └── OrderServiceImpl.java │ │ └── resources │ │ └── bootstrap.yaml ├── nacos-client-spring-nacos-naming │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ConsumerBootstrap.java │ │ │ ├── ProviderBootstrap.java │ │ │ ├── consumer │ │ │ └── OrderServiceConsumer.java │ │ │ ├── controller │ │ │ └── OrderController.java │ │ │ └── service │ │ │ ├── OrderServiceProvider.java │ │ │ └── OrderServiceProviderImpl.java │ │ ├── resources │ │ ├── log4j.properties │ │ └── spring │ │ │ ├── dubbo-consumer.properties │ │ │ └── dubbo-provider.properties │ │ └── webapp │ │ ├── WEB-INF │ │ ├── dispatcherServlet-servlet.xml │ │ └── web.xml │ │ └── index.jsp ├── nacos-sync │ ├── eureka-consumer │ │ ├── pom.xml │ │ ├── src │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── cloud │ │ │ │ │ └── youxia │ │ │ │ │ ├── EurekaConsumerApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── EurekaController.java │ │ │ │ │ └── service │ │ │ │ │ └── EurekaService.java │ │ │ │ └── resources │ │ │ │ └── bootstrap.yml │ │ └── target │ │ │ ├── classes │ │ │ └── bootstrap.yml │ │ │ ├── eureka-consumer-1.0.0.release.jar.original │ │ │ ├── maven-archiver │ │ │ └── pom.properties │ │ │ └── maven-status │ │ │ └── maven-compiler-plugin │ │ │ └── compile │ │ │ └── default-compile │ │ │ ├── createdFiles.lst │ │ │ └── inputFiles.lst │ ├── eureka-provider │ │ ├── pom.xml │ │ ├── src │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── cloud │ │ │ │ │ └── youxia │ │ │ │ │ ├── EurekaProviderApplicatipn.java │ │ │ │ │ └── controller │ │ │ │ │ └── EurekaProviderController.java │ │ │ │ └── resources │ │ │ │ └── bootstrap.yml │ │ └── target │ │ │ ├── classes │ │ │ └── bootstrap.yml │ │ │ ├── eureka-provider-1.0.0.release.jar.original │ │ │ ├── maven-archiver │ │ │ └── pom.properties │ │ │ └── maven-status │ │ │ └── maven-compiler-plugin │ │ │ ├── compile │ │ │ └── default-compile │ │ │ │ ├── createdFiles.lst │ │ │ │ └── inputFiles.lst │ │ │ └── testCompile │ │ │ └── default-testCompile │ │ │ └── inputFiles.lst │ ├── eureka-server │ │ ├── pom.xml │ │ ├── src │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── alibaba │ │ │ │ │ └── cloud │ │ │ │ │ └── youxia │ │ │ │ │ └── EurekaServerApplicatipn.java │ │ │ │ └── resources │ │ │ │ └── bootstrap.yml │ │ └── target │ │ │ └── classes │ │ │ └── bootstrap.yml │ ├── nacos-consumer │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── NacosConsumerApplication.java │ │ │ │ ├── config │ │ │ │ ├── NacosGlobalClientConfig.java │ │ │ │ ├── NacosRibbonRuleConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ └── controller │ │ │ │ └── NacosConsumerController.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── pom.xml ├── persistence-discovery-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── PersistenceDiscoveryApplication.java │ │ │ └── service │ │ │ └── PersistenceServiceImpl.java │ │ └── resources │ │ └── bootstrap.yaml ├── pom.xml ├── ribbon-discovery-spring-cloud-alibaba-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── RibbonDiscoveryConsumerApplication.java │ │ │ ├── config │ │ │ ├── NacosGlobalClientConfig.java │ │ │ ├── NacosRibbonRuleConfig.java │ │ │ └── SwaggerConfig.java │ │ │ └── controller │ │ │ └── NacosRibbonController.java │ │ └── resources │ │ └── bootstrap.yaml ├── ribbon-discovery-spring-cloud-alibaba-provider │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── RibbonDiscoveryProviderApplication.java │ │ │ │ ├── controller │ │ │ │ └── ProviderController.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ ├── RibbonDiscoveryServiceImpl.java │ │ │ │ └── RibbonTestServiceImpl.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── target │ │ ├── classes │ │ └── bootstrap.yaml │ │ ├── maven-archiver │ │ └── pom.properties │ │ └── maven-status │ │ └── maven-compiler-plugin │ │ └── compile │ │ └── default-compile │ │ ├── createdFiles.lst │ │ └── inputFiles.lst ├── spring-cloud-alibaba-discovery-problem │ ├── pom.xml │ ├── spring-cloud-alibaba-discovery-problem-api │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── RibbonDiscoveryConsumerDemoApplication.java │ │ │ │ ├── config │ │ │ │ └── SwaggerConfig.java │ │ │ │ └── controller │ │ │ │ └── NacosRibbonController.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ ├── spring-cloud-alibaba-discovery-problem-consumer │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── RibbonDiscoveryConsumerDemoApplication.java │ │ │ │ ├── config │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── controller │ │ │ │ └── NacosRibbonController.java │ │ │ │ └── service │ │ │ │ └── ProblemService.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ └── spring-cloud-alibaba-discovery-problem-provider │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ProblemDiscoveryProviderDemoApplication.java │ │ │ ├── controller │ │ │ └── ProviderController.java │ │ │ └── service │ │ │ └── impl │ │ │ ├── RibbonDiscoveryServiceImpl.java │ │ │ └── RibbonTestServiceImpl.java │ │ └── resources │ │ └── bootstrap.yaml ├── use-nacos-spring-boot │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── UseNacosSpringBootServer.java │ │ │ │ ├── controller │ │ │ │ └── PayController.java │ │ │ │ └── service │ │ │ │ ├── PayService.java │ │ │ │ └── impl │ │ │ │ └── PayServiceImpl.java │ │ │ └── resources │ │ │ └── application.properties │ └── target │ │ └── classes │ │ └── application.properties └── use-spring-cloud-alibaba-discovery │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── UseSpringCloudAlibabaDiscoveryServer.java │ │ ├── controller │ │ └── GoodController.java │ │ └── service │ │ ├── GoodService.java │ │ └── GoodServiceImpl.java │ └── resources │ └── bootstrap.yaml ├── chapterfourteen ├── blue-green-publish-cloud-alibaba │ ├── blue-green-gateway-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── BlueGreenAlibabaGatewayServer.java │ │ │ │ ├── config │ │ │ │ └── GatewayConfig.java │ │ │ │ └── gateway │ │ │ │ └── GatewayDiscoveryEnabledStrategy.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-blue-green-version.xml │ │ │ ├── rule-strategy-address.xml │ │ │ ├── rule-strategy-region.xml │ │ │ └── rule-strategy-version.xml │ ├── blue-green-gateway-traffic-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── BlueGreenGatewayTrafficServer.java │ │ │ │ └── config │ │ │ │ └── StarterConfig.java │ │ │ └── resources │ │ │ └── application.properties │ ├── blue-green-good-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── BlueGreenGoodServer.java │ │ │ │ └── controller │ │ │ │ └── GoodController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-blue-green-version.xml │ │ │ ├── rule-strategy-address.xml │ │ │ ├── rule-strategy-region.xml │ │ │ └── rule-strategy-version.xml │ ├── blue-green-logistics-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── BlueGreenLogisticsServer.java │ │ │ │ └── controller │ │ │ │ └── LogisticsController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-blue-green-version.xml │ │ │ ├── rule-strategy-address.xml │ │ │ ├── rule-strategy-region.xml │ │ │ └── rule-strategy-version.xml │ ├── blue-green-order-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── BlueGreenOrderServer.java │ │ │ │ └── controller │ │ │ │ └── OrderController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-blue-green-version.xml │ │ │ ├── rule-strategy-address.xml │ │ │ ├── rule-strategy-region.xml │ │ │ └── rule-strategy-version.xml │ ├── blue-green-trade-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── BlueGreenTradeServer.java │ │ │ │ └── controller │ │ │ │ └── TradeController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-blue-green-version.xml │ │ │ ├── rule-strategy-address.xml │ │ │ ├── rule-strategy-region.xml │ │ │ └── rule-strategy-version.xml │ └── pom.xml ├── discovery-gray-route-alibaba │ ├── analog-gateway-traffic-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── AnalogGatewayTrafficServer.java │ │ │ │ └── config │ │ │ │ └── StarterConfig.java │ │ │ └── resources │ │ │ └── application.properties │ ├── discovery-gray-route-gateway-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── SpringGatewayServer.java │ │ │ │ ├── config │ │ │ │ └── GatewayConfig.java │ │ │ │ └── gateway │ │ │ │ └── GatewayDiscoveryEnabledStrategy.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-region.xml │ │ │ ├── rule-version.xml │ │ │ ├── rule-weight.xml │ │ │ └── rule-white-black.xml │ ├── discovery-gray-route-good-service-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── GoodServcieServer.java │ │ │ │ └── controller │ │ │ │ └── GoodController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-region.xml │ │ │ ├── rule-version.xml │ │ │ ├── rule-weight.xml │ │ │ └── rule-white-black.xml │ ├── discovery-gray-route-trade-service-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── TradeServiceServer.java │ │ │ │ └── controller │ │ │ │ └── TradeController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-region.xml │ │ │ ├── rule-version.xml │ │ │ ├── rule-weight.xml │ │ │ └── rule-white-black.xml │ └── pom.xml ├── dynamic-routing-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── DynamicConfigServer.java │ │ │ └── config │ │ │ └── ReadConfigService.java │ │ └── resources │ │ ├── application.properties │ │ ├── bootstrap.properties │ │ ├── rule-blacklist.xml │ │ ├── rule-count.xml │ │ └── rule-whitelist.xml ├── gray-publish-cloud-alibaba │ ├── gray-publish-gateway-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── GrayPublishAlibabaGatewayServer.java │ │ │ │ ├── config │ │ │ │ └── GatewayConfig.java │ │ │ │ └── gateway │ │ │ │ └── GatewayDiscoveryEnabledStrategy.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ └── rule-gray-publish-version.xml │ ├── gray-publish-gateway-traffic-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── GrayPublishGatewayTrafficServer.java │ │ │ │ ├── config │ │ │ │ ├── GrayConfig.java │ │ │ │ └── StarterConfig.java │ │ │ │ └── controller │ │ │ │ └── TrafficController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ └── bootstrap.yaml │ ├── gray-publish-good-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── GrayPublishGoodServer.java │ │ │ │ ├── config │ │ │ │ ├── GrayConfig.java │ │ │ │ └── StarterConfig.java │ │ │ │ └── controller │ │ │ │ └── GoodController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── bootstrap.yaml │ │ │ └── rule-gray-publish-version.xml │ ├── gray-publish-logistics-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── GrayPublishLogisticsServer.java │ │ │ │ ├── config │ │ │ │ └── GrayConfig.java │ │ │ │ └── controller │ │ │ │ └── LogisticsController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── bootstrap.yaml │ │ │ └── rule-gray-publish-version.xml │ ├── gray-publish-order-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── GrayPublishOrderServer.java │ │ │ │ ├── config │ │ │ │ ├── GrayConfig.java │ │ │ │ └── StarterConfig.java │ │ │ │ └── controller │ │ │ │ └── OrderController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── bootstrap.yaml │ │ │ └── rule-gray-publish-version.xml │ ├── gray-publish-trade-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── GrayPublishTradeServer.java │ │ │ │ ├── config │ │ │ │ ├── GrayConfig.java │ │ │ │ └── StarterConfig.java │ │ │ │ └── controller │ │ │ │ └── TradeController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── bootstrap.yaml │ │ │ └── rule-gray-publish-version.xml │ └── pom.xml ├── pom.xml ├── register-gray-route-alibaba │ ├── pom.xml │ ├── register-gray-route-order-server │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── RegisterGrayServer.java │ │ │ │ └── controller │ │ │ │ └── OrderController.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ ├── bootstrap.properties │ │ │ ├── rule-blacklist.xml │ │ │ ├── rule-count.xml │ │ │ └── rule-whitelist.xml │ └── register-gray-route-trade-server │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── RegisterGrayServer.java │ │ │ └── controller │ │ │ └── controller │ │ │ └── TradeController.java │ │ └── resources │ │ ├── application.properties │ │ ├── bootstrap.properties │ │ ├── rule-blacklist.xml │ │ ├── rule-count.xml │ │ └── rule-whitelist.xml └── strategy-gray-route-alibaba │ ├── pom.xml │ ├── strategy-gateway-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ └── StrategyGatewayServer.java │ └── strategy-trade-server │ ├── pom.xml │ └── src │ └── main │ └── java │ └── com │ └── alibaba │ └── cloud │ └── youxia │ └── StrategyTradeServer.java ├── chapternine ├── order-api │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── OrderApplication.java │ │ │ └── controller │ │ │ └── OrderController.java │ │ └── resources │ │ └── application.yaml ├── pom.xml ├── use-spring-cloud-alibaba-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ └── UseSpringCloudAlibabaGatewayApplication.java │ │ └── resources │ │ ├── application.properties │ │ └── application.yaml ├── use-spring-cloud-alibaba-nacos-config-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── UseSpringCloudAlibabaNacosConfigGatewayApplication.java │ │ │ └── dynamic │ │ │ └── route │ │ │ ├── DynamicRouteService.java │ │ │ ├── GatewayFilterDefinition.java │ │ │ ├── GatewayPredicateDefinition.java │ │ │ ├── GatewayRouteDefinition.java │ │ │ └── NacosRouteDynamicDataSource.java │ │ └── resources │ │ └── bootstrap.yaml ├── use-spring-cloud-alibaba-redis-lua-gateway │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── UseSpringCloudAlibabaRedisLuaGatewayApplication.java │ │ │ ├── config │ │ │ ├── HostAddrKeyResolver.java │ │ │ ├── HttpConfig.java │ │ │ └── RedisConfig.java │ │ │ └── controller │ │ │ └── GatewayController.java │ │ └── resources │ │ ├── application.properties │ │ └── application.yaml └── user-api │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── UserApplication.java │ │ └── controller │ │ └── UserController.java │ └── resources │ └── application.yaml ├── chapterseven ├── pom.xml ├── spring-cloud-alibaba-access-seata-at │ ├── at-account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── AtAccountServiceApplication.java │ │ │ │ ├── bo │ │ │ │ └── AccountBo.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceProxyConfig.java │ │ │ │ └── MyBatisConfig.java │ │ │ │ ├── entity │ │ │ │ └── AccountEntity.java │ │ │ │ ├── manager │ │ │ │ └── AccountManager.java │ │ │ │ ├── mapper │ │ │ │ └── AccountMapper.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── AtAccountServiceImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mapper │ │ │ └── AccountMapper.xml │ ├── at-storage-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── AtStorageServiceApplication.java │ │ │ │ ├── bo │ │ │ │ └── StorageBo.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceProxyConfig.java │ │ │ │ └── MyBatisConfig.java │ │ │ │ ├── manager │ │ │ │ └── StorageManager.java │ │ │ │ ├── mapper │ │ │ │ └── StorageMapper.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── AtStorageServiceImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mapper │ │ │ └── StorageMapper.xml │ ├── at-trade-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── AtTradeServiceApplication.java │ │ │ │ ├── bo │ │ │ │ └── OrderBo.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceProxyConfig.java │ │ │ │ ├── MyBatisConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── controller │ │ │ │ └── TradeController.java │ │ │ │ ├── entity │ │ │ │ └── OrderEntity.java │ │ │ │ ├── manager │ │ │ │ └── OrderManager.java │ │ │ │ └── mapper │ │ │ │ └── OrderMapper.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mapper │ │ │ └── OrderMapper.xml │ └── pom.xml ├── spring-cloud-alibaba-access-seata-saga │ ├── dubbo-saga-consumer-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── DubboSagaConsumerApplication.java │ │ │ │ └── config │ │ │ │ ├── SagaConfig.java │ │ │ │ └── SagaStarter.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ ├── spring │ │ │ └── seata-dubbo-reference.xml │ │ │ └── statelang │ │ │ └── reduce_inventory_and_balance.json │ ├── dubbo-saga-provider-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── DubboServiceSagaApplication.java │ │ │ │ ├── config │ │ │ │ ├── SagaConfig.java │ │ │ │ └── SagaStarter.java │ │ │ │ └── service │ │ │ │ ├── BalanceAction.java │ │ │ │ ├── InventoryAction.java │ │ │ │ └── impl │ │ │ │ ├── BalanceActionImpl.java │ │ │ │ └── InventoryActionImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ ├── sql │ │ │ └── h2_init.sql │ │ │ └── statelang │ │ │ └── saga-spring-cloud-alibaba.json │ └── pom.xml ├── spring-cloud-alibaba-access-seata-tcc │ ├── pom.xml │ ├── tcc-account-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── TccAccountServiceApplication.java │ │ │ │ ├── action │ │ │ │ ├── AccountTccAction.java │ │ │ │ ├── ResultHolder.java │ │ │ │ └── impl │ │ │ │ │ └── AccountTccActionImpl.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceProxyConfig.java │ │ │ │ ├── MyBatisConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── entity │ │ │ │ └── TccAccountPaymentEntity.java │ │ │ │ ├── mapper │ │ │ │ └── AccountMapper.java │ │ │ │ ├── pojo │ │ │ │ └── AccountDO.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── TccAccountServiceImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mapper │ │ │ └── AccountMapper.xml │ ├── tcc-order-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── TccOrderServiceApplication.java │ │ │ │ ├── action │ │ │ │ ├── OrderTccAction.java │ │ │ │ ├── ResultHolder.java │ │ │ │ └── impl │ │ │ │ │ └── OrderTccActionImpl.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceProxyConfig.java │ │ │ │ ├── MyBatisConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ ├── mapper │ │ │ │ └── OrderMapper.java │ │ │ │ ├── pojo │ │ │ │ └── OrderDO.java │ │ │ │ └── service │ │ │ │ ├── OrderService.java │ │ │ │ └── impl │ │ │ │ └── OrderServiceImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mapper │ │ │ └── OrderMapper.xml │ └── tcc-storage-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── TccStorageServiceToApplication.java │ │ │ ├── action │ │ │ ├── ResultHolder.java │ │ │ ├── StorageTccAction.java │ │ │ └── impl │ │ │ │ └── StorageTccActionImpl.java │ │ │ ├── config │ │ │ ├── DataSourceProxyConfig.java │ │ │ └── MyBatisConfig.java │ │ │ ├── mapper │ │ │ └── StorageMapper.java │ │ │ ├── po │ │ │ └── StorageDO.java │ │ │ ├── pojo │ │ │ └── StorageDO.java │ │ │ └── service │ │ │ └── impl │ │ │ └── TccStorageServiceImpl.java │ │ └── resources │ │ ├── bootstrap.yaml │ │ └── mapper │ │ └── StorageMapper.xml ├── spring-cloud-alibaba-access-seata-xa │ ├── pom.xml │ ├── xa-logistics-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── XaLogisticsServiceApplication.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceProxyConfig.java │ │ │ │ ├── MyBatisConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── entity │ │ │ │ └── LogisticsEntity.java │ │ │ │ ├── manager │ │ │ │ └── LogisticsManager.java │ │ │ │ ├── mapper │ │ │ │ └── LogisticsMapper.java │ │ │ │ └── service │ │ │ │ └── impl │ │ │ │ └── XaLogisticsServiceImpl.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mapper │ │ │ └── LogisticsMapper.xml │ ├── xa-order-service │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── XaOrderServiceApplication.java │ │ │ │ ├── bo │ │ │ │ └── OrderBo.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceProxyConfig.java │ │ │ │ ├── MyBatisConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── controller │ │ │ │ └── TradeController.java │ │ │ │ ├── entity │ │ │ │ └── OrderEntity.java │ │ │ │ ├── manager │ │ │ │ └── OrderManager.java │ │ │ │ └── mapper │ │ │ │ └── OrderMapper.java │ │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mapper │ │ │ └── OrderMapper.xml │ └── xa-warehouse-service │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── XaWarehouseServiceApplication.java │ │ │ ├── config │ │ │ ├── DataSourceProxyConfig.java │ │ │ ├── MyBatisConfig.java │ │ │ └── SwaggerConfig.java │ │ │ ├── entity │ │ │ └── WarehouseEntity.java │ │ │ ├── manager │ │ │ └── WarehouseManager.java │ │ │ ├── mapper │ │ │ └── WarehouseMapper.java │ │ │ └── service │ │ │ └── impl │ │ │ └── XaWarehouseServiceImpl.java │ │ └── resources │ │ ├── bootstrap.yaml │ │ └── mapper │ │ └── WarehouseMapper.xml ├── use-spring-boot-access-seata │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── UseSpringBootAccessSeataApplication.java │ │ │ │ ├── bo │ │ │ │ └── OrderBo.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceProxyConfig.java │ │ │ │ ├── MyBatisConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── controller │ │ │ │ └── TradeController.java │ │ │ │ ├── entity │ │ │ │ └── OrderEntity.java │ │ │ │ ├── manager │ │ │ │ └── OrderManager.java │ │ │ │ └── mapper │ │ │ │ └── OrderMapper.java │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── mapper │ │ │ └── OrderMapper.xml │ │ └── test │ │ └── resources │ │ └── bootstrap.yaml └── use-spring-cloud-alibaba-access-seata │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── UseSpringCloudAlibabaSeataApplication.java │ │ ├── bo │ │ └── OrderBo.java │ │ ├── config │ │ ├── DataSourceProxyConfig.java │ │ ├── MyBatisConfig.java │ │ └── SwaggerConfig.java │ │ ├── controller │ │ └── TradeController.java │ │ ├── entity │ │ └── OrderEntity.java │ │ ├── manager │ │ └── OrderManager.java │ │ └── mapper │ │ └── OrderMapper.java │ └── resources │ ├── bootstrap.yaml │ └── mapper │ └── OrderMapper.xml ├── chapterseventeen ├── good-api │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── GoodApiServer.java │ │ │ ├── config │ │ │ └── ApiConfig.java │ │ │ └── controller │ │ │ └── GoodController.java │ │ └── resources │ │ └── bootstrap.yaml ├── good-new-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── GrayNewServer.java │ │ │ ├── config │ │ │ ├── MybatisPlusConfig.java │ │ │ └── MybatisPlusOptLockerConfig.java │ │ │ ├── entity │ │ │ ├── BaseProductInfoEntity.java │ │ │ └── ProductDetailEntity.java │ │ │ ├── mapper │ │ │ ├── BaseProductInfoMapper.java │ │ │ └── ProductDetailMapper.java │ │ │ └── service │ │ │ └── impl │ │ │ ├── NewBaseProductInfoServiceImpl.java │ │ │ └── NewProductDetailServiceImpl.java │ │ └── resources │ │ ├── bootstrap.yaml │ │ └── mapper │ │ ├── BaseProductInfoMapper.xml │ │ └── ProductDetailMapper.xml ├── good-old-server │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── GoodOldServer.java │ │ │ ├── config │ │ │ ├── MybatisPlusConfig.java │ │ │ └── MybatisPlusOptLockerConfig.java │ │ │ ├── entity │ │ │ └── ProductInfoEntity.java │ │ │ ├── executor │ │ │ ├── DataExecutor.java │ │ │ └── ProductorData.java │ │ │ ├── mapper │ │ │ └── ProductInfoMapper.java │ │ │ └── service │ │ │ └── impl │ │ │ └── ProductInfoServiceImpl.java │ │ └── resources │ │ ├── bootstrap.yaml │ │ └── mapper │ │ └── ProductInfoMapper.xml └── pom.xml ├── chaptersix ├── gateway-access-sentinel │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── GatewayAccessSentinelApplication.java │ │ │ ├── config │ │ │ └── MySCGConfiguration.java │ │ │ └── controller │ │ │ └── RulesWebFluxController.java │ │ └── resources │ │ ├── api.json │ │ ├── application.yaml │ │ └── gateway.json ├── netty-spring-cloud-alibaba-push-rule │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── NettySpringCloudAlibabaPushApplication.java │ │ │ ├── config │ │ │ └── FlowRuleConfig.java │ │ │ └── service │ │ │ └── RuleServiceImpl.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yaml ├── pom.xml ├── sentinel-core-access │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SentinelCoreAccessApplication.java │ │ │ ├── config │ │ │ ├── CoreConfig.java │ │ │ ├── ResultWrapper.java │ │ │ └── SentinelSpringMvcBlockHandlerConfig.java │ │ │ └── controller │ │ │ └── WebMvcController.java │ │ └── resources │ │ ├── application.properties │ │ └── sentinel.properties ├── sentinel-spring-cloud-alibaba │ ├── pom.xml │ ├── sentinel-spring-cloud-alibaba-consumer │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── SentinelSpringCloudAlibabaConsumerApplication.java │ │ │ │ └── controller │ │ │ │ └── SentinelController.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ ├── sentinel-spring-cloud-alibaba-provider │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── SentinelSpringCloudAlibabaApplication.java │ │ │ │ └── service │ │ │ │ └── SentinelDubboServiceImpl.java │ │ │ └── resources │ │ │ ├── application.yml │ │ │ └── bootstrap.yaml │ └── sentinel-spring-cloud-alibaba-restfulapi │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ExceptionUtil.java │ │ │ ├── JsonFlowRuleListConverter.java │ │ │ ├── SentinelSpringCloudAlibabaRestfulApplication.java │ │ │ ├── TestController.java │ │ │ └── WebMvcConfiguration.java │ │ └── resources │ │ └── application.properties ├── verify-degrade-rule │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── VerifyDegradeApplication.java │ │ │ ├── config │ │ │ └── DegradeConfig.java │ │ │ ├── controller │ │ │ └── DegradeController.java │ │ │ └── service │ │ │ └── DegradeServiceImpl.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yaml ├── verify-flow-rule-qps-thread │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── VerifyFlowRuleApplication.java │ │ │ ├── controller │ │ │ └── VerifyController.java │ │ │ └── service │ │ │ └── VerifyFlowServiceImpl.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yaml ├── verify-persistence-rule │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── VerifyPersistenceApplication.java │ │ │ ├── controller │ │ │ └── VerifyPersistenceController.java │ │ │ └── service │ │ │ └── PersistenceServiceImpl.java │ │ └── resources │ │ ├── application.yml │ │ └── bootstrap.yaml └── verify-system-rule │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── VerifySystemRuleApplication.java │ │ ├── config │ │ ├── ConfigReader.java │ │ └── NacosConfig.java │ │ ├── controller │ │ └── SystemRuleController.java │ │ └── service │ │ └── SystemRuleServiceImpl.java │ └── resources │ ├── application.yml │ └── bootstrap.yaml ├── chapterten ├── access-skywalking-spring-cloud-alibaba-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SkywalkingConsumerApplication.java │ │ │ ├── controller │ │ │ └── SkywalkingController.java │ │ │ └── service │ │ │ └── ConsumerService.java │ │ └── resources │ │ └── bootstrap.yaml ├── access-skywalking-spring-cloud-alibaba-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SkywalkingProviderApplication.java │ │ │ └── service │ │ │ └── impl │ │ │ └── SkywalkingServiceImpl.java │ │ └── resources │ │ └── bootstrap.yaml ├── agent │ └── config │ │ └── agent.config ├── dubbo-alarm-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── DubboAlarmConsumerApplication.java │ │ │ └── controller │ │ │ └── AlarmController.java │ │ └── resources │ │ └── bootstrap.yaml ├── dubbo-alarm-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── DubboAlarmProviderApplication.java │ │ │ ├── config │ │ │ └── NacosConfig.java │ │ │ ├── manager │ │ │ └── AlarmManager.java │ │ │ └── service │ │ │ └── impl │ │ │ └── DubboAlarmServiceImpl.java │ │ └── resources │ │ └── bootstrap.yaml ├── dubbo-error-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── DubboErrorConsumerApplication.java │ │ │ └── controller │ │ │ └── ErrorController.java │ │ └── resources │ │ └── bootstrap.yaml ├── dubbo-error-provider │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── DubboErrorProviderApplication.java │ │ │ │ └── service │ │ │ │ └── DubboErrorServiceImpl.java │ │ └── resources │ │ │ └── bootstrap.yaml │ │ └── test │ │ └── resources │ │ └── bootstrap.yaml ├── pom.xml ├── skywalking-kafka-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SkywalkingKafkaConsumerApplication.java │ │ │ ├── controller │ │ │ └── SkywalkingKafkaController.java │ │ │ └── service │ │ │ └── ConsumerService.java │ │ └── resources │ │ └── bootstrap.yaml ├── skywalking-kafka-provider │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── SkywalkingKafkaProviderApplication.java │ │ │ └── service │ │ │ └── impl │ │ │ └── SkywalkingKafkaServiceImpl.java │ │ └── resources │ │ └── bootstrap.yaml ├── use-es-skywalking-consumer │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── UseEsSkywalkingConsumerApplication.java │ │ │ └── controller │ │ │ └── ConsumerController.java │ │ └── resources │ │ └── bootstrap.yaml └── use-es-skywalking-provider │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── UseEsSkywalkingProvider.java │ │ ├── config │ │ ├── MybatisPlusConfig.java │ │ └── MybatisPlusOptLockerConfig.java │ │ ├── entity │ │ └── AnchorEntity.java │ │ ├── manager │ │ └── AnchorManager.java │ │ ├── mapper │ │ └── AnchorMapper.java │ │ └── service │ │ └── AnchorServiceImpl.java │ └── resources │ ├── bootstrap.yaml │ └── mapper │ └── anchor.xml ├── chapterthirteen ├── call-distribute-server-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── CallDistributeServerAlibabaServer.java │ │ │ ├── config │ │ │ └── CallConfig.java │ │ │ ├── controller │ │ │ └── CallController.java │ │ │ └── service │ │ │ └── CallService.java │ │ └── resources │ │ └── application.yaml ├── pom.xml ├── use-jedis-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── UseJedisSpringCloudAlibaba.java │ │ │ ├── config │ │ │ ├── JedisConfig.java │ │ │ └── JedisConnectConfig.java │ │ │ ├── pojo │ │ │ └── Order.java │ │ │ └── service │ │ │ └── JedisService.java │ │ └── resources │ │ └── bootstrap.yaml ├── use-lettuce-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── UseLettuceSpringCloudAlibabaServer.java │ │ │ ├── config │ │ │ ├── LettuceConfig.java │ │ │ └── LoadLettuceResource.java │ │ │ └── service │ │ │ └── LettuceService.java │ │ └── resources │ │ └── bootstrap.yaml ├── use-redisson-distribute-lock-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── UseRedissonDistributeLockAlibabaServer.java │ │ │ ├── config │ │ │ ├── MybatisPlusConfig.java │ │ │ ├── RedissonLockConfig.java │ │ │ └── SyncOrAsyncConfig.java │ │ │ ├── entity │ │ │ └── Example2ProductEntity.java │ │ │ ├── mapper │ │ │ └── Example2ProductMapper.java │ │ │ └── service │ │ │ └── impl │ │ │ └── GoodServiceImpl.java │ │ └── resources │ │ ├── application.yaml │ │ ├── mybatis │ │ └── mapper │ │ │ └── Example2ProductMapper.xml │ │ └── redisson.yaml ├── use-redisson-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── UseRedissonSpringCloudAlibabaServer.java │ │ │ ├── config │ │ │ └── RedissonConfig.java │ │ │ ├── pojo │ │ │ └── Good.java │ │ │ └── service │ │ │ └── RedissonService.java │ │ └── resources │ │ ├── application.yaml │ │ └── redisson.yaml └── use-springbootdataredis-spring-cloud-alibaba │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── UseSpringBootDataRedisSpringCloudAlibabaServer.java │ │ ├── config │ │ └── SpringBootDataRedisConfig.java │ │ ├── pojo │ │ └── User.java │ │ └── service │ │ └── SpringDataRedisService.java │ └── resources │ └── bootstrap.yaml ├── chapterthree ├── multi-environment-deployment │ ├── pom.xml │ ├── user-client │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ └── OrderService.java │ ├── user-distribution │ │ ├── pom.xml │ │ ├── productA-development.xml │ │ ├── productA-development │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productA-prod.xml │ │ ├── productA-prod │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productA-test.xml │ │ ├── productA-test │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productB-development.xml │ │ ├── productB-development │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productB-prod.xml │ │ ├── productB-prod │ │ │ ├── env.properties │ │ │ └── start.sh │ │ ├── productB-test.xml │ │ └── productB-test │ │ │ ├── env.properties │ │ │ └── start.sh │ └── user-server │ │ ├── pom.xml │ │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── UserServerApplication.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ └── service │ │ │ │ └── OrderServiceImpl.java │ │ │ └── resources │ │ │ └── bootstrap.yaml │ │ └── target │ │ └── classes │ │ └── bootstrap.yaml ├── multi-tenant-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── Example7Application.java │ │ │ ├── config │ │ │ └── MybatisPlusConfig.java │ │ │ ├── entity │ │ │ └── UserEntity.java │ │ │ ├── mapper │ │ │ └── UserMapper.java │ │ │ └── thread │ │ │ ├── ExecuteThread.java │ │ │ ├── TenantThreadExecutor.java │ │ │ └── UserService.java │ │ └── resources │ │ ├── application.yml │ │ ├── db │ │ ├── data-h2.sql │ │ └── schema-h2.sql │ │ └── mybatis │ │ └── mapper │ │ └── UserMapper.xml ├── multidata-source-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── Example4Application.java │ │ │ ├── config │ │ │ └── SwaggerApiConfig.java │ │ │ ├── controller │ │ │ └── DataSourceController.java │ │ │ ├── entity │ │ │ └── Example2ProductEntity.java │ │ │ ├── mapper │ │ │ └── Example2ProductMapper.java │ │ │ └── service │ │ │ ├── Example4UserService.java │ │ │ └── Example4UserServiceImpl.java │ │ └── resources │ │ ├── bootstrap.yaml │ │ └── mapper │ │ └── Example2ProductMapper.xml ├── optimistic-locking-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── Application.java │ │ │ ├── config │ │ │ ├── MybatisPlusConfig.java │ │ │ └── MybatisPlusOptLockerConfig.java │ │ │ ├── entity │ │ │ └── Example2ProductEntity.java │ │ │ ├── manager │ │ │ ├── OptLockThread.java │ │ │ ├── ProductInit.java │ │ │ └── ProductManager.java │ │ │ └── mapper │ │ │ └── Example2ProductMapper.java │ │ └── resources │ │ ├── application.yaml │ │ └── mapper │ │ └── Example2ProductMapper.xml ├── pom.xml └── replace-table-spring-cloud-alibaba │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── Example5Application.java │ │ ├── OrderQueryInit.java │ │ ├── UserService.java │ │ ├── config │ │ └── MybatisPlusConfig.java │ │ ├── entity │ │ ├── Example2ProductEntity.java │ │ └── Example5OrderEntity.java │ │ └── mapper │ │ ├── Example2ProductMapper.java │ │ └── Example5OrderMapper.java │ └── resources │ ├── bootstrap.yaml │ └── mapper │ ├── Example2ProductMapper.xml │ └── Example5OrderMapper.xml ├── chaptertwelve ├── pom.xml ├── shardingsphere-core-api │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ └── entity │ │ │ ├── Address.java │ │ │ ├── Order.java │ │ │ └── OrderItem.java │ │ └── resources │ │ └── application.properties ├── shardingsphere-jdbc-java-api │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ShardingsphereJdbcJavaApiApplication.java │ │ │ └── config │ │ │ ├── DataSourceConfig.java │ │ │ └── ShareingConfig.java │ │ └── resources │ │ └── application.properties ├── shardingsphere-jdbc-use-spring-boot │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ ├── ShardingsphereSpringBootApplication.java │ │ │ ├── config │ │ │ ├── MybatisPlusConfig.java │ │ │ ├── SnowFlake.java │ │ │ └── SnowFlakeService.java │ │ │ ├── controller │ │ │ └── OrderController.java │ │ │ └── manager │ │ │ └── OrderManager.java │ │ └── resources │ │ ├── application-replica-query.properties │ │ ├── application-sharding-databases-tables.properties │ │ ├── application-sharding-databases.properties │ │ ├── application-sharding-replica-query.properties │ │ ├── application-sharding-tables.properties │ │ └── application.properties ├── shardingsphere-proxy-use-spring-cloud-alibaba │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── cloud │ │ │ │ └── youxia │ │ │ │ ├── ShardingsphereSpringCloudAlibabaApplication.java │ │ │ │ ├── config │ │ │ │ ├── SnowFlake.java │ │ │ │ └── SnowFlakeService.java │ │ │ │ ├── controller │ │ │ │ └── OrderController.java │ │ │ │ └── manager │ │ │ │ └── OrderManager.java │ │ └── resources │ │ │ ├── bootstrap.yaml │ │ │ └── conf │ │ │ ├── config-sharding.yaml │ │ │ └── server.yaml │ │ └── test │ │ └── resources │ │ ├── application-replica-query.properties │ │ ├── application-sharding-databases-tables.properties │ │ ├── application-sharding-databases.properties │ │ ├── application-sharding-replica-query.properties │ │ ├── application-sharding-tables.properties │ │ └── application.properties ├── shardingsphere-spring-boot-mybatis-plus │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ └── mapper │ │ │ ├── AddressMapper.java │ │ │ ├── OrderItemMapper.java │ │ │ └── OrderMapper.java │ │ └── resources │ │ ├── application.properties │ │ └── mapper │ │ ├── AddressMapper.xml │ │ ├── OrderItemMapper.xml │ │ └── OrderMapper.xml ├── shardingsphere-spring-boot-mybatis │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── cloud │ │ │ └── youxia │ │ │ └── mapper │ │ │ ├── AddressMapper.java │ │ │ ├── OrderItemMapper.java │ │ │ ├── OrderMapper.java │ │ │ └── mybatis │ │ │ └── entity │ │ │ ├── Address.java │ │ │ ├── Order.java │ │ │ └── OrderItem.java │ │ └── resources │ │ ├── mapper │ │ ├── AddressMapper.xml │ │ ├── OrderItemMapper.xml │ │ └── OrderMapper.xml │ │ └── mybatis-config.xml └── shardingsphere-spring-boot-test │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ └── ShardingsphereSpringBootApplication.java │ └── resources │ └── application.properties ├── chaptertwo ├── pom.xml └── restful-practice │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── cloud │ │ └── youxia │ │ ├── RestfulApiApplication.java │ │ └── RestfulPracticeController.java │ └── resources │ └── application.yaml ├── dingding.png ├── docs └── README.md ├── dubbo-common-api ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── alibaba │ └── cloud │ └── youxia │ ├── bo │ ├── AnchorBo.java │ ├── FiveteenOrderBo.java │ ├── FiveteenTradeBo.java │ ├── LogisticsServiceBo.java │ ├── NewBaseProductInfoBo.java │ ├── NewProductDetailBo.java │ ├── ProductInfoBo.java │ ├── TccAccountServiceBo.java │ └── WarehouseServiceBo.java │ ├── dto │ ├── FiveteenOrderDTO.java │ ├── FiveteenTradeDTO.java │ ├── LogisticsServiceDTO.java │ ├── NewBaseProductInfoDTO.java │ ├── NewProductDetailDTO.java │ ├── ProductInfoDTO.java │ └── WarehouseServiceDTO.java │ └── service │ ├── AnchorService.java │ ├── AtAccountService.java │ ├── AtOrderService.java │ ├── AtStorageService.java │ ├── AtTradeService.java │ ├── DegradeService.java │ ├── DistributedService.java │ ├── DubboAlarmService.java │ ├── DubboErrorService.java │ ├── PersistenceService.java │ ├── RibbonDiscoveryService.java │ ├── RibbonTestService.java │ ├── RuleService.java │ ├── SagaAccountService.java │ ├── SagaOrderService.java │ ├── SagaStorageService.java │ ├── SentinelDubboService.java │ ├── SkywalkingKafkaService.java │ ├── SkywalkingService.java │ ├── SystemRuleService.java │ ├── TccAccountService.java │ ├── TccStorageService.java │ ├── VerifyFlowService.java │ ├── XaLogisticsService.java │ ├── XaWarehouseService.java │ ├── eighteen │ ├── GoodService.java │ ├── InventoryService.java │ ├── LogisticsService.java │ ├── OrderService.java │ ├── PayService.java │ └── TradeService.java │ ├── fiveteen │ ├── FiveteenOrderService.java │ └── FiveteenTradeService.java │ ├── fourteen │ └── FourTeenGoodService.java │ └── seventeen │ ├── NewBaseProductInfoService.java │ ├── NewProductDetailService.java │ └── ProductInfoService.java ├── help.png ├── install.png ├── jdk.png ├── maven.png ├── mavenVersion.png ├── me.jpg ├── nacosSync.sql ├── nacosconfig ├── config_info.sql ├── config_info_beta.sql ├── nacos-mysql.sql └── tenant_info.sql ├── pom.xml ├── spring_cloud_alibaba_practice.sql └── taobao-sdk-java-auto-1.0.0.jar /.gitignore: -------------------------------------------------------------------------------- 1 | /*.settings 2 | *.dat 3 | /disconf 4 | /apollo 5 | # Compiled class file 6 | /target 7 | *.class 8 | *.classpath 9 | *.project 10 | 11 | # Log file 12 | *.log 13 | /logs 14 | 15 | # BlueJ files 16 | *.ctxt 17 | 18 | # Mobile Tools for Java (J2ME) 19 | .mtj.tmp/ 20 | 21 | # Package Files # 22 | *.jar 23 | *.war 24 | *.ear 25 | *.zip 26 | *.tar.gz 27 | *.rar 28 | 29 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 30 | hs_err_pid* 31 | 32 | # IntelliJ project files 33 | .idea 34 | *.iml 35 | out 36 | gen 37 | *.txt -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /business-common-api/src/main/java/com/alibaba/cloud/youxia/response/ResponseFuture.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2020 melotgroup Corporation Limited. All rights reserved. 3 | * This software is the confidential and proprietary information of GuaHao Company. 4 | * ("Confidential Information"). 5 | * You shall not disclose such Confidential Information and shall use it only 6 | * in accordance with the terms of the license agreement you entered into with http://melotgroup.com/. 7 | */ 8 | package com.alibaba.cloud.youxia.response; 9 | 10 | public class ResponseFuture { 11 | } 12 | -------------------------------------------------------------------------------- /business-common-api/src/main/java/com/alibaba/cloud/youxia/service/GoodService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.dto.GoodDTO; 4 | import com.alibaba.cloud.youxia.request.GoodServiceRequest; 5 | import com.alibaba.cloud.youxia.response.DefaultResult; 6 | import java.util.List; 7 | 8 | public interface GoodService { 9 | DefaultResult updateGoodNum(GoodServiceRequest goodServiceRequest); 10 | } 11 | -------------------------------------------------------------------------------- /business-common-api/src/main/java/com/alibaba/cloud/youxia/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.dto.UserDTO; 4 | import com.alibaba.cloud.youxia.request.UserServiceRequest; 5 | import com.alibaba.cloud.youxia.response.DefaultResult; 6 | 7 | import java.util.List; 8 | 9 | public interface UserService { 10 | DefaultResult> getUserInfo(UserServiceRequest userServiceRequest); 11 | } 12 | -------------------------------------------------------------------------------- /chaptereight/use-spring-boot-access-rocketmq/use-spring-boot-produce/src/main/java/com/alibaba/cloud/youxia/UseSpringBootProduceApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UseSpringBootProduceApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UseSpringBootProduceApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-access-rocketmq/use-spring-cloud-alibaba-consume/src/main/java/com/alibaba/cloud/youxia/ReceiveService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.cloud.stream.annotation.StreamListener; 4 | import org.springframework.stereotype.Service; 5 | 6 | @Service 7 | public class ReceiveService { 8 | @StreamListener("input1") 9 | public void receiveInput1(String receiveMsg) { 10 | System.out.println("input1 receive: " + receiveMsg); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-access-rocketmq/use-spring-cloud-alibaba-consume/src/main/java/com/alibaba/cloud/youxia/config/MySink.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.cloud.stream.annotation.Input; 4 | import org.springframework.messaging.SubscribableChannel; 5 | 6 | public interface MySink { 7 | @Input("input1") 8 | SubscribableChannel input1(); 9 | } 10 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-access-rocketmq/use-spring-cloud-alibaba-produce/src/main/java/com/alibaba/cloud/youxia/SenderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | import com.alibaba.cloud.youxia.source.MySource; 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.messaging.support.MessageBuilder; 5 | import org.springframework.stereotype.Service; 6 | @Service 7 | public class SenderService { 8 | @Autowired 9 | private MySource source; 10 | 11 | public void send(String msg) { 12 | source.output1().send(MessageBuilder.withPayload(msg).build()); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-access-rocketmq/use-spring-cloud-alibaba-produce/src/main/java/com/alibaba/cloud/youxia/source/MySource.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.source; 2 | 3 | import org.springframework.cloud.stream.annotation.Output; 4 | import org.springframework.messaging.MessageChannel; 5 | 6 | public interface MySource { 7 | @Output("output1") 8 | MessageChannel output1(); 9 | } 10 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-pull-consume/pull-message-consume/src/main/java/com/alibaba/cloud/youxia/rocketmq/PullMessageConsumeSink.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.rocketmq; 2 | 3 | import org.springframework.cloud.stream.annotation.Input; 4 | import org.springframework.cloud.stream.binder.PollableMessageSource; 5 | import org.springframework.messaging.SubscribableChannel; 6 | 7 | public interface PullMessageConsumeSink { 8 | @Input("input1") 9 | SubscribableChannel input1(); 10 | @Input("input2") 11 | PollableMessageSource input2(); 12 | } 13 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-pull-consume/pull-message-consume/src/main/java/com/alibaba/cloud/youxia/rocketmq/PushMessageReceiveService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.rocketmq; 2 | 3 | import org.springframework.cloud.stream.annotation.StreamListener; 4 | import org.springframework.stereotype.Service; 5 | 6 | @Service 7 | public class PushMessageReceiveService { 8 | //采用Push模式(发布订阅模式)消费消息 9 | @StreamListener("input1") 10 | public void receiveInput1(String receiveMsg) { 11 | System.out.println("input1 receive: " + receiveMsg); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-pull-consume/pull-message-produce/src/main/java/com/alibaba/cloud/youxia/rocketmq/PullMessageSource.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.rocketmq; 2 | 3 | import org.springframework.cloud.stream.annotation.Output; 4 | import org.springframework.messaging.MessageChannel; 5 | 6 | public interface PullMessageSource { 7 | @Output("output1") 8 | MessageChannel output1(); 9 | @Output("output2") 10 | MessageChannel output2(); 11 | } 12 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-rocketmq-transaction-message/consume-transaction-message/src/main/java/com/alibaba/cloud/youxia/ConsumeTransactionMessageApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ConsumeTransactionMessageApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(ConsumeTransactionMessageApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-rocketmq-transaction-message/consume-transaction-message/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=consume-transaction-message 2 | server.port=28079 -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-rocketmq-transaction-message/produce-transaction-message/src/main/java/com/alibaba/cloud/youxia/ProduceTransationMessageApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | @SpringBootApplication 6 | public class ProduceTransationMessageApplication { 7 | public static void main(String[] args) { 8 | SpringApplication.run(ProduceTransationMessageApplication.class, args); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-rocketmq-transaction-message/produce-transaction-message/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=produce-transaction-message 2 | server.port=28082 -------------------------------------------------------------------------------- /chaptereight/use-spring-cloud-alibaba-sync-async/src/main/java/com/alibaba/cloud/youxia/rocketmq/SyncAsyncMessageSource.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.rocketmq; 2 | 3 | import org.springframework.cloud.stream.annotation.Output; 4 | import org.springframework.messaging.MessageChannel; 5 | 6 | public interface SyncAsyncMessageSource { 7 | @Output("output1") 8 | MessageChannel output1(); 9 | @Output("output2") 10 | MessageChannel output2(); 11 | } 12 | -------------------------------------------------------------------------------- /chaptereighteen/alarm-platform/alarm-client/src/main/java/com/alibaba/cloud/youxia/AlarmService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | public interface AlarmService { 4 | } 5 | -------------------------------------------------------------------------------- /chaptereighteen/alarm-platform/alarm-distribution/productA-development/env.properties: -------------------------------------------------------------------------------- 1 | #productA-development应用个性化参数 2 | JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | APP_MAINCLASS="com.alibaba.cloud.youxia.AlarmApplicationServer" 6 | 7 | # 监控配置 8 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=alarm-server" 9 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/Users/huxian/Downloads/skywalking-env/agent/skywalking-agent.jar -Dskywalking.agent.service_name=alarm-server" 10 | -------------------------------------------------------------------------------- /chaptereighteen/alarm-platform/alarm-distribution/productA-prod/env.properties: -------------------------------------------------------------------------------- 1 | #productA-prod应用个性化参数 2 | JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | APP_MAINCLASS="com.alibaba.cloud.youxia.AlarmApplicationServer" 6 | # 监控配置 7 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=alarm-server" 8 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/Users/huxian/Downloads/skywalking-env/agent/skywalking-agent.jar -Dskywalking.agent.service_name=alarm-server" 9 | -------------------------------------------------------------------------------- /chaptereighteen/alarm-platform/alarm-distribution/productA-test/env.properties: -------------------------------------------------------------------------------- 1 | #productA-test应用个性化参数 2 | JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | APP_MAINCLASS="com.alibaba.cloud.youxia.AlarmApplicationServer" 6 | # 监控配置 7 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=alarm-server" 8 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/Users/huxian/Downloads/skywalking-env/agent/skywalking-agent.jar -Dskywalking.agent.service_name=alarm-server" 9 | -------------------------------------------------------------------------------- /chaptereighteen/alarm-platform/alarm-distribution/productB-development/env.properties: -------------------------------------------------------------------------------- 1 | #productB-development 2 | JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | APP_MAINCLASS="com.alibaba.cloud.youxia.AlarmApplicationServer" 6 | # 监控配置 7 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=alarm-server" 8 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/Users/huxian/Downloads/skywalking-env/agent/skywalking-agent.jar -Dskywalking.agent.service_name=alarm-server" 9 | -------------------------------------------------------------------------------- /chaptereighteen/alarm-platform/alarm-distribution/productB-prod/env.properties: -------------------------------------------------------------------------------- 1 | #productB-prod应用个性化参数 2 | JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | APP_MAINCLASS="com.alibaba.cloud.youxia.AlarmApplicationServer" 6 | # 监控配置 7 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=alarm-server" 8 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/Users/huxian/Downloads/skywalking-env/agent/skywalking-agent.jar -Dskywalking.agent.service_name=alarm-server" 9 | -------------------------------------------------------------------------------- /chaptereighteen/alarm-platform/alarm-distribution/productB-test/env.properties: -------------------------------------------------------------------------------- 1 | #productB-test应用个性化参数 2 | JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | APP_MAINCLASS="com.alibaba.cloud.youxia.AlarmApplicationServer" 6 | # 监控配置 7 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=alarm-server" 8 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/Users/huxian/Downloads/skywalking-env/agent/skywalking-agent.jar -Dskywalking.agent.service_name=alarm-server" 9 | -------------------------------------------------------------------------------- /chaptereighteen/alarm-platform/alarm-server/src/main/java/com/alibaba/cloud/youxia/AlarmApplicationServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class AlarmApplicationServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(AlarmApplicationServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptereighteen/good-server/src/main/java/com/alibaba/cloud/youxia/GoodApplicationServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class GoodApplicationServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GoodApplicationServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptereighteen/inventory-server/src/main/java/com/alibaba/cloud/youxia/InventoryApplicationServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class InventoryApplicationServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(InventoryApplicationServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptereighteen/inventory-server/src/main/java/com/alibaba/cloud/youxia/manager/InventoryManager.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.manager; 2 | 3 | import com.alibaba.cloud.youxia.service.eighteen.LogisticsService; 4 | import org.apache.dubbo.config.annotation.DubboReference; 5 | import org.springframework.stereotype.Service; 6 | 7 | @Service 8 | public class InventoryManager { 9 | @DubboReference(version = "1.0.0",group = "logistics-server",timeout = 3000) 10 | private LogisticsService logisticsService; 11 | 12 | public boolean deliverGoods(String goodId,Long orderId){ 13 | return logisticsService.deliverGoods(goodId,orderId); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /chaptereighteen/logistics-server/src/main/java/com/alibaba/cloud/youxia/rocketmq/OrderSyncMessageSendService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.rocketmq; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.messaging.support.MessageBuilder; 5 | import org.springframework.stereotype.Service; 6 | 7 | @Service 8 | public class OrderSyncMessageSendService { 9 | @Autowired 10 | private SendServiceSource sendServiceSource; 11 | public void send(String msg) { 12 | sendServiceSource.output1().send(MessageBuilder.withPayload(msg).build()); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chaptereighteen/logistics-server/src/main/java/com/alibaba/cloud/youxia/rocketmq/SendServiceSource.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.rocketmq; 2 | 3 | import org.springframework.cloud.stream.annotation.Output; 4 | import org.springframework.messaging.MessageChannel; 5 | 6 | public interface SendServiceSource { 7 | @Output("output1") 8 | MessageChannel output1(); 9 | } 10 | -------------------------------------------------------------------------------- /chaptereighteen/order-server/src/main/java/com/alibaba/cloud/youxia/config/MySink.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.cloud.stream.annotation.Input; 4 | import org.springframework.messaging.SubscribableChannel; 5 | 6 | public interface MySink { 7 | @Input("input1") 8 | SubscribableChannel input1(); 9 | } 10 | -------------------------------------------------------------------------------- /chaptereighteen/order-server/src/main/java/com/alibaba/cloud/youxia/config/ReceiveService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.cloud.stream.annotation.StreamListener; 4 | import org.springframework.stereotype.Service; 5 | 6 | //@Service 7 | //public class ReceiveService { 8 | // @StreamListener("input1") 9 | // public void receiveInput1(String receiveMsg) { 10 | // System.out.println("input1 receive: " + receiveMsg); 11 | // } 12 | //} 13 | -------------------------------------------------------------------------------- /chaptereighteen/order-server/src/main/java/com/alibaba/cloud/youxia/manager/OrderManager.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.manager; 2 | 3 | import com.alibaba.cloud.youxia.service.eighteen.GoodService; 4 | import org.apache.dubbo.config.annotation.DubboReference; 5 | import org.springframework.stereotype.Service; 6 | 7 | @Service 8 | public class OrderManager { 9 | @DubboReference(version = "1.0.0",group = "good-server") 10 | private GoodService goodService; 11 | public boolean deductionInventory(String goodId){ 12 | return goodService.deductionInventory(goodId); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chaptereighteen/pay-server/src/main/java/com/alibaba/cloud/youxia/PayApplicationServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class PayApplicationServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(PayApplicationServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptereighteen/pay-server/src/main/java/com/alibaba/cloud/youxia/manager/PayManager.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.manager; 2 | 3 | import com.alibaba.cloud.youxia.service.eighteen.InventoryService; 4 | import org.apache.dubbo.config.annotation.DubboReference; 5 | import org.springframework.stereotype.Service; 6 | 7 | @Service 8 | public class PayManager { 9 | @DubboReference(version = "1.0.0",group = "inventory-server",timeout = 3000) 10 | private InventoryService inventoryService; 11 | public boolean syncInventory(String goodId,Long orderId){ 12 | return inventoryService.syncInventory(goodId,orderId); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chaptereighteen/trade-server/src/main/java/com/alibaba/cloud/youxia/TradeApplicationServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class TradeApplicationServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(TradeApplicationServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptereighteen/trade-server/src/main/java/com/alibaba/cloud/youxia/manager/TradeManager.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.manager; 2 | 3 | import com.alibaba.cloud.youxia.service.eighteen.OrderService; 4 | import org.apache.dubbo.config.annotation.DubboReference; 5 | import org.springframework.stereotype.Service; 6 | 7 | @Service 8 | public class TradeManager { 9 | @DubboReference(version = "1.0.0",group = "order-server",timeout = 3000) 10 | private OrderService orderService; 11 | public Long createOrder(String goodId){ 12 | return orderService.createOrder(goodId); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chaptereleven/elasticjob-Job-trace-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/SpringCloudTraceAlibabaElasticJobApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | @SpringBootApplication 7 | @EnableDiscoveryClient 8 | public class SpringCloudTraceAlibabaElasticJobApplication { 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringCloudTraceAlibabaElasticJobApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chaptereleven/elasticjob-operate-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/SpringCloudOperateAlibabaElasticJobApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | @SpringBootApplication 7 | @EnableDiscoveryClient 8 | public class SpringCloudOperateAlibabaElasticJobApplication { 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringCloudOperateAlibabaElasticJobApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chaptereleven/elasticjob-shard-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/SpringCloudShardAlibabaElasticJobApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | @SpringBootApplication 7 | @EnableDiscoveryClient 8 | public class SpringCloudShardAlibabaElasticJobApplication { 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringCloudShardAlibabaElasticJobApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chaptereleven/elasticjob-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/SpringCloudAlibabaElasticJobApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | @SpringBootApplication 7 | @EnableDiscoveryClient 8 | public class SpringCloudAlibabaElasticJobApplication { 9 | public static void main(String[] args) { 10 | SpringApplication.run(SpringCloudAlibabaElasticJobApplication.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterfive/beata-spring-cloud-alibaba-config/src/main/java/com/alibaba/cloud/youxia/BeataSpringCloudAlibabaApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class BeataSpringCloudAlibabaApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(BeataSpringCloudAlibabaApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfive/beata-spring-cloud-alibaba-config/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.youxia.config.name=test2 2 | spring.application.name=nacos2.0-grpc-spring-cloud-alibaba-config -------------------------------------------------------------------------------- /chapterfive/configuring-priorities-load-nacos/src/main/java/com.alibaba.cloud.youxia/Application.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | /** 8 | * 实例12:基于“Spring Cloud Alibaba + Nacos”的应用配置管理(公共配置、应用配置和扩展配置) 9 | */ 10 | @EnableDiscoveryClient 11 | @SpringBootApplication 12 | public class Application { 13 | public static void main(String[] args) { 14 | SpringApplication.run(Application.class, args); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /chapterfive/configuring-priorities-load-nacos/src/main/java/com.alibaba.cloud.youxia/service/Config.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | @Configuration 7 | @ConfigurationProperties(prefix = "spring") 8 | public class Config { 9 | 10 | private String name; 11 | 12 | public String getName() { 13 | return name; 14 | } 15 | 16 | public void setName(String name) { 17 | this.name = name; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /chapterfive/configuring-priorities-load-nacos/src/main/java/com.alibaba.cloud.youxia/service/OrderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface OrderService { 4 | public String getOrderInfo(); 5 | } 6 | -------------------------------------------------------------------------------- /chapterfive/configuring-priorities-load-nacos/src/main/java/com.alibaba.cloud.youxia/service/OrderServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | 6 | @DubboService 7 | public class OrderServiceImpl implements OrderService{ 8 | 9 | @Autowired 10 | private Config config; 11 | 12 | @Override 13 | public String getOrderInfo() { 14 | return config.getName(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /chapterfive/nacos2.0-grpc-spring-cloud-alibaba-config/src/main/java/com/alibaba/cloud/youxia/NacosGrpcApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class NacosGrpcApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(NacosGrpcApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfive/nacos2.0-grpc-spring-cloud-alibaba-config/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.youxia.config.name=test2 2 | spring.application.name=nacos2.0-grpc-spring-cloud-alibaba-config -------------------------------------------------------------------------------- /chapterfive/openapi-nacos-config/src/main/java/com/alibaba/cloud/youxia/OpenAPINacosConfigApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class OpenAPINacosConfigApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(OpenAPINacosConfigApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfive/openapi-nacos-config/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: openapi-nacos-config 4 | server: 5 | port: 8954 6 | -------------------------------------------------------------------------------- /chapterfive/soft-jraft-apache-derby-config/src/main/java/com/alibaba/cloud/youxia/SoftJraftApacheDerbyApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class SoftJraftApacheDerbyApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(SoftJraftApacheDerbyApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfive/soft-jraft-apache-derby-config/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.youxia.config.name=test2 2 | spring.application.name=nacos2.0-grpc-spring-cloud-alibaba-config -------------------------------------------------------------------------------- /chapterfive/spring-cloud-alibaba-config/src/main/java/com/alibaba/cloud/youxia/SpringCloudConfigApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringCloudConfigApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(SpringCloudConfigApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfive/spring-cloud-alibaba-config/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.youxia.config.name=test2 2 | spring.application.name=spring-cloud-alibaba-config -------------------------------------------------------------------------------- /chapterfive/use-nacos-client-nacos-config/src/main/java/com/alibaba/cloud/youxia/NacosClientApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class NacosClientApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(NacosClientApplication.class, args); 11 | } 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapterfive/use-nacos-client-nacos-config/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: example13 4 | -------------------------------------------------------------------------------- /chapterfiveteen/elk-common-log-format/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | *.iml 3 | target/ 4 | 0/ 5 | logs/ 6 | .settings/ 7 | .project/ 8 | apollo/ -------------------------------------------------------------------------------- /chapterfiveteen/elk-common-log-format/src/main/java/com/alibaba/cloud/youxia/log/JsonLogFormat.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.log; 2 | import com.alibaba.cloud.youxia.log.util.JsonUtil; 3 | 4 | public abstract class JsonLogFormat extends AbstractLogFormat { 5 | private static final String JSON_FORMAT = "json:"; 6 | protected JsonLogFormat(String title) { 7 | super(title); 8 | } 9 | protected String format(Object obj) { 10 | return JSON_FORMAT + (obj == null ? "{}" : JsonUtil.objectToJSON(obj)); 11 | } 12 | } -------------------------------------------------------------------------------- /chapterfiveteen/elk-common-log-format/src/main/java/com/alibaba/cloud/youxia/log/LogFormat.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.log; 2 | public interface LogFormat { 3 | String log(); 4 | } -------------------------------------------------------------------------------- /chapterfiveteen/elk-common-log-format/src/main/java/com/alibaba/cloud/youxia/log/util/AbstractLogUtil.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.log.util; 2 | import com.alibaba.cloud.youxia.log.LogFormat; 3 | import com.alibaba.cloud.youxia.log.ObjectJsonFormat; 4 | 5 | public abstract class AbstractLogUtil { 6 | public static String formatLog(LogFormat logFormat) { 7 | return (logFormat != null) ? logFormat.log() : ""; 8 | } 9 | public static String formatLog(String title, Object... message) { 10 | return formatLog(ObjectJsonFormat.title(title).obj(message)); 11 | } 12 | 13 | 14 | } -------------------------------------------------------------------------------- /chapterfiveteen/elk-common-log-format/src/main/java/com/alibaba/cloud/youxia/log/util/LogUtil.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.log.util; 2 | public class LogUtil extends AbstractLogUtil { 3 | } -------------------------------------------------------------------------------- /chapterfiveteen/elk-common-logback/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | *.iml 3 | target/ 4 | 0/ 5 | logs/ 6 | .settings/ 7 | .project/ 8 | apollo/ -------------------------------------------------------------------------------- /chapterfiveteen/elk-common-logback/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter: -------------------------------------------------------------------------------- 1 | dubboLog=com.alibaba.cloud.youxia.logback.appender.dubbo.DubboLogFilter -------------------------------------------------------------------------------- /chapterfiveteen/elk-front-api-server/src/main/java/com/alibaba/cloud/youxia/ElkFrontApiServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ElkFrontApiServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(ElkFrontApiServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfiveteen/elk-order-dubbo-server/src/main/java/com/alibaba/cloud/youxia/ElkOrderDubboServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ElkOrderDubboServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(ElkOrderDubboServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfiveteen/elk-trade-dubbo-server/src/main/java/com/alibaba/cloud/youxia/ElkTradeDubboServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ElkTradeDubboServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(ElkTradeDubboServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/idempotent-design-spring-cloud-alibaba/distributed-uuid-server/src/main/java/com/alibaba/cloud/youxia/DistributedServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class DistributedServerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(DistributedServerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/idempotent-design-spring-cloud-alibaba/idempotent-design-user-api/src/main/java/com/alibaba/cloud/youxia/response/ResponseFuture.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2001-2020 melotgroup Corporation Limited. All rights reserved. 3 | * This software is the confidential and proprietary information of GuaHao Company. 4 | * ("Confidential Information"). 5 | * You shall not disclose such Confidential Information and shall use it only 6 | * in accordance with the terms of the license agreement you entered into with http://melotgroup.com/. 7 | */ 8 | package com.alibaba.cloud.youxia.response; 9 | 10 | public class ResponseFuture { 11 | } 12 | -------------------------------------------------------------------------------- /chapterfour/idempotent-design-spring-cloud-alibaba/idempotent-design-user-api/src/main/java/com/alibaba/cloud/youxia/service/GoodService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.dto.GoodDTO; 4 | import com.alibaba.cloud.youxia.request.GoodServiceRequest; 5 | import com.alibaba.cloud.youxia.response.DefaultResult; 6 | import java.util.List; 7 | 8 | public interface GoodService { 9 | DefaultResult updateGoodNum(GoodServiceRequest goodServiceRequest); 10 | } 11 | -------------------------------------------------------------------------------- /chapterfour/idempotent-design-spring-cloud-alibaba/idempotent-design-user-api/src/main/java/com/alibaba/cloud/youxia/service/UserService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.dto.UserDTO; 4 | import com.alibaba.cloud.youxia.request.UserServiceRequest; 5 | import com.alibaba.cloud.youxia.response.DefaultResult; 6 | 7 | import java.util.List; 8 | 9 | public interface UserService { 10 | DefaultResult> getUserInfo(UserServiceRequest userServiceRequest); 11 | } 12 | -------------------------------------------------------------------------------- /chapterfour/idempotent-design-spring-cloud-alibaba/idempotent-design-user-client/src/main/java/com/alibaba/cloud/youxia/UserClientApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UserClientApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UserClientApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/idempotent-design-spring-cloud-alibaba/idempotent-design-user-server/src/main/java/com/alibaba/cloud/youxia/mapper/Example2ProductMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.bo.Example2ProductBo; 4 | import com.alibaba.cloud.youxia.entity.Example2ProductEntity; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | import java.util.List; 7 | 8 | public interface Example2ProductMapper extends BaseMapper { 9 | Integer updateGoodNum(Example2ProductBo example2ProductBo); 10 | List queryGoodInfoByGoodId(Example2ProductBo example2ProductBo); 11 | } 12 | -------------------------------------------------------------------------------- /chapterfour/integration-dubbo-alibaba-metadata/src/main/java/com/alibaba/cloud/youxia/DubboMetadataApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class DubboMetadataApplication { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(DubboMetadataApplication.class); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapterfour/integration-dubbo-alibaba-metadata/src/main/java/com/alibaba/cloud/youxia/service/OrderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface OrderService { 4 | String getOrderName(); 5 | } 6 | -------------------------------------------------------------------------------- /chapterfour/integration-dubbo-alibaba-metadata/src/main/java/com/alibaba/cloud/youxia/service/OrderServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | 5 | @DubboService(group = "integration-dubbo-alibaba-metadata",version = "1.0.0") 6 | public class OrderServiceImpl implements OrderService { 7 | 8 | @Override 9 | public String getOrderName() { 10 | return "order"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterfour/nacos-client-spring-nacos-naming/src/main/java/com/alibaba/cloud/youxia/consumer/OrderServiceConsumer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.consumer; 2 | 3 | import com.alibaba.cloud.youxia.service.OrderServiceProvider; 4 | import org.apache.dubbo.config.annotation.DubboReference; 5 | import org.springframework.stereotype.Component; 6 | 7 | @Component("orderServiceConsumer") 8 | public class OrderServiceConsumer { 9 | @DubboReference(group = "example8", version = "1.0.0") 10 | private OrderServiceProvider orderServiceProvider; 11 | 12 | public String getOrderName() { 13 | return orderServiceProvider.getOrderName(); 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /chapterfour/nacos-client-spring-nacos-naming/src/main/java/com/alibaba/cloud/youxia/service/OrderServiceProvider.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface OrderServiceProvider { 4 | public String getOrderName(); 5 | } 6 | -------------------------------------------------------------------------------- /chapterfour/nacos-client-spring-nacos-naming/src/main/java/com/alibaba/cloud/youxia/service/OrderServiceProviderImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | 5 | @DubboService(group = "example8",version = "1.0.0") 6 | public class OrderServiceProviderImpl implements OrderServiceProvider { 7 | @Override 8 | public String getOrderName() { 9 | return "orderName"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfour/nacos-client-spring-nacos-naming/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=info, stdout 2 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 3 | log4j.appender.stdout.Target=System.out 4 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5 | log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy hh:mm:ss:sss z}] %t %5p %c{2}: %m%n -------------------------------------------------------------------------------- /chapterfour/nacos-client-spring-nacos-naming/src/main/resources/spring/dubbo-consumer.properties: -------------------------------------------------------------------------------- 1 | dubbo.application.name=nacos-registry-demo-consumer 2 | dubbo.registry.address=nacos://127.0.0.1:8848 3 | dubbo.consumer.timeout=3000 4 | dubbo.protocol.name=dubbo 5 | dubbo.protocol.port=20880 -------------------------------------------------------------------------------- /chapterfour/nacos-client-spring-nacos-naming/src/main/resources/spring/dubbo-provider.properties: -------------------------------------------------------------------------------- 1 | dubbo.application.name=nacos-registry-demo-provider 2 | dubbo.registry.address=nacos://127.0.0.1:8848 3 | dubbo.protocol.name=dubbo 4 | dubbo.protocol.port=20880 -------------------------------------------------------------------------------- /chapterfour/nacos-client-spring-nacos-naming/src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Hello World!

4 | 5 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-consumer/src/main/java/com/alibaba/cloud/youxia/service/EurekaService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.springframework.stereotype.Service; 4 | import org.springframework.web.client.RestTemplate; 5 | 6 | import javax.annotation.Resource; 7 | 8 | @Service 9 | public class EurekaService { 10 | 11 | @Resource 12 | RestTemplate restTemplate; 13 | 14 | public String hiService() { 15 | return restTemplate.getForObject("http://EURKA-PROVIDER/data/getdata",String.class); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-consumer/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8745 3 | eureka: 4 | client: 5 | service-url: 6 | defaultZone: http://127.0.0.1:8761/eureka/ 7 | spring: 8 | application: 9 | name: eureka-consumer -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-consumer/target/classes/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8745 3 | eureka: 4 | client: 5 | service-url: 6 | defaultZone: http://127.0.0.1:8761/eureka/ 7 | spring: 8 | application: 9 | name: eureka-consumer -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-consumer/target/eureka-consumer-1.0.0.release.jar.original: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/chapterfour/nacos-sync/eureka-consumer/target/eureka-consumer-1.0.0.release.jar.original -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-consumer/target/maven-archiver/pom.properties: -------------------------------------------------------------------------------- 1 | #Created by Apache Maven 3.5.4 2 | version=1.0.0.release 3 | groupId=com.alibaba.youxia 4 | artifactId=eureka-consumer 5 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/alibaba/cloud/youxia/EurekaConsumerApplication.class 2 | com/alibaba/cloud/youxia/controller/EurekaController.class 3 | com/alibaba/cloud/youxia/service/EurekaService.class 4 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst: -------------------------------------------------------------------------------- 1 | /Users/huxian/Downloads/项目管理/spring-cloud-alibaba-practice-master/chapterfour/nacos-sync/eureka-consumer/src/main/java/com/alibaba/cloud/youxia/controller/EurekaController.java 2 | /Users/huxian/Downloads/项目管理/spring-cloud-alibaba-practice-master/chapterfour/nacos-sync/eureka-consumer/src/main/java/com/alibaba/cloud/youxia/EurekaConsumerApplication.java 3 | /Users/huxian/Downloads/项目管理/spring-cloud-alibaba-practice-master/chapterfour/nacos-sync/eureka-consumer/src/main/java/com/alibaba/cloud/youxia/service/EurekaService.java 4 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-provider/src/main/java/com/alibaba/cloud/youxia/EurekaProviderApplicatipn.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaClient 9 | public class EurekaProviderApplicatipn { 10 | public static void main(String[] args) { 11 | SpringApplication.run(EurekaProviderApplicatipn.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-provider/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8768 3 | eureka: 4 | client: 5 | service-url: 6 | defaultZone: http://127.0.0.1:8761/eureka/ 7 | spring: 8 | application: 9 | name: eurka-provider -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-provider/target/classes/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8768 3 | eureka: 4 | client: 5 | service-url: 6 | defaultZone: http://127.0.0.1:8761/eureka/ 7 | spring: 8 | application: 9 | name: eurka-provider -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-provider/target/eureka-provider-1.0.0.release.jar.original: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/chapterfour/nacos-sync/eureka-provider/target/eureka-provider-1.0.0.release.jar.original -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-provider/target/maven-archiver/pom.properties: -------------------------------------------------------------------------------- 1 | #Created by Apache Maven 3.5.4 2 | version=1.0.0.release 3 | groupId=com.alibaba.youxia 4 | artifactId=eureka-provider 5 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-provider/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/chapterfour/nacos-sync/eureka-provider/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-provider/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst: -------------------------------------------------------------------------------- 1 | /Users/huxian/Downloads/项目管理/spring-cloud-alibaba-practice-master/chapterfour/nacos-sync/eureka-provider/src/main/java/com/alibaba/cloud/youxia/EurekaProviderApplicatipn.java 2 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-provider/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/chapterfour/nacos-sync/eureka-provider/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-server/src/main/java/com/alibaba/cloud/youxia/EurekaServerApplicatipn.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6 | 7 | @SpringBootApplication 8 | @EnableEurekaServer 9 | public class EurekaServerApplicatipn { 10 | public static void main(String[] args) { 11 | SpringApplication.run(EurekaServerApplicatipn.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-server/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: 127.0.0.1 6 | client: 7 | register-with-eureka: false 8 | fetch-registry: false 9 | service-url: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 11 | spring: 12 | application: 13 | name: eurka-server -------------------------------------------------------------------------------- /chapterfour/nacos-sync/eureka-server/target/classes/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | eureka: 4 | instance: 5 | hostname: 127.0.0.1 6 | client: 7 | register-with-eureka: false 8 | fetch-registry: false 9 | service-url: 10 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 11 | spring: 12 | application: 13 | name: eurka-server -------------------------------------------------------------------------------- /chapterfour/nacos-sync/nacos-consumer/src/main/java/com/alibaba/cloud/youxia/NacosConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class NacosConsumerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(NacosConsumerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/nacos-consumer/src/main/java/com/alibaba/cloud/youxia/config/NacosGlobalClientConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.cloud.netflix.ribbon.RibbonClient; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | @Configuration 7 | @RibbonClient(name ="EURKA-PROVIDER",configuration =NacosRibbonRuleConfig.class) 8 | public class NacosGlobalClientConfig { 9 | } 10 | -------------------------------------------------------------------------------- /chapterfour/nacos-sync/nacos-consumer/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: nacos-consumer 4 | main: 5 | allow-bean-definition-overriding: true 6 | cloud: 7 | nacos: 8 | discovery: 9 | server-addr: 127.0.0.1:8848 10 | group: DEFAULT_GROUP 11 | server: 12 | port: 7889 13 | EURKA-PROVIDER: 14 | ribbon: 15 | NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule -------------------------------------------------------------------------------- /chapterfour/persistence-discovery-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/PersistenceDiscoveryApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class PersistenceDiscoveryApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(PersistenceDiscoveryApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/persistence-discovery-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/service/PersistenceServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | 5 | @DubboService(group = "persistence-discovery-spring-cloud-alibaba",version = "1.0.0") 6 | public class PersistenceServiceImpl implements PersistenceService { 7 | @Override 8 | public String persistenceTest() { 9 | return "persistence success!"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfour/persistence-discovery-spring-cloud-alibaba/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | dubbo: 2 | scan: 3 | base-packages: com.alibaba.cloud.youxia 4 | protocol: 5 | name: dubbo 6 | port: 26767 7 | registry: 8 | address: nacos://127.0.0.1:8848 9 | spring: 10 | application: 11 | name: persistence-discovery-spring-cloud-alibaba 12 | main: 13 | allow-bean-definition-overriding: true 14 | cloud: 15 | nacos: 16 | discovery: 17 | server-addr: 127.0.0.1:8848 18 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 19 | group: persistence-discovery-spring-cloud-alibaba 20 | ephemeral: false 21 | server: 22 | port: 7890 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /chapterfour/ribbon-discovery-spring-cloud-alibaba-consumer/src/main/java/com/alibaba/cloud/youxia/RibbonDiscoveryConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class RibbonDiscoveryConsumerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(RibbonDiscoveryConsumerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/ribbon-discovery-spring-cloud-alibaba-consumer/src/main/java/com/alibaba/cloud/youxia/config/NacosGlobalClientConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.cloud.netflix.ribbon.RibbonClient; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | @Configuration 7 | @RibbonClient(name ="ribbon-discovery-spring-cloud-alibaba-provider",configuration =NacosRibbonRuleConfig.class) 8 | public class NacosGlobalClientConfig { 9 | } 10 | -------------------------------------------------------------------------------- /chapterfour/ribbon-discovery-spring-cloud-alibaba-provider/src/main/java/com/alibaba/cloud/youxia/RibbonDiscoveryProviderApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class RibbonDiscoveryProviderApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(RibbonDiscoveryProviderApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/ribbon-discovery-spring-cloud-alibaba-provider/src/main/java/com/alibaba/cloud/youxia/service/impl/RibbonTestServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.impl; 2 | 3 | import com.alibaba.cloud.youxia.service.RibbonTestService; 4 | import org.apache.dubbo.config.annotation.DubboService; 5 | 6 | @DubboService 7 | public class RibbonTestServiceImpl implements RibbonTestService { 8 | @Override 9 | public String test() { 10 | return "test"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterfour/ribbon-discovery-spring-cloud-alibaba-provider/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | dubbo: 2 | scan: 3 | base-packages: com.alibaba.cloud.youxia 4 | protocol: 5 | name: dubbo 6 | port: 26756 7 | registry: 8 | address: nacos://127.0.0.1:8848 9 | spring: 10 | application: 11 | name: ribbon-discovery-spring-cloud-alibaba-provider 12 | main: 13 | allow-bean-definition-overriding: true 14 | cloud: 15 | nacos: 16 | discovery: 17 | server-addr: 127.0.0.1:8848 18 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 19 | group: ribbon-discovery-spring-cloud-alibaba-provider 20 | server: 21 | port: 7867 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /chapterfour/ribbon-discovery-spring-cloud-alibaba-provider/target/classes/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | dubbo: 2 | scan: 3 | base-packages: com.alibaba.cloud.youxia 4 | protocol: 5 | name: dubbo 6 | port: 26756 7 | registry: 8 | address: nacos://127.0.0.1:8848 9 | spring: 10 | application: 11 | name: ribbon-discovery-spring-cloud-alibaba-provider 12 | main: 13 | allow-bean-definition-overriding: true 14 | cloud: 15 | nacos: 16 | discovery: 17 | server-addr: 127.0.0.1:8848 18 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 19 | group: ribbon-discovery-spring-cloud-alibaba-provider 20 | server: 21 | port: 7867 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /chapterfour/ribbon-discovery-spring-cloud-alibaba-provider/target/maven-archiver/pom.properties: -------------------------------------------------------------------------------- 1 | #Generated by Maven 2 | #Sat May 28 19:57:22 CST 2022 3 | version=1.0.0.release 4 | groupId=com.alibaba.youxia 5 | artifactId=ribbon-discovery-spring-cloud-alibaba-provider 6 | -------------------------------------------------------------------------------- /chapterfour/ribbon-discovery-spring-cloud-alibaba-provider/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst: -------------------------------------------------------------------------------- 1 | com/alibaba/cloud/youxia/controller/ProviderController.class 2 | com/alibaba/cloud/youxia/RibbonDiscoveryProviderApplication.class 3 | com/alibaba/cloud/youxia/service/impl/RibbonTestServiceImpl.class 4 | com/alibaba/cloud/youxia/service/impl/RibbonDiscoveryServiceImpl.class 5 | -------------------------------------------------------------------------------- /chapterfour/spring-cloud-alibaba-discovery-problem/spring-cloud-alibaba-discovery-problem-api/src/main/java/com/alibaba/cloud/youxia/RibbonDiscoveryConsumerDemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class RibbonDiscoveryConsumerDemoApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(RibbonDiscoveryConsumerDemoApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/spring-cloud-alibaba-discovery-problem/spring-cloud-alibaba-discovery-problem-consumer/src/main/java/com/alibaba/cloud/youxia/RibbonDiscoveryConsumerDemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class RibbonDiscoveryConsumerDemoApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(RibbonDiscoveryConsumerDemoApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/spring-cloud-alibaba-discovery-problem/spring-cloud-alibaba-discovery-problem-consumer/src/main/java/com/alibaba/cloud/youxia/service/ProblemService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboReference; 4 | import org.springframework.stereotype.Service; 5 | 6 | @Service 7 | public class ProblemService { 8 | @DubboReference(version = "1.0.0",group = "spring-cloud-alibaba-discovery-problem-provider",timeout = 8000) 9 | private RibbonDiscoveryService ribbonDiscoveryService; 10 | 11 | public String getConfig(){ 12 | return ribbonDiscoveryService.getRibbonConfig(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chapterfour/spring-cloud-alibaba-discovery-problem/spring-cloud-alibaba-discovery-problem-provider/src/main/java/com/alibaba/cloud/youxia/ProblemDiscoveryProviderDemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class ProblemDiscoveryProviderDemoApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(ProblemDiscoveryProviderDemoApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfour/spring-cloud-alibaba-discovery-problem/spring-cloud-alibaba-discovery-problem-provider/src/main/java/com/alibaba/cloud/youxia/service/impl/RibbonTestServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.impl; 2 | 3 | import com.alibaba.cloud.youxia.service.RibbonTestService; 4 | import org.apache.dubbo.config.annotation.DubboService; 5 | 6 | @DubboService 7 | public class RibbonTestServiceImpl implements RibbonTestService { 8 | @Override 9 | public String test() { 10 | return "test"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterfour/use-nacos-spring-boot/src/main/java/com/alibaba/cloud/youxia/controller/PayController.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.controller; 2 | 3 | import com.alibaba.cloud.youxia.service.PayService; 4 | import org.springframework.web.bind.annotation.GetMapping; 5 | import org.springframework.web.bind.annotation.RestController; 6 | import javax.annotation.Resource; 7 | 8 | @RestController(value = "/pay") 9 | public class PayController { 10 | 11 | @Resource 12 | private PayService payService; 13 | 14 | @GetMapping(value = "/toPay") 15 | public String pay(){ 16 | payService.pay(); 17 | return "success!"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /chapterfour/use-nacos-spring-boot/src/main/java/com/alibaba/cloud/youxia/service/PayService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface PayService { 4 | String pay(); 5 | } 6 | -------------------------------------------------------------------------------- /chapterfour/use-nacos-spring-boot/src/main/java/com/alibaba/cloud/youxia/service/impl/PayServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.impl; 2 | 3 | import com.alibaba.cloud.youxia.service.PayService; 4 | import org.apache.dubbo.config.annotation.DubboService; 5 | 6 | @DubboService(group = "use-nacos-spring-boot",version = "1.0.0") 7 | public class PayServiceImpl implements PayService { 8 | @Override 9 | public String pay() { 10 | return "payResult"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterfour/use-spring-cloud-alibaba-discovery/src/main/java/com/alibaba/cloud/youxia/UseSpringCloudAlibabaDiscoveryServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient(autoRegister = true) 8 | @SpringBootApplication 9 | public class UseSpringCloudAlibabaDiscoveryServer { 10 | 11 | public static void main(String[] args) { 12 | SpringApplication.run(UseSpringCloudAlibabaDiscoveryServer.class, args); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /chapterfour/use-spring-cloud-alibaba-discovery/src/main/java/com/alibaba/cloud/youxia/service/GoodService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface GoodService { 4 | String getGoodName(); 5 | } 6 | -------------------------------------------------------------------------------- /chapterfour/use-spring-cloud-alibaba-discovery/src/main/java/com/alibaba/cloud/youxia/service/GoodServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | 5 | @DubboService(group = "example11",version = "1.0.0") 6 | public class GoodServiceImpl implements GoodService{ 7 | @Override 8 | public String getGoodName() { 9 | return "goodName"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfour/use-spring-cloud-alibaba-discovery/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | dubbo: 2 | scan: 3 | base-packages: com.alibaba.cloud.youxia 4 | protocol: 5 | name: dubbo 6 | port: -1 7 | spring: 8 | application: 9 | name: use-spring-cloud-alibaba-discovery 10 | main: 11 | allow-bean-definition-overriding: true 12 | cloud: 13 | nacos: 14 | discovery: 15 | server-addr: 127.0.0.1:8848 16 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 17 | group: use-spring-cloud-alibaba-discovery 18 | server: 19 | port: 8089 20 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-gateway-server/src/main/java/com/alibaba/cloud/youxia/BlueGreenAlibabaGatewayServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class BlueGreenAlibabaGatewayServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(BlueGreenAlibabaGatewayServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-gateway-server/src/main/java/com/alibaba/cloud/youxia/config/GatewayConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import com.alibaba.cloud.youxia.gateway.GatewayDiscoveryEnabledStrategy; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | public class GatewayConfig { 9 | @Bean 10 | public GatewayDiscoveryEnabledStrategy gatewayDiscoveryEnabledStrategy() { 11 | return new GatewayDiscoveryEnabledStrategy(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-gateway-server/src/main/resources/rule-strategy-address.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | {"blue-green-gateway-server":"127.0.0.1:28920", "blue-green-trade-server":"127.0.0.1:28902", "blue-green-order-server":"127.0.0.1:28902", 5 | "blue-green-good-server":"127.0.0.1:28902","blue-green-logistics-server":"127.0.0.1:28902"} 6 |
7 |
-------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-gateway-server/src/main/resources/rule-strategy-region.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"dev", "blue-green-trade-server":"dev", "blue-green-order-server":"dev", 6 | "blue-green-good-server":"dev","blue-green-logistics-server":"dev"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-gateway-server/src/main/resources/rule-strategy-version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"1.0", "blue-green-trade-server":"1.0", "blue-green-order-server":"1.0", 6 | "blue-green-good-server":"1.0","blue-green-logistics-server":"1.0"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-gateway-traffic-server/src/main/java/com/alibaba/cloud/youxia/BlueGreenGatewayTrafficServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class BlueGreenGatewayTrafficServer { 8 | public static void main(String[] args) { 9 | SpringApplication.run(BlueGreenGatewayTrafficServer.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-gateway-traffic-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=blue-green-gateway-traffic-server 2 | server.port=2345 3 | 4 | 5 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-good-server/src/main/java/com/alibaba/cloud/youxia/BlueGreenGoodServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class BlueGreenGoodServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(BlueGreenGoodServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-good-server/src/main/resources/rule-strategy-address.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | {"blue-green-gateway-server":"127.0.0.1:28920", "blue-green-trade-server":"127.0.0.1:28902", "blue-green-order-server":"127.0.0.1:28902", 5 | "blue-green-good-server":"127.0.0.1:28902","blue-green-logistics-server":"127.0.0.1:28902"} 6 |
7 |
-------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-good-server/src/main/resources/rule-strategy-region.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"dev", "blue-green-trade-server":"dev", "blue-green-order-server":"dev", 6 | "blue-green-good-server":"dev","blue-green-logistics-server":"dev"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-good-server/src/main/resources/rule-strategy-version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"1.0", "blue-green-trade-server":"1.0", "blue-green-order-server":"1.0", 6 | "blue-green-good-server":"1.0","blue-green-logistics-server":"1.0"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-logistics-server/src/main/java/com/alibaba/cloud/youxia/BlueGreenLogisticsServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class BlueGreenLogisticsServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(BlueGreenLogisticsServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-logistics-server/src/main/resources/rule-strategy-address.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | {"blue-green-gateway-server":"127.0.0.1:28920", "blue-green-trade-server":"127.0.0.1:28902", "blue-green-order-server":"127.0.0.1:28902", 5 | "blue-green-good-server":"127.0.0.1:28902","blue-green-logistics-server":"127.0.0.1:28903"} 6 |
7 |
-------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-logistics-server/src/main/resources/rule-strategy-region.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"dev", "blue-green-trade-server":"dev", "blue-green-order-server":"dev", 6 | "blue-green-good-server":"dev","blue-green-logistics-server":"dev"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-logistics-server/src/main/resources/rule-strategy-version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"1.0", "blue-green-trade-server":"1.0", "blue-green-order-server":"1.0", 6 | "blue-green-good-server":"1.0","blue-green-logistics-server":"1.0"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-order-server/src/main/java/com/alibaba/cloud/youxia/BlueGreenOrderServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class BlueGreenOrderServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(BlueGreenOrderServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-order-server/src/main/resources/rule-strategy-address.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | {"blue-green-gateway-server":"127.0.0.1:28920", "blue-green-trade-server":"127.0.0.1:28902", "blue-green-order-server":"127.0.0.1:28901", 5 | "blue-green-good-server":"127.0.0.1:28902","blue-green-logistics-server":"127.0.0.1:28902"} 6 |
7 |
-------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-order-server/src/main/resources/rule-strategy-region.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"dev", "blue-green-trade-server":"dev", "blue-green-order-server":"dev", 6 | "blue-green-good-server":"dev","blue-green-logistics-server":"dev"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-order-server/src/main/resources/rule-strategy-version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"1.0", "blue-green-trade-server":"1.0", "blue-green-order-server":"1.0", 6 | "blue-green-good-server":"1.0","blue-green-logistics-server":"1.0"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-trade-server/src/main/java/com/alibaba/cloud/youxia/BlueGreenTradeServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class BlueGreenTradeServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(BlueGreenTradeServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-trade-server/src/main/resources/rule-strategy-address.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | {"blue-green-gateway-server":"127.0.0.1:28920", "blue-green-trade-server":"127.0.0.1:28900", "blue-green-order-server":"127.0.0.1:28902", 5 | "blue-green-good-server":"127.0.0.1:28902","blue-green-logistics-server":"127.0.0.1:28902"} 6 |
7 |
-------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-trade-server/src/main/resources/rule-strategy-region.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"dev", "blue-green-trade-server":"dev", "blue-green-order-server":"dev", 6 | "blue-green-good-server":"dev","blue-green-logistics-server":"dev"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/blue-green-publish-cloud-alibaba/blue-green-trade-server/src/main/resources/rule-strategy-version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {"blue-green-gateway-server":"1.0", "blue-green-trade-server":"1.0", "blue-green-order-server":"1.0", 6 | "blue-green-good-server":"1.0","blue-green-logistics-server":"1.0"} 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/analog-gateway-traffic-server/src/main/java/com/alibaba/cloud/youxia/AnalogGatewayTrafficServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class AnalogGatewayTrafficServer { 8 | public static void main(String[] args) { 9 | SpringApplication.run(AnalogGatewayTrafficServer.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/analog-gateway-traffic-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=analog-gateway-traffic-server 2 | server.port=2345 3 | 4 | 5 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-gateway-server/src/main/java/com/alibaba/cloud/youxia/SpringGatewayServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class SpringGatewayServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(SpringGatewayServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-gateway-server/src/main/java/com/alibaba/cloud/youxia/config/GatewayConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import com.alibaba.cloud.youxia.gateway.GatewayDiscoveryEnabledStrategy; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | public class GatewayConfig { 9 | @Bean 10 | public GatewayDiscoveryEnabledStrategy gatewayDiscoveryEnabledStrategy() { 11 | return new GatewayDiscoveryEnabledStrategy(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-gateway-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #配置Nacos注册中心 2 | spring.application.name=discovery-gray-route-gateway-server 3 | server.port=28988 4 | spring.cloud.nacos.discovery.namespace=c7ba173f-29e5-4c58-ae78-b102be11c4f9 5 | spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 6 | spring.cloud.nacos.discovery.group=discovery-service-group 7 | spring.cloud.nacos.discovery.metadata.group=discovery-service-group 8 | spring.cloud.nacos.discovery.metadata.version=1.0 9 | #配置Nacos的元数据 10 | #设置当前应用的版本号(作用域范围为应用下所有的服务接口) 11 | spring.cloud.nacos.discovery.metadata.region=dev 12 | 13 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-gateway-server/src/main/resources/rule-white-black.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-good-service-server/src/main/java/com/alibaba/cloud/youxia/GoodServcieServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class GoodServcieServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GoodServcieServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-good-service-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #配置Nacos注册中心 2 | spring.application.name=discovery-gray-route-good-service-server 3 | server.port=6778 4 | spring.cloud.nacos.discovery.namespace=c7ba173f-29e5-4c58-ae78-b102be11c4f9 5 | spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 6 | spring.cloud.nacos.discovery.group=discovery-service-group 7 | spring.cloud.nacos.discovery.metadata.group=discovery-service-group 8 | spring.cloud.nacos.discovery.metadata.version=1.0 9 | #配置Nacos的元数据 10 | spring.cloud.nacos.discovery.metadata.region=dev -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-good-service-server/src/main/resources/rule-white-black.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-trade-service-server/src/main/java/com/alibaba/cloud/youxia/TradeServiceServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class TradeServiceServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(TradeServiceServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-trade-service-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #配置Nacos注册中心 2 | spring.application.name=discovery-gray-route-trade-service-server 3 | server.port=6756 4 | spring.cloud.nacos.discovery.namespace=c7ba173f-29e5-4c58-ae78-b102be11c4f9 5 | spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 6 | spring.cloud.nacos.discovery.group=discovery-service-group 7 | spring.cloud.nacos.discovery.metadata.group=discovery-service-group 8 | spring.cloud.nacos.discovery.metadata.version=1.0 9 | 10 | #配置Nacos的元数据 11 | #设置当前应用的版本号(作用域范围为应用下所有的服务接口) 12 | spring.cloud.nacos.discovery.metadata.region=dev -------------------------------------------------------------------------------- /chapterfourteen/discovery-gray-route-alibaba/discovery-gray-route-trade-service-server/src/main/resources/rule-white-black.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /chapterfourteen/dynamic-routing-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/DynamicConfigServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class DynamicConfigServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(DynamicConfigServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/dynamic-routing-cloud-alibaba/src/main/resources/rule-blacklist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/dynamic-routing-cloud-alibaba/src/main/resources/rule-count.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/dynamic-routing-cloud-alibaba/src/main/resources/rule-whitelist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-gateway-server/src/main/java/com/alibaba/cloud/youxia/GrayPublishAlibabaGatewayServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class GrayPublishAlibabaGatewayServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GrayPublishAlibabaGatewayServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-gateway-server/src/main/java/com/alibaba/cloud/youxia/config/GatewayConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import com.alibaba.cloud.youxia.gateway.GatewayDiscoveryEnabledStrategy; 4 | import org.springframework.context.annotation.Bean; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | public class GatewayConfig { 9 | @Bean 10 | public GatewayDiscoveryEnabledStrategy gatewayDiscoveryEnabledStrategy() { 11 | return new GatewayDiscoveryEnabledStrategy(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-gateway-traffic-server/src/main/java/com/alibaba/cloud/youxia/GrayPublishGatewayTrafficServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class GrayPublishGatewayTrafficServer { 8 | public static void main(String[] args) { 9 | SpringApplication.run(GrayPublishGatewayTrafficServer.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-gateway-traffic-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=gray-publish-gateway-traffic-server 2 | server.port=2345 3 | 4 | 5 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-gateway-traffic-server/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | nacos: 4 | config: 5 | server-addr: 127.0.0.1:8848 6 | group: gray-publish-gateway-traffic-server 7 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 8 | refresh-enabled: true 9 | extension-configs: 10 | - data-id: gray-publish-gateway-traffic-server-test.yaml 11 | group: gray-publish-gateway-traffic-server 12 | refresh: true 13 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 14 | enable-remote-sync-config: true 15 | file-extension: properties -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-good-server/src/main/java/com/alibaba/cloud/youxia/GrayPublishGoodServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class GrayPublishGoodServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GrayPublishGoodServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-good-server/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | nacos: 4 | config: 5 | server-addr: 127.0.0.1:8848 6 | group: gray-publish-good-server 7 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 8 | refresh-enabled: true 9 | enable-remote-sync-config: true 10 | file-extension: properties 11 | extension-configs: 12 | - data-id: gray-publish-good-server-test.properties 13 | group: gray-publish-good-server 14 | refresh: true 15 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 16 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-logistics-server/src/main/java/com/alibaba/cloud/youxia/GrayPublishLogisticsServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class GrayPublishLogisticsServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GrayPublishLogisticsServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-logistics-server/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | nacos: 4 | config: 5 | server-addr: 127.0.0.1:8848 6 | group: gray-publish-logistics-server 7 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 8 | refresh-enabled: true 9 | enable-remote-sync-config: true 10 | file-extension: properties 11 | extension-configs: 12 | - data-id: gray-publish-logistics-server-test.properties 13 | group: gray-publish-logistics-server 14 | refresh: true 15 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 16 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-order-server/src/main/java/com/alibaba/cloud/youxia/GrayPublishOrderServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class GrayPublishOrderServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GrayPublishOrderServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-order-server/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | nacos: 4 | config: 5 | server-addr: 127.0.0.1:8848 6 | group: gray-publish-order-server 7 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 8 | refresh-enabled: true 9 | enable-remote-sync-config: true 10 | file-extension: properties 11 | extension-configs: 12 | - data-id: gray-publish-order-server-test.properties 13 | group: gray-publish-order-server 14 | refresh: true 15 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 16 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-trade-server/src/main/java/com/alibaba/cloud/youxia/GrayPublishTradeServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class GrayPublishTradeServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GrayPublishTradeServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/gray-publish-cloud-alibaba/gray-publish-trade-server/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | nacos: 4 | config: 5 | server-addr: 127.0.0.1:8848 6 | group: gray-publish-trade-server 7 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 8 | refresh-enabled: true 9 | enable-remote-sync-config: true 10 | file-extension: properties 11 | extension-configs: 12 | - data-id: gray-publish-trade-server-test.properties 13 | group: gray-publish-trade-server 14 | refresh: true 15 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 16 | -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-order-server/src/main/java/com/alibaba/cloud/youxia/RegisterGrayServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class RegisterGrayServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(RegisterGrayServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-order-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #配置Nacos注册中心 2 | spring.application.name=register-gray-route-trade-server 3 | server.port=6756 4 | spring.cloud.nacos.discovery.namespace=c7ba173f-29e5-4c58-ae78-b102be11c4f9 5 | spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 6 | spring.cloud.nacos.discovery.group=discovery-service-group 7 | spring.cloud.nacos.discovery.metadata.group=discovery-service-group 8 | spring.cloud.nacos.discovery.metadata.version=1.0 9 | 10 | #配置Nacos的元数据 11 | #设置当前应用的版本号(作用域范围为应用下所有的服务接口) 12 | spring.cloud.nacos.discovery.metadata.region=dev -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-order-server/src/main/resources/rule-blacklist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-order-server/src/main/resources/rule-count.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-order-server/src/main/resources/rule-whitelist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-trade-server/src/main/java/com/alibaba/cloud/youxia/RegisterGrayServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class RegisterGrayServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(RegisterGrayServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-trade-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | #配置Nacos注册中心 2 | spring.application.name=register-gray-route-trade-server 3 | server.port=6756 4 | spring.cloud.nacos.discovery.namespace=c7ba173f-29e5-4c58-ae78-b102be11c4f9 5 | spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 6 | spring.cloud.nacos.discovery.group=discovery-service-group 7 | spring.cloud.nacos.discovery.metadata.group=discovery-service-group 8 | spring.cloud.nacos.discovery.metadata.version=1.0 9 | 10 | #配置Nacos的元数据 11 | #设置当前应用的版本号(作用域范围为应用下所有的服务接口) 12 | spring.cloud.nacos.discovery.metadata.region=dev -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-trade-server/src/main/resources/rule-blacklist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-trade-server/src/main/resources/rule-count.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/register-gray-route-alibaba/register-gray-route-trade-server/src/main/resources/rule-whitelist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterfourteen/strategy-gray-route-alibaba/strategy-gateway-alibaba/src/main/java/com/alibaba/cloud/youxia/StrategyGatewayServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class StrategyGatewayServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(StrategyGatewayServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterfourteen/strategy-gray-route-alibaba/strategy-trade-server/src/main/java/com/alibaba/cloud/youxia/StrategyTradeServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @EnableDiscoveryClient 8 | @SpringBootApplication 9 | public class StrategyTradeServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(StrategyTradeServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapternine/order-api/src/main/java/com/alibaba/cloud/youxia/OrderApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class OrderApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(OrderApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapternine/order-api/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: order-api 4 | cloud: 5 | nacos: 6 | discovery: 7 | server-addr: 127.0.0.1:8847 8 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 9 | group: gateway-dynamic-route-rule 10 | server: 11 | port: 28090 12 | logging: 13 | pattern: 14 | level: info -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-gateway/src/main/java/com/alibaba/cloud/youxia/UseSpringCloudAlibabaGatewayApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class UseSpringCloudAlibabaGatewayApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(UseSpringCloudAlibabaGatewayApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-gateway/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.pattern.level=info 2 | spring.application.name=use-spring-cloud-alibaba-gateway 3 | server.port=28082 4 | management.endpoints.web.exposure.include=* 5 | management.endpoint.health.show-details=always 6 | -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-gateway/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | gateway: 4 | routes: 5 | - id: user_api_route 6 | uri: http://127.0.0.1:28089 7 | predicates: 8 | - Path=/user/getUserInfo 9 | httpserver: 10 | wiretap: true -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-nacos-config-gateway/src/main/java/com/alibaba/cloud/youxia/UseSpringCloudAlibabaNacosConfigGatewayApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UseSpringCloudAlibabaNacosConfigGatewayApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UseSpringCloudAlibabaNacosConfigGatewayApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-redis-lua-gateway/src/main/java/com/alibaba/cloud/youxia/UseSpringCloudAlibabaRedisLuaGatewayApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class UseSpringCloudAlibabaRedisLuaGatewayApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(UseSpringCloudAlibabaRedisLuaGatewayApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-redis-lua-gateway/src/main/java/com/alibaba/cloud/youxia/config/HostAddrKeyResolver.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.cloud.gateway.filter.ratelimit.KeyResolver; 4 | import org.springframework.web.server.ServerWebExchange; 5 | import reactor.core.publisher.Mono; 6 | 7 | public class HostAddrKeyResolver implements KeyResolver { 8 | @Override 9 | public Mono resolve(ServerWebExchange exchange) { 10 | return Mono.just(exchange.getRequest().getRemoteAddress().getAddress().getHostAddress()); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-redis-lua-gateway/src/main/java/com/alibaba/cloud/youxia/config/HttpConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.web.client.RestTemplate; 6 | 7 | @Configuration 8 | public class HttpConfig { 9 | @Bean 10 | public RestTemplate restTemplate(){ 11 | RestTemplate restTemplate=new RestTemplate(); 12 | return restTemplate; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-redis-lua-gateway/src/main/java/com/alibaba/cloud/youxia/config/RedisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.context.annotation.Bean; 4 | import org.springframework.context.annotation.Configuration; 5 | @Configuration 6 | public class RedisConfig { 7 | @Bean 8 | public HostAddrKeyResolver hostAddrKeyResolver() { 9 | return new HostAddrKeyResolver(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapternine/use-spring-cloud-alibaba-redis-lua-gateway/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.pattern.level=info 2 | spring.application.name=use-spring-cloud-alibaba-redis-lua-gateway 3 | server.port=28082 4 | management.endpoints.web.exposure.include=* 5 | management.endpoint.health.show-details=always 6 | -------------------------------------------------------------------------------- /chapternine/user-api/src/main/java/com/alibaba/cloud/youxia/UserApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class UserApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(UserApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chapternine/user-api/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: user-api 4 | cloud: 5 | nacos: 6 | discovery: 7 | server-addr: 127.0.0.1:8847 8 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 9 | group: gateway-dynamic-route-rule 10 | server: 11 | port: 28089 12 | logging: 13 | pattern: 14 | level: info 15 | 16 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-account-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-account-service/src/main/java/com/alibaba/cloud/youxia/entity/AccountEntity.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.entity; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | 5 | public class AccountEntity { 6 | } 7 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-account-service/src/main/java/com/alibaba/cloud/youxia/mapper/AccountMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.bo.AccountBo; 4 | import org.apache.ibatis.annotations.Mapper; 5 | @Mapper 6 | public interface AccountMapper{ 7 | Integer deductAccountBalance(AccountBo accountBo); 8 | } 9 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-account-service/src/main/resources/mapper/AccountMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | update at_account t set t.amount=t.amount-#{amount} 6 | where t.account_id=#{accountId} and t.user_id=#{userId} 7 | 8 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-storage-service/src/main/java/com/alibaba/cloud/youxia/bo/StorageBo.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.bo; 2 | 3 | import lombok.Data; 4 | //@Data 5 | public class StorageBo { 6 | public Long getGoodId() { 7 | return goodId; 8 | } 9 | 10 | public void setGoodId(Long goodId) { 11 | this.goodId = goodId; 12 | } 13 | 14 | public Integer getNum() { 15 | return num; 16 | } 17 | 18 | public void setNum(Integer num) { 19 | this.num = num; 20 | } 21 | 22 | Long goodId; 23 | Integer num; 24 | } 25 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-storage-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-storage-service/src/main/java/com/alibaba/cloud/youxia/mapper/StorageMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.bo.StorageBo; 4 | 5 | public interface StorageMapper { 6 | Integer deductInventory(StorageBo storageBo); 7 | } 8 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-storage-service/src/main/resources/mapper/StorageMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | update at_storage t set t.num=t.num-#{num} where t.good_id=#{goodId} 6 | 7 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-trade-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-at/at-trade-service/src/main/java/com/alibaba/cloud/youxia/mapper/OrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.OrderEntity; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | @Mapper 7 | public interface OrderMapper{ 8 | Long createOrder(OrderEntity orderEntity); 9 | Integer updataOrderStatus(OrderEntity orderEntity); 10 | } 11 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-saga/dubbo-saga-provider-service/src/main/java/com/alibaba/cloud/youxia/service/BalanceAction.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import java.math.BigDecimal; 4 | import java.util.Map; 5 | 6 | public interface BalanceAction { 7 | boolean reduce(String businessKey, BigDecimal amount, Map params); 8 | boolean compensateReduce(String businessKey, Map params); 9 | } 10 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-saga/dubbo-saga-provider-service/src/main/java/com/alibaba/cloud/youxia/service/InventoryAction.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface InventoryAction { 4 | boolean reduce(String businessKey, int count); 5 | boolean compensateReduce(String businessKey); 6 | } 7 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-tcc/tcc-account-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-tcc/tcc-account-service/src/main/java/com/alibaba/cloud/youxia/entity/TccAccountPaymentEntity.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.entity; 2 | 3 | import java.io.Serializable; 4 | 5 | public class TccAccountPaymentEntity implements Serializable { 6 | } 7 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-tcc/tcc-order-service/src/main/java/com/alibaba/cloud/youxia/TccOrderServiceApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class TccOrderServiceApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(TccOrderServiceApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-tcc/tcc-order-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-tcc/tcc-order-service/src/main/java/com/alibaba/cloud/youxia/service/OrderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.pojo.OrderDO; 4 | 5 | /** 6 | * @description: 7 | * @date: 2021/2/13 11:23 下午 8 | * @author: kerry 9 | */ 10 | 11 | public interface OrderService { 12 | /** 13 | * 创建订单 14 | * @param orderDO 15 | */ 16 | void createOrder(OrderDO orderDO); 17 | } 18 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-tcc/tcc-storage-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-xa/xa-logistics-service/src/main/java/com/alibaba/cloud/youxia/XaLogisticsServiceApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class XaLogisticsServiceApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(XaLogisticsServiceApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-xa/xa-logistics-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-xa/xa-logistics-service/src/main/java/com/alibaba/cloud/youxia/mapper/LogisticsMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.LogisticsEntity; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | @Mapper 7 | public interface LogisticsMapper { 8 | Integer notifyLogistics(LogisticsEntity logisticsEntity); 9 | } 10 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-xa/xa-order-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-xa/xa-order-service/src/main/java/com/alibaba/cloud/youxia/mapper/OrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.OrderEntity; 4 | import org.apache.ibatis.annotations.Mapper; 5 | @Mapper 6 | public interface OrderMapper { 7 | Long createNewOrder(OrderEntity orderEntity); 8 | Integer updataOrderStatus(OrderEntity orderEntity); 9 | } 10 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-xa/xa-warehouse-service/src/main/java/com/alibaba/cloud/youxia/XaWarehouseServiceApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class XaWarehouseServiceApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(XaWarehouseServiceApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-xa/xa-warehouse-service/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/spring-cloud-alibaba-access-seata-xa/xa-warehouse-service/src/main/java/com/alibaba/cloud/youxia/mapper/WarehouseMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.WarehouseEntity; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | @Mapper 7 | public interface WarehouseMapper { 8 | Integer notify(WarehouseEntity warehouseEntity); 9 | } 10 | -------------------------------------------------------------------------------- /chapterseven/use-spring-boot-access-seata/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/use-spring-boot-access-seata/src/main/java/com/alibaba/cloud/youxia/mapper/OrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.OrderEntity; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | @Mapper 7 | public interface OrderMapper { 8 | Long createNewOrder(OrderEntity orderEntity); 9 | Integer updataOrderStatus(OrderEntity orderEntity); 10 | } 11 | -------------------------------------------------------------------------------- /chapterseven/use-spring-cloud-alibaba-access-seata/src/main/java/com/alibaba/cloud/youxia/config/MyBatisConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.context.annotation.Configuration; 5 | 6 | /** 7 | * @author clay 8 | * @version 1.0 9 | */ 10 | @Configuration 11 | @MapperScan("com.alibaba.cloud.youxia.mapper") 12 | public class MyBatisConfig { 13 | } 14 | -------------------------------------------------------------------------------- /chapterseven/use-spring-cloud-alibaba-access-seata/src/main/java/com/alibaba/cloud/youxia/mapper/OrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.OrderEntity; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | @Mapper 7 | public interface OrderMapper { 8 | Long createNewOrder(OrderEntity orderEntity); 9 | Integer updataOrderStatus(OrderEntity orderEntity); 10 | } 11 | -------------------------------------------------------------------------------- /chapterseventeen/good-api/src/main/java/com/alibaba/cloud/youxia/GoodApiServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class GoodApiServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GoodApiServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterseventeen/good-new-server/src/main/java/com/alibaba/cloud/youxia/GrayNewServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class GrayNewServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(GrayNewServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterseventeen/good-new-server/src/main/java/com/alibaba/cloud/youxia/mapper/BaseProductInfoMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.BaseProductInfoEntity; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | public interface BaseProductInfoMapper extends BaseMapper { 7 | } 8 | -------------------------------------------------------------------------------- /chapterseventeen/good-new-server/src/main/java/com/alibaba/cloud/youxia/mapper/ProductDetailMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.ProductDetailEntity; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | public interface ProductDetailMapper extends BaseMapper { 7 | } 8 | -------------------------------------------------------------------------------- /chapterseventeen/good-new-server/src/main/resources/mapper/BaseProductInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterseventeen/good-new-server/src/main/resources/mapper/ProductDetailMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chapterseventeen/good-old-server/src/main/java/com/alibaba/cloud/youxia/GoodOldServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | @SpringBootApplication 7 | @EnableDiscoveryClient 8 | public class GoodOldServer { 9 | public static void main(String[] args) { 10 | SpringApplication.run(GoodOldServer.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterseventeen/good-old-server/src/main/java/com/alibaba/cloud/youxia/mapper/ProductInfoMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.ProductInfoEntity; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | public interface ProductInfoMapper extends BaseMapper { 7 | } 8 | -------------------------------------------------------------------------------- /chapterseventeen/good-old-server/src/main/resources/mapper/ProductInfoMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /chaptersix/gateway-access-sentinel/src/main/resources/gateway.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "resource": "some_customized_api", 4 | "count": 1 5 | }, 6 | { 7 | "resource": "httpbin_route", 8 | "count": 0, 9 | "paramItem": { 10 | "parseStrategy": 2, 11 | "fieldName": "Spring-Cloud-Alibaba" 12 | } 13 | }, 14 | { 15 | "resource": "httpbin_route", 16 | "count": 0, 17 | "paramItem": { 18 | "parseStrategy": 3, 19 | "fieldName": "name" 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /chaptersix/netty-spring-cloud-alibaba-push-rule/src/main/java/com/alibaba/cloud/youxia/service/RuleServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | 5 | @DubboService(version = "1.0.0",group = "netty-spring-cloud-alibaba-push-rule") 6 | public class RuleServiceImpl implements RuleService{ 7 | @Override 8 | public String rulePush() { 9 | return "发布规则"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chaptersix/netty-spring-cloud-alibaba-push-rule/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | sentinel: 4 | enabled: true 5 | transport: 6 | dashboard: 127.0.0.1:8080 7 | heartbeat-interval-ms: 1000 -------------------------------------------------------------------------------- /chaptersix/sentinel-core-access/src/main/java/com/alibaba/cloud/youxia/SentinelCoreAccessApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import com.alibaba.csp.sentinel.init.InitExecutor; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | @SpringBootApplication 8 | public class SentinelCoreAccessApplication { 9 | public static void main(String[] args) { 10 | InitExecutor.doInit(); 11 | SpringApplication.run(SentinelCoreAccessApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptersix/sentinel-core-access/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=20000 2 | csp.sentinel.dashboard.server=127.0.0.1:8080 3 | project.name=sentinel-core-access -------------------------------------------------------------------------------- /chaptersix/sentinel-core-access/src/main/resources/sentinel.properties: -------------------------------------------------------------------------------- 1 | csp.sentinel.dashboard.server=127.0.0.1:8080 2 | project.name=sentinel-core-access -------------------------------------------------------------------------------- /chaptersix/sentinel-spring-cloud-alibaba/sentinel-spring-cloud-alibaba-consumer/src/main/java/com/alibaba/cloud/youxia/SentinelSpringCloudAlibabaConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class SentinelSpringCloudAlibabaConsumerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(SentinelSpringCloudAlibabaConsumerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptersix/sentinel-spring-cloud-alibaba/sentinel-spring-cloud-alibaba-provider/src/main/java/com/alibaba/cloud/youxia/service/SentinelDubboServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | 5 | @DubboService(version = "1.0.0",group ="sentinel-spring-cloud-alibaba-provider") 6 | public class SentinelDubboServiceImpl implements SentinelDubboService{ 7 | @Override 8 | public String testSentinelFlow() { 9 | return "sentinelException"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chaptersix/sentinel-spring-cloud-alibaba/sentinel-spring-cloud-alibaba-provider/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | sentinel: 4 | enabled: true 5 | transport: 6 | dashboard: 127.0.0.1:8080 7 | heartbeat-interval-ms: 1000 -------------------------------------------------------------------------------- /chaptersix/sentinel-spring-cloud-alibaba/sentinel-spring-cloud-alibaba-restfulapi/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=sentinel-spring-cloud-alibaba-restfulapi 2 | server.port=18083 3 | management.endpoints.web.exposure.include=* 4 | management.endpoint.health.show-details=always 5 | management.health.diskspace.enabled=false 6 | spring.cloud.sentinel.transport.dashboard=localhost:8080 7 | spring.cloud.sentinel.eager=true 8 | spring.cloud.sentinel.web-context-unify=true -------------------------------------------------------------------------------- /chaptersix/verify-degrade-rule/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | sentinel: 4 | enabled: true 5 | transport: 6 | dashboard: 127.0.0.1:8080 7 | heartbeat-interval-ms: 1000 -------------------------------------------------------------------------------- /chaptersix/verify-flow-rule-qps-thread/src/main/java/com/alibaba/cloud/youxia/service/VerifyFlowServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | 5 | @DubboService(version = "1.0.0",group ="verify-flow-rule-qps-thread") 6 | public class VerifyFlowServiceImpl implements VerifyFlowService{ 7 | @Override 8 | public String verifyFlow() { 9 | return "verify"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chaptersix/verify-flow-rule-qps-thread/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | sentinel: 4 | enabled: true 5 | transport: 6 | dashboard: 127.0.0.1:8080 7 | heartbeat-interval-ms: 1000 -------------------------------------------------------------------------------- /chaptersix/verify-persistence-rule/src/main/java/com/alibaba/cloud/youxia/service/PersistenceServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboService; 4 | 5 | @DubboService(group = "verify-persistence-rule",version = "1.0.0") 6 | public class PersistenceServiceImpl implements PersistenceService{ 7 | @Override 8 | public String persistenceTest() { 9 | return "验证持久化"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chaptersix/verify-persistence-rule/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | sentinel: 4 | enabled: true 5 | transport: 6 | dashboard: 127.0.0.1:8080 7 | heartbeat-interval-ms: 1000 -------------------------------------------------------------------------------- /chaptersix/verify-system-rule/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | sentinel: 4 | enabled: true 5 | transport: 6 | dashboard: 127.0.0.1:8080 7 | heartbeat-interval-ms: 1000 -------------------------------------------------------------------------------- /chapterten/access-skywalking-spring-cloud-alibaba-consumer/src/main/java/com/alibaba/cloud/youxia/SkywalkingConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class SkywalkingConsumerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(SkywalkingConsumerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/access-skywalking-spring-cloud-alibaba-consumer/src/main/java/com/alibaba/cloud/youxia/service/ConsumerService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboReference; 4 | import org.springframework.stereotype.Service; 5 | @Service 6 | public class ConsumerService { 7 | @DubboReference(version = "1.0.0",group = "access-skywalking-spring-cloud-alibaba-provider") 8 | private SkywalkingService skywalkingService; 9 | 10 | public String consumer(){ 11 | return skywalkingService.skywalkingServiceProvider(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/access-skywalking-spring-cloud-alibaba-provider/src/main/java/com/alibaba/cloud/youxia/SkywalkingProviderApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class SkywalkingProviderApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(SkywalkingProviderApplication.class, args); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapterten/access-skywalking-spring-cloud-alibaba-provider/src/main/java/com/alibaba/cloud/youxia/service/impl/SkywalkingServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.impl; 2 | 3 | import com.alibaba.cloud.youxia.service.SkywalkingService; 4 | import org.apache.dubbo.config.annotation.DubboService; 5 | 6 | @DubboService(version = "1.0.0",group = "access-skywalking-spring-cloud-alibaba-provider") 7 | public class SkywalkingServiceImpl implements SkywalkingService { 8 | @Override 9 | public String skywalkingServiceProvider() { 10 | return "access skywalking!"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterten/dubbo-alarm-consumer/src/main/java/com/alibaba/cloud/youxia/DubboAlarmConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class DubboAlarmConsumerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(DubboAlarmConsumerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/dubbo-alarm-provider/src/main/java/com/alibaba/cloud/youxia/DubboAlarmProviderApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class DubboAlarmProviderApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(DubboAlarmProviderApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/dubbo-error-consumer/src/main/java/com/alibaba/cloud/youxia/DubboErrorConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class DubboErrorConsumerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(DubboErrorConsumerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/dubbo-error-provider/src/main/java/com/alibaba/cloud/youxia/DubboErrorProviderApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class DubboErrorProviderApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(DubboErrorProviderApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/skywalking-kafka-consumer/src/main/java/com/alibaba/cloud/youxia/SkywalkingKafkaConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class SkywalkingKafkaConsumerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(SkywalkingKafkaConsumerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/skywalking-kafka-consumer/src/main/java/com/alibaba/cloud/youxia/service/ConsumerService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import org.apache.dubbo.config.annotation.DubboReference; 4 | import org.springframework.stereotype.Service; 5 | @Service 6 | public class ConsumerService { 7 | @DubboReference(version = "1.0.0", group = "skywalking-kafka-provider") 8 | private SkywalkingKafkaService skywalkingKafkaService; 9 | 10 | public String consumer() { 11 | return skywalkingKafkaService.skywalkingKafkaServiceProvider(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/skywalking-kafka-provider/src/main/java/com/alibaba/cloud/youxia/SkywalkingKafkaProviderApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class SkywalkingKafkaProviderApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(SkywalkingKafkaProviderApplication.class, args); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /chapterten/skywalking-kafka-provider/src/main/java/com/alibaba/cloud/youxia/service/impl/SkywalkingKafkaServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.impl; 2 | 3 | import com.alibaba.cloud.youxia.service.SkywalkingKafkaService; 4 | import org.apache.dubbo.config.annotation.DubboService; 5 | 6 | @DubboService(version = "1.0.0",group = "skywalking-kafka-provider") 7 | public class SkywalkingKafkaServiceImpl implements SkywalkingKafkaService { 8 | @Override 9 | public String skywalkingKafkaServiceProvider() { 10 | return "provider kafka message!"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterten/use-es-skywalking-consumer/src/main/java/com/alibaba/cloud/youxia/UseEsSkywalkingConsumerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UseEsSkywalkingConsumerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UseEsSkywalkingConsumerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/use-es-skywalking-provider/src/main/java/com/alibaba/cloud/youxia/UseEsSkywalkingProvider.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UseEsSkywalkingProvider { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UseEsSkywalkingProvider.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterten/use-es-skywalking-provider/src/main/java/com/alibaba/cloud/youxia/mapper/AnchorMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.AnchorEntity; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | 6 | public interface AnchorMapper extends BaseMapper { 7 | } 8 | -------------------------------------------------------------------------------- /chapterten/use-es-skywalking-provider/src/main/resources/mapper/anchor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /chapterthirteen/call-distribute-server-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/CallDistributeServerAlibabaServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class CallDistributeServerAlibabaServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(CallDistributeServerAlibabaServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterthirteen/use-jedis-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/UseJedisSpringCloudAlibaba.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UseJedisSpringCloudAlibaba { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UseJedisSpringCloudAlibaba.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterthirteen/use-jedis-spring-cloud-alibaba/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: use-jedis-spring-cloud-alibaba 4 | main: 5 | allow-bean-definition-overriding: true 6 | cloud: 7 | nacos: 8 | discovery: 9 | server-addr: 127.0.0.1:8848 10 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 11 | group: use-jedis-spring-cloud-alibaba 12 | server: 13 | port: 7834 14 | redis: 15 | node: 16 | max-total: 10 17 | host: 127.0.0.1 18 | port: 19000 19 | password: 12345678 -------------------------------------------------------------------------------- /chapterthirteen/use-lettuce-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/UseLettuceSpringCloudAlibabaServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | @SpringBootApplication 7 | @EnableDiscoveryClient 8 | public class UseLettuceSpringCloudAlibabaServer { 9 | public static void main(String[] args) { 10 | SpringApplication.run(UseLettuceSpringCloudAlibabaServer.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterthirteen/use-lettuce-spring-cloud-alibaba/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: use-lettuce-spring-cloud-alibaba 4 | main: 5 | allow-bean-definition-overriding: true 6 | redis: 7 | password: 12345678 8 | cloud: 9 | nacos: 10 | discovery: 11 | server-addr: 127.0.0.1:8848 12 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 13 | group: use-lettuce-spring-cloud-alibaba 14 | server: 15 | port: 7888 16 | alibaba: 17 | lettuce: 18 | redisUrl: redis://127.0.0.1:6482,redis://127.0.0.1:6484,redis://127.0.0.1:6486 19 | password: 12345678 20 | 21 | -------------------------------------------------------------------------------- /chapterthirteen/use-redisson-distribute-lock-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/UseRedissonDistributeLockAlibabaServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UseRedissonDistributeLockAlibabaServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UseRedissonDistributeLockAlibabaServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterthirteen/use-redisson-distribute-lock-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/mapper/Example2ProductMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.bo.Example2ProductBo; 4 | import com.alibaba.cloud.youxia.entity.Example2ProductEntity; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | import java.util.List; 7 | 8 | public interface Example2ProductMapper extends BaseMapper { 9 | Integer updateGoodNum(Example2ProductBo example2ProductBo); 10 | List queryGoodInfoByGoodId(Example2ProductBo example2ProductBo); 11 | } 12 | -------------------------------------------------------------------------------- /chapterthirteen/use-redisson-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/UseRedissonSpringCloudAlibabaServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | @SpringBootApplication 7 | @EnableDiscoveryClient 8 | public class UseRedissonSpringCloudAlibabaServer { 9 | public static void main(String[] args) { 10 | SpringApplication.run(UseRedissonSpringCloudAlibabaServer.class, args); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterthirteen/use-redisson-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/config/RedissonConfig.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.config; 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties; 4 | import org.springframework.cloud.context.config.annotation.RefreshScope; 5 | import org.springframework.context.annotation.Configuration; 6 | @Configuration 7 | @RefreshScope 8 | @ConfigurationProperties(prefix = "alibaba.redisson") 9 | public class RedissonConfig { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /chapterthirteen/use-redisson-spring-cloud-alibaba/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: use-redisson-spring-cloud-alibaba 4 | cloud: 5 | nacos: 6 | discovery: 7 | server-addr: 127.0.0.1:8848 8 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 9 | redisson: 10 | config-file: classpath:redisson.yaml 11 | redis: 12 | host: 127.0.0.1 13 | port: 6480 14 | password: 12345678 15 | server: 16 | port: 8045 17 | -------------------------------------------------------------------------------- /chapterthirteen/use-springbootdataredis-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/UseSpringBootDataRedisSpringCloudAlibabaServer.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UseSpringBootDataRedisSpringCloudAlibabaServer { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UseSpringBootDataRedisSpringCloudAlibabaServer.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterthirteen/use-springbootdataredis-spring-cloud-alibaba/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: use-springbootdataredis-spring-cloud-alibaba 4 | redis: 5 | password: 12345678 6 | host: 127.0.0.1 7 | port: 6470 8 | main: 9 | allow-bean-definition-overriding: true 10 | cloud: 11 | nacos: 12 | discovery: 13 | server-addr: 127.0.0.1:8848 14 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 15 | group: use-springbootdataredis-spring-cloud-alibaba 16 | server: 17 | port: 7834 18 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-client/src/main/java/com/alibaba/cloud/youxia/OrderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | public interface OrderService { 4 | public String getOrderInfo(); 5 | } 6 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-distribution/productA-development/env.properties: -------------------------------------------------------------------------------- 1 | #productA-development应用个性化参数 2 | JAVA_HOME="/data/java/jdk1.8.0_161" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | # 监控配置 6 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=user-server" 7 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/data/skywalking/skywalking-agent.jar" 8 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-distribution/productA-prod/env.properties: -------------------------------------------------------------------------------- 1 | #productA-prod应用个性化参数 2 | JAVA_HOME="/data/java/jdk1.8.0_161" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | # 监控配置 6 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=user-server" 7 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/data/skywalking/skywalking-agent.jar" -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-distribution/productA-test/env.properties: -------------------------------------------------------------------------------- 1 | #productA-development应用个性化参数 2 | JAVA_HOME="/data/java/jdk1.8.0_161" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | # 监控配置 6 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=user-server" 7 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/data/skywalking/skywalking-agent.jar" 8 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-distribution/productB-development/env.properties: -------------------------------------------------------------------------------- 1 | #productB-development 2 | JAVA_HOME="/data/java/jdk1.8.0_161" 3 | JAVA_PARAMS="$JAVA_PARAMS -Dproject.name=kk-udms-user-server -Dcat.app.name=kk-udms-user-server -Dcat.client.ip=10.0.0.2 -Dcat.maxMsgSize=1000 -Dcat.app.enable=true" 4 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 5 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 6 | APP_MAINCLASS="com.melot.kk.udms.user.server.Application" 7 | 8 | # 监控配置 9 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=kk-udms-user-server" 10 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/data/skywalking/skywalking-agent.jar" 11 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-distribution/productB-prod/env.properties: -------------------------------------------------------------------------------- 1 | #productA-development应用个性化参数 2 | JAVA_HOME="/data/java/jdk1.8.0_161" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | # 监控配置 6 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=user-server" 7 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/data/skywalking/skywalking-agent.jar" 8 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-distribution/productB-test/env.properties: -------------------------------------------------------------------------------- 1 | #productA-development应用个性化参数 2 | JAVA_HOME="/data/java/jdk1.8.0_161" 3 | # JVM参数配置 程序发生OOM的时候kill掉进程 通过保活机制重启程序 4 | JAVA_PARAMS="$JAVA_PARAMS -XX:OnOutOfMemoryError='kill -9 %p'" 5 | # 监控配置 6 | JAVA_PARAMS="$JAVA_PARAMS -DSW_AGENT_NAME=user-server" 7 | JAVA_PARAMS="$JAVA_PARAMS -javaagent:/data/skywalking/skywalking-agent.jar" 8 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-server/src/main/java/com/alibaba/cloud/youxia/UserServerApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class UserServerApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(UserServerApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-server/src/main/java/com/alibaba/cloud/youxia/service/OrderServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.OrderService; 4 | import org.apache.dubbo.config.annotation.DubboService; 5 | 6 | @DubboService(group = "user-server",version = "1.0.0") 7 | public class OrderServiceImpl implements OrderService { 8 | @Override 9 | public String getOrderInfo() { 10 | return "orderInfo"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-server/src/main/resources/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | dubbo: 2 | scan: 3 | base-packages: com.alibaba.cloud.youxia 4 | protocol: 5 | name: dubbo 6 | port: -1 7 | spring: 8 | application: 9 | name: user-server 10 | main: 11 | allow-bean-definition-overriding: true 12 | cloud: 13 | nacos: 14 | discovery: 15 | server-addr: 127.0.0.1:8847 16 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 17 | group: user-server 18 | config: 19 | server-addr: 127.0.0.1:8847 20 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 21 | group: user-server 22 | server: 23 | port: 8089 24 | -------------------------------------------------------------------------------- /chapterthree/multi-environment-deployment/user-server/target/classes/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | dubbo: 2 | scan: 3 | base-packages: com.alibaba.cloud.youxia 4 | protocol: 5 | name: dubbo 6 | port: -1 7 | spring: 8 | application: 9 | name: user-server 10 | main: 11 | allow-bean-definition-overriding: true 12 | cloud: 13 | nacos: 14 | discovery: 15 | server-addr: 127.0.0.1:8847 16 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 17 | group: user-server 18 | config: 19 | server-addr: 127.0.0.1:8847 20 | namespace: c7ba173f-29e5-4c58-ae78-b102be11c4f9 21 | group: user-server 22 | server: 23 | port: 8089 24 | -------------------------------------------------------------------------------- /chapterthree/multi-tenant-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/Example7Application.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | @SpringBootApplication 8 | @MapperScan("com.alibaba.cloud.youxia.mapper") 9 | public class Example7Application { 10 | public static void main(String[] args) { 11 | SpringApplication.run(Example7Application.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterthree/multi-tenant-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/thread/TenantThreadExecutor.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.thread; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Component; 5 | 6 | import javax.annotation.PostConstruct; 7 | import java.util.concurrent.Executors; 8 | 9 | @Component 10 | public class TenantThreadExecutor { 11 | 12 | @Autowired 13 | private UserService userService; 14 | 15 | @PostConstruct 16 | public void init(){ 17 | Executors.newSingleThreadExecutor().execute(new ExecuteThread(userService)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /chapterthree/multi-tenant-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/thread/UserService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.thread; 2 | 3 | import com.alibaba.cloud.youxia.entity.UserEntity; 4 | import com.alibaba.cloud.youxia.mapper.UserMapper; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.stereotype.Service; 7 | 8 | import java.util.List; 9 | 10 | @Service 11 | public class UserService { 12 | @Autowired 13 | private UserMapper userMapper; 14 | 15 | public List getUserAndAddr(String userName){ 16 | return userMapper.getUserAndAddr(userName); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /chapterthree/multi-tenant-spring-cloud-alibaba/src/main/resources/db/data-h2.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM user; 2 | 3 | INSERT INTO user (id, tenant_id, name) VALUES 4 | (1, 1, 'Jone'),(2, 1, 'Jack'),(3, 1, 'Tom'), 5 | (4, 0, 'Sandy'),(5, 0, 'Billie'); 6 | 7 | INSERT INTO user_addr (id, USER_ID, name) VALUES 8 | (1, 1, 'addr1'),(2,1,'addr2'); -------------------------------------------------------------------------------- /chapterthree/multi-tenant-spring-cloud-alibaba/src/main/resources/db/schema-h2.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS user; 2 | 3 | CREATE TABLE user 4 | ( 5 | id BIGINT(20) NOT NULL COMMENT '主键ID', 6 | tenant_id BIGINT(20) NOT NULL COMMENT '租户ID', 7 | name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', 8 | PRIMARY KEY (id) 9 | ); 10 | 11 | DROP TABLE IF EXISTS user_addr; 12 | 13 | CREATE TABLE USER_ADDR 14 | ( 15 | id BIGINT(20) NOT NULL COMMENT '主键ID', 16 | user_id BIGINT(20) NOT NULL COMMENT 'user.id', 17 | name VARCHAR(30) NULL DEFAULT NULL COMMENT '地址名称', 18 | PRIMARY KEY (id) 19 | ); -------------------------------------------------------------------------------- /chapterthree/multidata-source-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/mapper/Example2ProductMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.bo.Example2ProductBo; 4 | import com.alibaba.cloud.youxia.entity.Example2ProductEntity; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | 7 | import java.util.List; 8 | 9 | public interface Example2ProductMapper extends BaseMapper { 10 | Integer updateGoodNum(Example2ProductBo example2ProductBo); 11 | List queryGoodInfoByGoodId(Example2ProductBo example2ProductBo); 12 | } 13 | -------------------------------------------------------------------------------- /chapterthree/multidata-source-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/service/Example4UserService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.bo.Example2ProductBo; 4 | import com.alibaba.cloud.youxia.entity.Example2ProductEntity; 5 | 6 | import java.util.List; 7 | 8 | public interface Example4UserService { 9 | 10 | List selectFromMaster(Example2ProductBo example2ProductBo); 11 | 12 | List selectFromSlave1(Example2ProductBo example2ProductBo); 13 | 14 | List selectFromSlave2(Example2ProductBo example2ProductBo); 15 | } 16 | -------------------------------------------------------------------------------- /chapterthree/optimistic-locking-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/Application.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | //import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 7 | 8 | @SpringBootApplication 9 | @MapperScan("com.alibaba.cloud.youxia.mapper") 10 | //@EnableDiscoveryClient 11 | public class Application { 12 | 13 | public static void main(String[] args) { 14 | SpringApplication.run(Application.class, args); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /chapterthree/optimistic-locking-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/manager/OptLockThread.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.manager; 2 | 3 | /** 4 | * 乐观锁线程 5 | */ 6 | public class OptLockThread implements Runnable{ 7 | 8 | public OptLockThread(ProductManager example2UserManager){ 9 | this.example2UserManager=example2UserManager; 10 | } 11 | 12 | @Override 13 | public void run() { 14 | example2UserManager.updateByEntitySucc(); 15 | } 16 | 17 | private ProductManager example2UserManager; 18 | } 19 | -------------------------------------------------------------------------------- /chapterthree/optimistic-locking-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/mapper/Example2ProductMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.bo.Example2ProductBo; 4 | import com.alibaba.cloud.youxia.entity.Example2ProductEntity; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | 7 | import java.util.List; 8 | 9 | public interface Example2ProductMapper extends BaseMapper { 10 | Integer updateGoodNum(Example2ProductBo example2ProductBo); 11 | List queryGoodInfoByGoodId(Example2ProductBo example2ProductBo); 12 | } 13 | -------------------------------------------------------------------------------- /chapterthree/replace-table-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/Example5Application.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class Example5Application { 10 | public static void main(String[] args) { 11 | SpringApplication.run(Example5Application.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chapterthree/replace-table-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/mapper/Example2ProductMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.bo.Example2ProductBo; 4 | import com.alibaba.cloud.youxia.entity.Example2ProductEntity; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | 7 | import java.util.List; 8 | 9 | public interface Example2ProductMapper extends BaseMapper { 10 | Integer updateGoodNum(Example2ProductBo example2ProductBo); 11 | List queryGoodInfoByGoodId(Example2ProductBo example2ProductBo); 12 | } 13 | -------------------------------------------------------------------------------- /chapterthree/replace-table-spring-cloud-alibaba/src/main/java/com/alibaba/cloud/youxia/mapper/Example5OrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.bo.Example5OrderBo; 4 | import com.alibaba.cloud.youxia.entity.Example5OrderEntity; 5 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 6 | public interface Example5OrderMapper extends BaseMapper { 7 | Example5OrderEntity selectOrder(Example5OrderBo example5OrderBo); 8 | } 9 | -------------------------------------------------------------------------------- /chapterthree/replace-table-spring-cloud-alibaba/src/main/resources/mapper/Example5OrderMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-core-api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.aop.proxy-target-class=true 2 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-jdbc-java-api/src/main/java/com/alibaba/cloud/youxia/ShardingsphereJdbcJavaApiApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ShardingsphereJdbcJavaApiApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(ShardingsphereJdbcJavaApiApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-jdbc-java-api/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8077 2 | spring.application.name=shardingsphere-jdbc-java-api -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis-plus/src/main/java/com/alibaba/cloud/youxia/mapper/AddressMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.Address; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | @Mapper 7 | public interface AddressMapper extends BaseMapper
{ 8 | } 9 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis-plus/src/main/java/com/alibaba/cloud/youxia/mapper/OrderItemMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.OrderItem; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | @Mapper 8 | public interface OrderItemMapper extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis-plus/src/main/java/com/alibaba/cloud/youxia/mapper/OrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.entity.Order; 4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 5 | import org.apache.ibatis.annotations.Mapper; 6 | 7 | @Mapper 8 | public interface OrderMapper extends BaseMapper { 9 | } 10 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis-plus/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | mybatis-plus.mapper-locations=classpath:/mapper/**.xml 2 | mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 3 | mybatis-plus.global-config.db-config.logic-delete-field=is_deleted 4 | mybatis-plus.global-config.db-config.logic-delete-value=1 5 | mybatis-plus.global-config.db-config.logic-not-delete-value=0 6 | 7 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis-plus/src/main/resources/mapper/AddressMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis-plus/src/main/resources/mapper/OrderItemMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis-plus/src/main/resources/mapper/OrderMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis/src/main/java/com/alibaba/cloud/youxia/mapper/AddressMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | 5 | @Mapper 6 | public interface AddressMapper { 7 | } 8 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis/src/main/java/com/alibaba/cloud/youxia/mapper/OrderItemMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | 5 | @Mapper 6 | public interface OrderItemMapper { 7 | } 8 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis/src/main/java/com/alibaba/cloud/youxia/mapper/OrderMapper.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.mapper; 2 | 3 | import com.alibaba.cloud.youxia.mapper.mybatis.entity.Order; 4 | import org.apache.ibatis.annotations.Mapper; 5 | @Mapper 6 | public interface OrderMapper { 7 | Integer insertOrder(Order order); 8 | } 9 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis/src/main/resources/mapper/AddressMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis/src/main/resources/mapper/OrderItemMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis/src/main/resources/mapper/OrderMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | INSERT INTO t_order( id,user_id,order_name,address_id,status,order_id,is_deleted,gmt_create,gmt_modified ) 6 | VALUES ( #{id},#{userId},#{orderName},#{addressId},#{status},#{orderId},#{isDeleted},#{gmtCreate},#{gmtModified}) 7 | 8 | 9 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-mybatis/src/main/resources/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-test/src/main/java/com/alibaba/cloud/youxia/ShardingsphereSpringBootApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class ShardingsphereSpringBootApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(ShardingsphereSpringBootApplication.class, args); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /chaptertwelve/shardingsphere-spring-boot-test/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8067 2 | spring.application.name=shardingsphere-spring-boot-test -------------------------------------------------------------------------------- /chaptertwo/restful-practice/src/main/java/com/alibaba/cloud/youxia/RestfulApiApplication.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 6 | 7 | @SpringBootApplication 8 | @EnableDiscoveryClient 9 | public class RestfulApiApplication { 10 | public static void main(String[] args) { 11 | SpringApplication.run(RestfulApiApplication.class, args); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chaptertwo/restful-practice/src/main/java/com/alibaba/cloud/youxia/RestfulPracticeController.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class RestfulPracticeController { 8 | @GetMapping(value = "/testRestfulApi") 9 | public String testRestfulApi(){ 10 | return "test"; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /dingding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/dingding.png -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/bo/AnchorBo.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.bo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class AnchorBo implements Serializable { 6 | private String anchorName; 7 | private String anchorLevel; 8 | 9 | public void setAnchorLevel(String anchorLevel) { 10 | this.anchorLevel = anchorLevel; 11 | } 12 | 13 | public void setAnchorName(String anchorName) { 14 | this.anchorName = anchorName; 15 | } 16 | 17 | public String getAnchorLevel() { 18 | return anchorLevel; 19 | } 20 | 21 | public String getAnchorName() { 22 | return anchorName; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/bo/NewBaseProductInfoBo.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.bo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class NewBaseProductInfoBo implements Serializable { 6 | private Long productId; 7 | 8 | public void setProductId(Long productId) { 9 | this.productId = productId; 10 | } 11 | 12 | public Long getProductId() { 13 | return productId; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/bo/NewProductDetailBo.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.bo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class NewProductDetailBo implements Serializable { 6 | private Long productId; 7 | 8 | public void setProductId(Long productId) { 9 | this.productId = productId; 10 | } 11 | 12 | public Long getProductId() { 13 | return productId; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/bo/ProductInfoBo.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.bo; 2 | 3 | import java.io.Serializable; 4 | 5 | public class ProductInfoBo implements Serializable { 6 | private Long productId; 7 | 8 | public void setProductId(Long productId) { 9 | this.productId = productId; 10 | } 11 | 12 | public Long getProductId() { 13 | return productId; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/dto/LogisticsServiceDTO.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.dto; 2 | 3 | import java.io.Serializable; 4 | 5 | public class LogisticsServiceDTO implements Serializable { 6 | private Long logisticsId; 7 | private Integer status; 8 | 9 | public void setLogisticsId(Long logisticsId) { 10 | this.logisticsId = logisticsId; 11 | } 12 | 13 | public void setStatus(Integer status) { 14 | this.status = status; 15 | } 16 | 17 | public Integer getStatus() { 18 | return status; 19 | } 20 | 21 | public Long getLogisticsId() { 22 | return logisticsId; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/AnchorService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.bo.AnchorBo; 4 | 5 | public interface AnchorService { 6 | Integer insertAnchor(AnchorBo anchorBo); 7 | } 8 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/AtAccountService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public interface AtAccountService { 6 | boolean deductAccountBalance(Long userId, BigDecimal amount,Long accountId); 7 | } 8 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/AtOrderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public interface AtOrderService { 6 | boolean createOrder(Long userId, BigDecimal amount, Long goodId); 7 | } 8 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/AtStorageService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface AtStorageService { 4 | boolean deductInventory(Long goodId,Integer num); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/AtTradeService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface AtTradeService { 4 | boolean buy(Long userId,Long goodId,Long accountId,Integer num); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/DegradeService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | public interface DegradeService { 3 | String verifyDegradeRule(); 4 | } 5 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/DistributedService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface DistributedService { 4 | long nextId(final long datacenterId, final long machineId); 5 | long nextId(); 6 | } 7 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/DubboAlarmService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface DubboAlarmService { 4 | String alarm(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/DubboErrorService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface DubboErrorService { 4 | String simulationError(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/PersistenceService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface PersistenceService { 4 | String persistenceTest(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/RibbonDiscoveryService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface RibbonDiscoveryService { 4 | String getRibbonConfig(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/RibbonTestService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface RibbonTestService { 4 | String test(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/RuleService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface RuleService { 4 | String rulePush(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/SagaAccountService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface SagaAccountService { 4 | boolean accountDeduction(); 5 | boolean compensateAccountDeduction(); 6 | } 7 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/SagaOrderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface SagaOrderService { 4 | boolean createOrder(); 5 | boolean compensateCreateOrder(); 6 | } 7 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/SagaStorageService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface SagaStorageService { 4 | boolean storageDeduction(); 5 | boolean compensateStorageDeduction(); 6 | } 7 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/SentinelDubboService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface SentinelDubboService { 4 | String testSentinelFlow(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/SkywalkingKafkaService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface SkywalkingKafkaService { 4 | String skywalkingKafkaServiceProvider(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/SkywalkingService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface SkywalkingService { 4 | String skywalkingServiceProvider(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/SystemRuleService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface SystemRuleService { 4 | String verifySystemRule(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/TccAccountService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.bo.TccAccountServiceBo; 4 | 5 | import java.math.BigDecimal; 6 | 7 | public interface TccAccountService { 8 | boolean transformMoney(TccAccountServiceBo tccAccountServiceBo); 9 | void decreaseMoney(Long userId, BigDecimal money); 10 | } 11 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/TccStorageService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface TccStorageService { 4 | void decreaseStorage(Long productId, Integer count); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/VerifyFlowService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | public interface VerifyFlowService { 4 | String verifyFlow(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/XaLogisticsService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.bo.LogisticsServiceBo; 4 | import com.alibaba.cloud.youxia.dto.LogisticsServiceDTO; 5 | 6 | public interface XaLogisticsService { 7 | LogisticsServiceDTO notifyLogistics(LogisticsServiceBo logisticsServiceBo); 8 | } 9 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/XaWarehouseService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service; 2 | 3 | import com.alibaba.cloud.youxia.bo.WarehouseServiceBo; 4 | import com.alibaba.cloud.youxia.dto.WarehouseServiceDTO; 5 | 6 | public interface XaWarehouseService { 7 | WarehouseServiceDTO notifyWarehouse(WarehouseServiceBo warehouseServiceBo); 8 | } 9 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/eighteen/GoodService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.eighteen; 2 | 3 | public interface GoodService { 4 | boolean deductionInventory(String goodId); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/eighteen/InventoryService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.eighteen; 2 | 3 | public interface InventoryService { 4 | boolean syncInventory(String goodId,Long orderId); 5 | 6 | } 7 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/eighteen/LogisticsService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.eighteen; 2 | 3 | public interface LogisticsService { 4 | boolean deliverGoods(String goodId,Long orderId); 5 | } -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/eighteen/OrderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.eighteen; 2 | 3 | public interface OrderService { 4 | Long createOrder(String goodId); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/eighteen/PayService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.eighteen; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public interface PayService { 6 | boolean pay(Long orderId, String goodId, BigDecimal amount); 7 | } 8 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/eighteen/TradeService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.eighteen; 2 | 3 | public interface TradeService { 4 | boolean buy(String goodId); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/fiveteen/FiveteenOrderService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.fiveteen; 2 | 3 | import com.alibaba.cloud.youxia.bo.FiveteenOrderBo; 4 | import com.alibaba.cloud.youxia.dto.FiveteenOrderDTO; 5 | 6 | public interface FiveteenOrderService { 7 | FiveteenOrderDTO createOrder(FiveteenOrderBo fiveteenOrderBo); 8 | } 9 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/fiveteen/FiveteenTradeService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.fiveteen; 2 | 3 | import com.alibaba.cloud.youxia.bo.FiveteenTradeBo; 4 | import com.alibaba.cloud.youxia.dto.FiveteenTradeDTO; 5 | 6 | public interface FiveteenTradeService { 7 | FiveteenTradeDTO buyGoodAndCreateOrder(FiveteenTradeBo fiveteenTradeBo); 8 | } 9 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/fourteen/FourTeenGoodService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.fourteen; 2 | 3 | public interface FourTeenGoodService { 4 | String getGoodInfo(); 5 | } 6 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/seventeen/NewBaseProductInfoService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.seventeen; 2 | 3 | import com.alibaba.cloud.youxia.bo.NewBaseProductInfoBo; 4 | import com.alibaba.cloud.youxia.dto.NewBaseProductInfoDTO; 5 | 6 | import java.util.List; 7 | 8 | public interface NewBaseProductInfoService { 9 | Integer insert(NewBaseProductInfoDTO newBaseProductInfoDTO); 10 | List select(NewBaseProductInfoBo newBaseProductInfoBo); 11 | Integer selectTotalNum(NewBaseProductInfoBo newBaseProductInfoBo); 12 | } 13 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/seventeen/NewProductDetailService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.seventeen; 2 | 3 | import com.alibaba.cloud.youxia.bo.NewProductDetailBo; 4 | import com.alibaba.cloud.youxia.dto.NewProductDetailDTO; 5 | 6 | import java.util.List; 7 | 8 | public interface NewProductDetailService { 9 | Integer insert(NewProductDetailDTO newProductDetailDTO); 10 | List select(NewProductDetailBo newProductDetailBo); 11 | Integer selectTotalNum(NewProductDetailBo newProductDetailBo); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /dubbo-common-api/src/main/java/com/alibaba/cloud/youxia/service/seventeen/ProductInfoService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.cloud.youxia.service.seventeen; 2 | 3 | import com.alibaba.cloud.youxia.bo.ProductInfoBo; 4 | import com.alibaba.cloud.youxia.dto.ProductInfoDTO; 5 | import java.util.List; 6 | 7 | public interface ProductInfoService { 8 | Integer insert(ProductInfoDTO productInfoDTO); 9 | List select(ProductInfoBo productInfoBo); 10 | Integer selectTotalNum(ProductInfoBo productInfoBo); 11 | } -------------------------------------------------------------------------------- /help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/help.png -------------------------------------------------------------------------------- /install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/install.png -------------------------------------------------------------------------------- /jdk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/jdk.png -------------------------------------------------------------------------------- /maven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/maven.png -------------------------------------------------------------------------------- /mavenVersion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/mavenVersion.png -------------------------------------------------------------------------------- /me.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/me.jpg -------------------------------------------------------------------------------- /nacosconfig/config_info_beta.sql: -------------------------------------------------------------------------------- 1 | /* 2 | -- Query: SELECT * FROM nacos_config.config_info_beta where tenant_id='c7ba173f-29e5-4c58-ae78-b102be11c4f9' 3 | LIMIT 0, 1000 4 | 5 | -- Date: 2022-04-24 15:59 6 | */ 7 | INSERT INTO `` (`id`,`data_id`,`group_id`,`app_name`,`content`,`beta_ips`,`md5`,`gmt_create`,`gmt_modified`,`src_user`,`src_ip`,`tenant_id`) VALUES (3,'beata-spring-cloud-alibaba-config-test.yaml','beata-spring-cloud-alibaba-config','','spring:\n youxia:\n config:\n name: test57','127.0.0.7','c9fc83ad40b9826454e1b465782906eb','2021-03-26 10:13:40','2021-03-26 10:13:40',NULL,'127.0.0.1','c7ba173f-29e5-4c58-ae78-b102be11c4f9'); 8 | -------------------------------------------------------------------------------- /nacosconfig/tenant_info.sql: -------------------------------------------------------------------------------- 1 | /* 2 | -- Query: SELECT * FROM nacos_config.tenant_info where tenant_id="c7ba173f-29e5-4c58-ae78-b102be11c4f9" 3 | LIMIT 0, 1000 4 | 5 | -- Date: 2022-04-24 16:01 6 | */ 7 | INSERT INTO `` (`id`,`kp`,`tenant_id`,`tenant_name`,`tenant_desc`,`create_source`,`gmt_create`,`gmt_modified`) VALUES (1,'1','c7ba173f-29e5-4c58-ae78-b102be11c4f9','spring cloud alibaba practice','spring cloud alibaba 微服务实战派','nacos',1611476088198,1611476088198); 8 | -------------------------------------------------------------------------------- /taobao-sdk-java-auto-1.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/metaphysical-road/spring-cloud-alibaba-practice/954abb445d357ba0b2cf0a57ce0a16d1b8ad7568/taobao-sdk-java-auto-1.0.0.jar --------------------------------------------------------------------------------