# spring-cloud-alibaba-sample **Repository Path**: helong0702_admin/spring-cloud-alibaba-sample ## Basic Information - **Project Name**: spring-cloud-alibaba-sample - **Description**: Spring Cloud Alibaba 例子 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2021-08-03 - **Last Updated**: 2021-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Cloud Alibaba 例子 参照[大雨将至](https://blog.csdn.net/autfish)的博客实现。 - [(一)Nacos动态配置](https://blog.csdn.net/autfish/article/details/90173658) - [(二)Nacos注册中心](https://blog.csdn.net/autfish/article/details/90204765) - [(三)Sentinel之限流](https://blog.csdn.net/autfish/article/details/90405679) - [(四)Sentinel之熔断](https://blog.csdn.net/autfish/article/details/90411698) - [(五)Gateway之路由、限流](https://blog.csdn.net/autfish/article/details/90602930) - [(六)Gateway之鉴权、日志](https://blog.csdn.net/autfish/article/details/90637957 ) - [(七)Gateway搭配Nacos实现动态路由](https://blog.csdn.net/autfish/article/details/90752293) - [(八)Dubbo + Nacos](https://blog.csdn.net/autfish/article/details/91513097) *** ## 1、工程结构如下 - account-service,账号服务,分别调用address-service(Dubbo),payment-service(Fegin) - address-service,地址服务 - payment-service,支付服务 - sample-gateway,服务网关,代理account-service和payment-service,支持全局日志、鉴权 - nacos,同github下载、编译结果,github下载较慢 - sentinel-dashboard.jar,同github下载、编译结果,github下载较慢 ## 2、启动服务 ### 1)启动nacos ``` cd alibaba-sample/nacos/bin/ sh startup.sh -m standalone ``` 访问地址:http://localhost:8848/nacos 账号:nacos 密码:nacos 增加配置 nacos -> 配置管理 -> 配置列表 -> + #### payment-service-dev.properties Data ID:payment-service-dev.properties Group:DEFAULT_GROUP 配置格式:Properties 配置内容: ``` sleep: 0 ``` #### payment-service-flow-rules Data ID:payment-service-flow-rules Group:DEFAULT_GROUP 配置格式:JSON 配置内容: ``` [ { "resource": "protected-resource", "controlBehavior": 0, "maxQueueingTimeMs": 20000, "count": 1, "grade": 1, "limitApp": "default", "strategy": 0 } ] ``` #### account-service-degrade-rules Data ID:account-service-degrade-rules Group:DEFAULT_GROUP 配置格式:JSON 配置内容: ``` [ { "resource": "GET:http://payment-service/pay/balance", "count": 500, "grade": 0, "timeWindow": 10 } ] ``` #### gateway-router Data ID:gateway-router Group:DEFAULT_GROUP 配置格式:JSON 配置内容: ``` [{ "id": "account-router", "order": 0, "predicates": [{ "args": { "pattern": "/account/**" }, "name": "Path" }], "uri": "lb://account-service" }, { "id": "payment-router", "order": 0, "predicates": [{ "args": { "pattern": "/pay/**" }, "name": "Path" }], "uri": "lb://payment-service" }] ``` ### 2)启动sentinel ``` cd alibaba-sample/ java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar ``` 访问地址:http://localhost:8080/ 账号:sentinel 密码:sentinel ### 3)启动payment-service ``` cd alibaba-sample/payment-service/ mvn clean package cd target/ java -jar payment-service-1.0.0-SNAPSHOT.jar --server.port=8082 java -jar payment-service-1.0.0-SNAPSHOT.jar --server.port=8083 ``` 查看 nacos -> 服务管理 -> 服务列表,payment-service已经注册上 测试连通性: http://localhost:8082/pay/balance?id=1 http://localhost:8083/pay/balance?id=1 ### 4)启动address-service ``` cd alibaba-sample/address-service/ mvn clean package cd target/ java -jar address-service-1.0.0-SNAPSHOT.jar ``` 查看 nacos -> 服务管理 -> 服务列表,address-service已经注册上 ### 5)启动account-service ``` cd alibaba-sample/account-service/ mvn clean package cd target/ java -jar account-service-1.0.0-SNAPSHOT.jar --server.port=8081 ``` 查看 nacos -> 服务管理 -> 服务列表,account-service已经注册上 测试连通性: http://localhost:8081/account/user?id=1 ### 6)启动sample-gateway ``` cd alibaba-sample/sample-gateway/ mvn clean package cd target/ java -jar sample-gateway-1.0.0-SNAPSHOT.jar --server.port=8084 ``` 测试连通性: http://localhost:8084/account/user?id=1