SPRING CLOUD ALIBABA 系列 (二)Nacos

本贴最后更新于 1864 天前,其中的信息可能已经时过境迁

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

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 160 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...