一、Nacos简介

Nacos核心提供的两个功能:服务注册与发现,动态配置管理。

1、服务注册与发现

Nacos提供基于DNS和基于RPC的服务发现,即能被用来支持https/http的服务注册与发现,是将自己启动的项目注册到Nacos服务中心,使之能够相互调用。

2、动态配置服务

动态修改配置并实时生效对于服务端,这种服务能够让我们的服务拥有更多的灵活性,不需要重启服务即可做到配置实时生效,非常适合于“配置优先”的服务开发。

二、Nacos安装(windows)

1.详细见《配置以及应用nacos》文章,在这不详细介绍。

三、使用Nacos作为注册中心

1.首先创建一个公共的项目模块,在这里我定义名字为common的模块项目,在pom.xml文件中加入springboot-nacos的依赖!以及阿里巴巴的全局版本配置,

<dependency>    <groupId>com.alibaba.cloudgroupId>    <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>dependency><dependency>    <groupId>com.alibaba.cloudgroupId>    <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>dependency><dependencyManagement>    <dependencies>        <dependency>            <groupId>com.alibaba.cloudgroupId>            <artifactId>spring-cloud-alibaba-dependenciesartifactId>            <version>2.2.3.RELEASEversion>            <type>pomtype>            <scope>importscope>        dependency>    dependencies>dependencyManagement>

2.在其他模块项目中的.yml文件中要加入nacos的配置,如下:

spring:  cloud:    nacos:      discovery:        server-addr: 127.0.0.1:8848  #nacos的地址  application:    name: dadamall-coupon  #nacos的注册中心的名字

3.在启动类中提供一个对外接口,并添加@EnableDiscoveryClient注解,开启注册发现功能。

4.接下来打开nocos可视化面板的服务列表中就可以发现我们注册进来的服务了。

四、想要调用各个模块中的服务

1.想要调用的话需要引入openfeign

<dependency>    <groupId>org.springframework.cloudgroupId>    <artifactId>spring-cloud-starter-openfeignartifactId>dependency>

2.在模块A中的Controller层写一个接口,如:

@RequestMapping("member/list")public R membercoupons(){    CouponEntity couponEntity = new CouponEntity();    couponEntity.setCouponName("满100减10");    return R.ok().put("coupons",Arrays.asList(couponEntity));}

3.在模块B中,想调用模块A中的方法,我们可以创建一个FeignService的接口类,代码如下:

@FeignClient("dadamall-coupon")public interface CouponFeignService {    @RequestMapping("/coupon/coupon/member/list")    R membercoupons();}

这是一个声明式的远程调用方法,需要调用哪个方法就在@RequestMapping写上访问路径的全路径;@FeignClient写上nacos中注册列表的服务名即可!

4.在模块B中的启动类上加上这个注解;它是用来扫描这个目录下的方法。

@EnableFeignClients(basePackages = "com.atdada.dadamall.member.feign")

5.想要测试的话,在模块B中的一个Controller层上写:

@AutowiredFeignService feignService;@RequestMapping("/coupos")public R test(){    MemberEntity memberEntity = new MemberEntity();    memberEntity.setNickname("张三");    R membercoupons = feignService.membercoupons();    return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));}

再次,服务的注册已经结束!

五、Nacos的配置中心

1.首先也要导入配置的jar包,再次上面已经引过nacos配置的包了;

2.创建一个bootstrap.properties的配置文件,它会优先与application.properties加载,填写:

spring.application.name=dadamall-couponspring.cloud.nacos.config.server-addr=127.0.0.1:8848

3.在application.properties配置文件中写上

coupon.user.name=zhangsancoupon.user.age=20

4.在一个Controller中写上:

@Value("${coupon.user.name}")private String name;@Value("${coupon.user.age}")private Integer age;@RequestMapping("/test")public R test(){    return R.ok().put("name",name).put("age",age);}

5.这时我们在请求的时候浏览器会出现下面的结果

6.如果项目在已经上线的时候,我们可以打开配置中心去添加配置,命名规则就是项目名+.properties。

7.想要实时的更改到数据暂时可以在Controller上加一个@RefreshScope的注解,后续我们还可以在bootstrap.properties配置文件这样写:

spring.cloud.nacos.config.ext-config[1].refresh=true

8.命名空间:配置隔离,默认是public(保留空间);默认新增的时候所有配置都在public中有开发,测试,生产,利用命名空间来做环境隔离

9如果想用哪个,或是其他环境需要在bootstrap.properties配置文件配置

spring.cloud.nacos.config.namespace=a*****-****-*****-****-************

10.关于分组的配置,默认是DEFAULT_GROUP分组,想要修改分组也要在bootstrap.properties配置文件配置;项目中的使用:每个微服务创建自己的命名空间,使用配置分组区分环境,dev,test,prod

spring.cloud.nacos.config.group=dev

11.想要配置yml文件也可以在nacos的配置模块添加

12.接下来在bootstrap.properties配置文件配置

spring.cloud.nacos.config.namespace=f9632592-3a22-43c7-8676-5d2d80537356spring.cloud.nacos.config.group=devspring.cloud.nacos.config.ext-config[0].data-id=datasource.ymlspring.cloud.nacos.config.ext-config[0].group=devspring.cloud.nacos.config.ext-config[0].refresh=truespring.cloud.nacos.config.ext-config[1].data-id=mybatis.ymlspring.cloud.nacos.config.ext-config[1].group=devspring.cloud.nacos.config.ext-config[1].refresh=truespring.cloud.nacos.config.ext-config[2].data-id=other.ymlspring.cloud.nacos.config.ext-config[2].group=devspring.cloud.nacos.config.ext-config[2].refresh=true

总结:服务的注册中心在yml中写上nacos的地址以及服务的名字,配置在bootstrap.properties文件中写上

spring.application.name=dadamall-couponspring.cloud.nacos.config.server-addr=127.0.0.1:8848spring.cloud.nacos.config.namespace=f9632592-3a22-43c7-8676-5d2d80537356spring.cloud.nacos.config.group=devspring.cloud.nacos.config.ext-config[0].data-id=datasource.ymlspring.cloud.nacos.config.ext-config[0].group=devspring.cloud.nacos.config.ext-config[0].refresh=truespring.cloud.nacos.config.ext-config[1].data-id=mybatis.ymlspring.cloud.nacos.config.ext-config[1].group=devspring.cloud.nacos.config.ext-config[1].refresh=truespring.cloud.nacos.config.ext-config[2].data-id=other.ymlspring.cloud.nacos.config.ext-config[2].group=devspring.cloud.nacos.config.ext-config[2].refresh=true

nacos 公共_SpringCloud配合注册中心Nacos的使用相关推荐

  1. nacos 公共_技术分享——使用nacos作注册中心和配置中心

    什么是nacos? 首先看下官方的简介: Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Naco ...

  2. Linux启动nacos成功日志_SpringCloud Alibaba-nacos注册中心

    什么是 Nacos?(https://nacos.io) Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量 ...

  3. 服务注册中心Nacos

    文章目录 一.服务注册中心Nacos最佳实践 1.Nacos注册中心简介 背景分析 Nacos概述 构建Nacos服务 初始化配置 服务启动与访问 2.服务注册与调用入门(重点) 业务描述 生产者服务 ...

  4. 阿里注册中心nacos使用整合Dubbo-原创

    阿里注册中心nacos是今年开源的框架,一开始以为就是个zk.后面看了图才明白他对标的竟然是consul\eureka,最重要是完美支持dubbo.我想今年开源它也是别有用意 .(目前nacos0.7 ...

  5. nacos 本地测试_Nacos注册中心落地实践

    前言 公司在19年开始推进同城双活架构,未来规划是在南汇机房出现故障时能把所有读流量切到宝山机房,这样至少保证读请求是没问题的;我们的微服务使用的zookeeper来做服务发现, zk由于它的强一致性 ...

  6. 微服务系列之ZooKeeper注册中心和Nacos注册中心Nacos和Zookeeper对比

    一.ZooKeeper注册中心 Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,推 ...

  7. gateway nacos注册服务_使用Nacos作为微服务注册中心和配置中心

    使用Nacos作为微服务注册中心和配置中心 一.技术简介 Nacos是阿里系开发的兼容Spring Cloud的服务注册中心组件,是微服务国产化的先驱.Nacos作为与Eureka的对比,不仅具有Eu ...

  8. Gateway 转发请求至注册中心Nacos中的服务404问题(网关日志提示availabilityFilteringRule.activeConnectionsLimit = 2147483647)

    Gateway 转发请求至注册中心Nacos中的服务404问题 问题描述 一次练手项目中,原本没问题并且测试过的gateway,再次转发链接的时候返回404状态码.gateway和被调用模块的日志信息 ...

  9. 微服务注册中心 Nacos 实现原理详解!

    Nacos 架构 Provider APP:服务提供者 Consumer APP:服务消费者 Name Server:通过VIP(Virtual IP)或DNS的方式实现Nacos高可用集群的服务路由 ...

最新文章

  1. 园林工程中植物搭配要注意哪些地方?
  2. 调整ViewState的位置,让你的asp.net页面对搜索引擎更友好
  3. linux集群无密码访问,Linux服务器集群通过SSH无密码登录
  4. android eclipse的环境配置
  5. 【Java】睡眠排序
  6. 软件开发工程师证书有用吗_监理工程师证书有用吗?有没有含金量?
  7. postfix + cyrus-sasl2 + courier-authlib + Courier-IMAP + postfixadmin
  8. 保时捷高管透露曾与苹果洽谈CarPlay之外合作事宜
  9. 【ArcGIS|空间分析】叠置分析(易混工具使用)
  10. 11G新特性 -- Expression Statistics
  11. matlab光学原理仿真应用衍射,光学衍射仿真实验系统
  12. android调用虚拟摄像头方法,Android设备虚拟摄像头技术实现
  13. Redis持久化(RDB/AOF)【西橙先生】
  14. 【Go实战基础】程序里面数据是如何显示到浏览器当中的
  15. Ubuntu 20.04 LNMP 环境编译安装
  16. windows无法打开“应用商店”
  17. 设计模式(二)(C++)
  18. 显卡那些GS、GT的名称是什么意思?
  19. YUV数据格式与YUV_420_888
  20. PS学习之小猪佩奇身上纹,掌声送给社会人

热门文章

  1. 如何在Hybris Commerce的backoffice里创建扩展字段
  2. SAP ABAP实用技巧介绍系列之将unicode字符转换成中文
  3. SAP CRM HANA live report的数据源
  4. 安装了但是报错找不到_安装MySQL时由于找不到vcruntime140_1.dll,无法继续安装
  5. find命令过滤 no such_运维老手常用的linux命令操作
  6. 三相pmsm矢量控制仿真模型_学术简报|永磁同步电机无速度传感器控制离散化方法研究...
  7. php 组装二维数组,php实现快速对二维数组某一列进行组装的方法小结
  8. JAVA复习5(总结+循环链表)
  9. 张洪斌 html css,网页设计与制作教学课件作者HTML+CSS+JavaScript张洪斌教学资源KC11120100008_设计文档课件.doc...
  10. 五年级用计算机探究规律教案,人教版五年级上册数学《用计算器探索规律》教案...