SPRING CLOUD ALIBABA系列(二)Nacos

Updated on with 0 views and 0 comments

image.png


一、使用 Nacos 实现配置中心

根据https://nacos.io/zh-cn/docs/quick-start.html提示下载最新 release 包,进行解压,并进入 bin 目录下运行

sh startup.sh -m standalone

即可在 Linux 服务器快速搭建 nacos 服务,可以在命令后追加&在后台运行

nacos 默认端口 8848

启动完成之后,访问:http://IP:8848/nacos/,可以进入 Nacos 的管理页面;

我下载的是最新的 0.9.0 版本的,需要使用默认用户名和密码 nacos 进行登录


image.png

至此,nacos 服务已经搭建完成
新建 Spring boot 应用,在 pom 文件引入下面依赖

<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-config</artifactId>
		</dependency>

必须使用 bootstrap.properties 进行相关配置
spring.application.name=alibaba-nacos-discovery-server

nacos server 地址

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

在 nacos 配置管理页面新增配置


image.png

可以直接使用默认配置,只需要按照提示进行操作即可
新建 dataid 为 ${spring.application.name}.properties 的配置项,加入内容为 key=value 格式的数据,在服务端即可获取配置内容


image.png


如果不想使用默认配置 可以如下进行修改


image.png


默认动态刷新,将配置进行推送可以通过设置 spring.cloud.nacos.config.refresh.enabled=false 来关闭动态刷新

另外还支持

  • 可支持 profile 粒度的配置
  • 支持自定义 namespace 的配置

更多详细内容可以参考查阅:https://github.com/spring-cloud-incubator/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-docs/src/main/asciidoc-zh/nacos-config.adoc

二、使用 Nacos 实现服务注册与发现

接下来可以新建服务将其注册到 nacos

新建 Spring boot 应用

<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>
		</dependency>

配置文件加入相关配置


image.png

在启动类加入注解

@SpringBootApplication

@EnableDiscoveryClient

启动类启动,即可将当前服务成功注册到 nacos,详细信息如下


捕获.PNG


image.png


如上图所示

用过阿里云 EDAS 产品的对这个界面会比较熟悉,和 edas 注册中心比较像,可以看出了 Spring Cloud Alibaba 是阿里云产品在良好实践中进行总结和精炼演化而来。

三、使用 Nacos 实现服务消费与负载均衡

仅对 RestTemplate 举例说明
使用如下方法添加 LoadBalanced 注解以实现客户端负载均衡

@Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

由 RestTemplate 调用注册到 nacos 的服务

nacos 宣称其支持 Dubbo/gRPC service、Spring Cloud RESTFul serviceor Kubernetes service