├── .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
--------------------------------------------------------------------------------