SPRING CLOUD ALIBABA系列(二)Nacos 有更新!

Published on with 442 views


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

Responses