打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
(一)SpringCloudAlibaba的Nacos:注册+配置中心

  技术/杨33

  spring-cloud-alibaba官方中文指导文档:

  github/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

  它支持这么多的组件:

  

  替代Eureka做服务注册中心,替代Config做服务配置中心。

  1、拉取镜像:docker pull nacos/nacos-server:1.1.4

  2、创建并启动Nacos容器:

  docker run --env MODE=standalone --name nacos -p 8848:8848 -d nacos/nacos-server:1.1.4

  特别指定了--env MODE=standalone,env参数是指定容器所处环境,这里是指建立单机版的nacos。

  3、访问古玩管理界面:

  192.168.109.130:8848/nacos/#/login

  默认用户名/密码:nacos/nacos

  

  nacos登录界面

  

  nacos管理界面

  1、编码服务提供者模块

  首先,修改 pom.xml 文件,引入 Nacos Discovery Starter。

  com.alibaba.cloud

  spring-cloud-starter-alibaba-nacos-discovery

  修改application.yml文件

  server:

  port: 9001

  spring:

  application:

  name: cloudalibaba-provider-payment

  cloud:

  nacos:

  discovery:

  server-addr: 192.168.109.130:8848

  使用 @EnableDiscoveryClient 注解开启服务注册与发现功能

  @SpringBootApplication

  @EnableDiscoveryClient

  public class AliProviderPayment9001 {

  public static void main(String[] args) {

  SpringApplication.run(AliProviderPayment9001.class, args);

  }

  }

  Controller接口类

  @RestController

  public class AliPaymentController {

  @Value(value="${server.port}")

  private String port;

  @GetMapping(value="/echo/{string}")

  public String echo(@PathVariable String string) {

  return string + port;

  }

  }

  2、编码服务消费者模块

  pom.xml、application.yml文件,主启动类,这些修改跟服务提供者模块一样。另外添加两个不一样的类:

  配置类引入RestTemplate

  @Configuration

  public class Config {

  @Bean

  @LoadBalanced

  public RestTemplate restTemplate() {

  return new RestTemplate();

  }

  }

  Controller接口类

  @RestController

  public class OrderController {

  @Resource

  private RestTemplate restTemplate;

  @GetMapping(value="/consumer/echo/{str}")

  public String rest(@PathVariable String str) {

  return restTemplate.getForObject("cloudalibaba-provider-payment/echo/" + str, String.class);

  }

  }

  3、启动服务消费者、服务提供者主启动类,nacos默认提供负载均衡功能

  nacos管理界面上的服务列表出现了两个刚刚注册进来的服务。

  

  服务消费者远程调用服务提供者服务的接口:

  localhost:83/consumer/echo/666

  

  1、新建module:

  cloudalibaba-nacosconfig-client3377

  2、修改pom.xml文件

  com.alibaba.cloud

  spring-cloud-starter-alibaba-nacos-config

  com.alibaba.cloud

  spring-cloud-starter-alibaba-nacos-discovery

  3、bootstrap.yml文件

  server:

  port: 3377

  spring:

  application:

  name: cloudalibaba-nacosconfig-client

  cloud:

  nacos:

  discovery:

  server-addr: 192.168.109.130:8848 #nacos作为服务注册中心的地址

  config:

  server-addr: 192.168.109.130:8848 #nacos作为配置中心的地址

  file-extension: yaml

  4、application.yml

  spring:

  profiles:

  active: dev

  5、nacos管理界面新增配置文件

  

  

  dataId 的拼接格式如下:

  ${prefix} - ${springfiles.active} . ${file-extension}

  prefix 默认为spring.application.name 的值。

  springfiles.active 即为当前环境对应的 profile。

  file-extension 为配置内容的数据格式,通过配置项

  spring.cloud.nacos.config.file-extension来配置。

  6、主启动类

  @SpringBootApplication

  @EnableDiscoveryClient

  public class ConfigClientMain3377 {

  public static void main(String[] args) {

  SpringApplication.run(ConfigClientMain3377.class, args);

  }

  }

  7、业务controller类

  @RestController

  @RefreshScope //nacos的动态刷新

  public class ConfigClientController {

  @Value(value="${config}")

  private String configInfo;

  @GetMapping(value="/config/info")

  public String echo() {

  return configInfo;

  }

  }

  8、启动主启动类,访问:

  localhost:3377/config/info

  查询到配置中信息。

  

  重播

  播放

  00:00

  /

  00:00

  正在直播

  00:00

  进入全屏

  画中画

  点击按住可拖动视频

  三级分级目录:Namespace、Group、DataID

  

  1、通过DataID区分环境的配置方案

  空间Namespace、分组Group都是一样的使用默认,DataID不同来区分环境。

  指定springfiles.active和配置文件的DataID,实现在不同的环境下读取不同的配置。

  修改application.yml文件中的springfiles.active属性,进行多环境下的配置文件读取。

  spring:

  profiles:

  #active: dev #开发环境

  active: test #测试环境

  管理界面下,配置文件的DataID不同

  

  2、通过Group区分环境的配置方案

  空间Namespace、DataID都是一样的使用默认,分组Group不同来区分环境。

  

  bootstrap.yml文件中的属性

  spring.cloud.nacos.config.group指定分组名称。

  spring:

  application:

  name: cloudalibaba-nacosconfig-client

  cloud:

  nacos:

  discovery:

  server-addr: 192.168.109.130:8848 #nacos作为服务注册中心的地址

  config:

  server-addr: 192.168.109.130:8848 #nacos作为配置中心的地址

  file-extension: yaml

  group: DEV_GROUP

  3、通过Namespace区分环境的配置方案

  在bootstrap.yml文件中配置

  spring.cloud.nacos.config.group和

  spring.cloud.nacos.config.namespace

  spring:

  application:

  name: cloudalibaba-nacosconfig-client

  cloud:

  nacos:

  discovery:

  server-addr: 192.168.109.130:8848 #nacos作为服务注册中心的地址

  config:

  server-addr: 192.168.109.130:8848 #nacos作为配置中心的地址

  file-extension: yaml

  group: DEV_GROUP

  namespace:

  60fbf70c-8678-4ea5-abd2-4985b79bed99 #命名空间ID

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
构建弹性可扩展的微服务架构:基于Spring Cloud Alibaba 的实践
最强 Spring Cloud 注册中心 Nacos,和艿艿来撸一波~
配置中心新贵:Nacos,阿里开源,真香!!
诚之和:如何理解NacosRibbonClientConfiguration
UC头条:Springboot使用Nacos做配置中心)
五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服