# Spring-alibaba **Repository Path**: hitol/spring-alibaba ## Basic Information - **Project Name**: Spring-alibaba - **Description**: Spring-alibaba - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-27 - **Last Updated**: 2021-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-cloud-alibaba [toc] 学习下Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 ## Nacos 作为注册中心 适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。 ![](http://hitol.blog.cdn.updev.cn/2020-09-27-16011860283161.jpg) 可作为配置中心、服务注册中心 Nacos 支持将注册中心(Service Registry)与配置中心(Config Center) 在一个进程合并部署或者将2者分离部署的两种模式。 [启动nacos](https://nacos.io/zh-cn/docs/quick-start.html) [Nacos Spring Cloud 快速开始](https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html) ### Nacos REST 服务调用 #### 服务提供者 ##### 添加依赖 ``` com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery 2.1.1.RELEASE ``` ##### 修改配置 ``` server: port: 8070 spring: application: name: service-provider cloud: nacos: discovery: server-addr: 127.0.0.1:8848 ``` 编写测试 controller ``` @RestController public class EchoController { @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET) public String echo(@PathVariable String string) { return "Hello Nacos222 Discovery " + string; } } ``` 启动类上添加 `@EnableDiscoveryClient` #### 服务消费者 ##### 添加依赖 ``` org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery 0.2.2.RELEASE com.alibaba.nacos nacos-client com.alibaba.nacos nacos-client 1.1.4 ``` ##### 修改配置 ``` server: port: 8071 spring: application: name: service-consumer cloud: nacos: discovery: server-addr: 127.0.0.1:8848 ``` 启动类上添加 `@EnableDiscoveryClient` 访问 http://127.0.0.1:8071/echo/123 服务可用 ### Nacos Dubbo #### 服务提供者 ##### 添加依赖 ``` org.apache.dubbo dubbo 2.7.10 org.apache.dubbo dubbo-registry-nacos 2.7.5 org.apache.dubbo dubbo-spring-boot-starter 2.7.5 ``` ##### 修改配置 ``` dubbo: application: name: nacos-provider version: 1.0.0 registry: address: nacos://127.0.0.1:8848 version: 1.0.0 ``` 启动类上添加 `@EnableDubbo` #### 服务消费者 ##### 添加依赖 与服务提供者依赖一致 ##### 修改配置 ``` dubbo: application: name: nacos-consumer version: 1.0.0 registry: address: nacos://127.0.0.1:8848 version: 1.0.0 ``` 启动类上添加 `@EnableDubbo` ## Nacos 作为配置中心 ### 客户端 #### 添加依赖 ``` com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.1.1.RELEASE ``` #### 修改配置 新建配置文件 bootstrap.yml,配置文件要与 nacos 里配置的 Data ID 一致。 nacos 控制台上添加配置 ![](http://hitol.blog.cdn.updev.cn/16208113798180.jpg) Data ID 是 nacos-config2-dev.yml,所以在 bootstrap.yml 配置文件中这么配置 ``` spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yml application: name: nacos-config2 profiles: active: dev ``` 通过 controller 查看配置 ``` @RestController @RefreshScope @RequestMapping("/config") public class ConfigController { @Value("${user.name}") private String userName; @Value("${user.age}") private String userAge; @RequestMapping("/get") public String get() { return "user.name = " + userName + " user.age = " + userAge; } } ``` http://127.0.0.1:8081/config/get 在 nacos 控制台中修改配置后,会同步刷新。 ## sentinel https://gitee.com/hitol/spring-alibaba/tree/master/sentinel