1.安装启动nacos-server
nacos是作为一个单独的服务提供给其它服务作为配置中心和注册中心使用,需要下载启动nacos-server
最新稳定版本 下载地址:https://github.com/alibaba/nacos/releases
我下载的是nacos1.01
下载后解压,进入bin目录
1.1 Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh standalone
1.2 Windows
启动命令:
cmd startup.cmd【双击启动】
或者双击startup.cmd运行文件。
1.3 打开控制台
http://localhost:8848/nacos/
登录名:nacos 密码:nacos
注意:spring cloud版本和spring boot版本是有对应关系的,不引入对应版本不能正常使用
版本对应关系如下:
详细的版本管理信息可参考:
https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
2.创建spring cloud项目
2.1引入依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclusion>
</exclusions>
<version>0.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
2.2.启动类如下:
@SpringBootApplication
@EnableDiscoveryClient
@RestController
@RefreshScope
public class ServiceAApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceAApplication.class, args);
}
@RestController
class TestController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
public void setUseLocalCache(boolean useLocalCache) {
this.useLocalCache = useLocalCache;
}
@RequestMapping(value = "/get")
@ResponseBody
public boolean get() {
return useLocalCache;
}
}
}
2.3在项目生成resources目录下创建bootstrap.yml
spring:
application:
name: serviceA
cloud:
nacos:
config:
file-extension: yml
server-addr: 127.0.0.1:8848
discovery:
file-extension: yml
server-addr: 127.0.0.1:8848
2.4.nacos控制台创建配置文件serviceA.yml
这里我只配置了服务启动的端口为8090,不配置默认服务会以8080端口启动,如果最终serciceA服务最终以8090启动说明我们在nacos创建的配置生效
2.5启动serciceA服务
如下图,启动serciceA服务发现运行在8090,且在nacos服务列表页可以看到服务注册上去了