nacos 公共_SpringCloud配合注册中心Nacos的使用
一、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的使用相关推荐
- nacos 公共_技术分享——使用nacos作注册中心和配置中心
什么是nacos? 首先看下官方的简介: Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Naco ...
- Linux启动nacos成功日志_SpringCloud Alibaba-nacos注册中心
什么是 Nacos?(https://nacos.io) Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量 ...
- 服务注册中心Nacos
文章目录 一.服务注册中心Nacos最佳实践 1.Nacos注册中心简介 背景分析 Nacos概述 构建Nacos服务 初始化配置 服务启动与访问 2.服务注册与调用入门(重点) 业务描述 生产者服务 ...
- 阿里注册中心nacos使用整合Dubbo-原创
阿里注册中心nacos是今年开源的框架,一开始以为就是个zk.后面看了图才明白他对标的竟然是consul\eureka,最重要是完美支持dubbo.我想今年开源它也是别有用意 .(目前nacos0.7 ...
- nacos 本地测试_Nacos注册中心落地实践
前言 公司在19年开始推进同城双活架构,未来规划是在南汇机房出现故障时能把所有读流量切到宝山机房,这样至少保证读请求是没问题的;我们的微服务使用的zookeeper来做服务发现, zk由于它的强一致性 ...
- 微服务系列之ZooKeeper注册中心和Nacos注册中心Nacos和Zookeeper对比
一.ZooKeeper注册中心 Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,推 ...
- gateway nacos注册服务_使用Nacos作为微服务注册中心和配置中心
使用Nacos作为微服务注册中心和配置中心 一.技术简介 Nacos是阿里系开发的兼容Spring Cloud的服务注册中心组件,是微服务国产化的先驱.Nacos作为与Eureka的对比,不仅具有Eu ...
- Gateway 转发请求至注册中心Nacos中的服务404问题(网关日志提示availabilityFilteringRule.activeConnectionsLimit = 2147483647)
Gateway 转发请求至注册中心Nacos中的服务404问题 问题描述 一次练手项目中,原本没问题并且测试过的gateway,再次转发链接的时候返回404状态码.gateway和被调用模块的日志信息 ...
- 微服务注册中心 Nacos 实现原理详解!
Nacos 架构 Provider APP:服务提供者 Consumer APP:服务消费者 Name Server:通过VIP(Virtual IP)或DNS的方式实现Nacos高可用集群的服务路由 ...
最新文章
- 园林工程中植物搭配要注意哪些地方?
- 调整ViewState的位置,让你的asp.net页面对搜索引擎更友好
- linux集群无密码访问,Linux服务器集群通过SSH无密码登录
- android eclipse的环境配置
- 【Java】睡眠排序
- 软件开发工程师证书有用吗_监理工程师证书有用吗?有没有含金量?
- postfix + cyrus-sasl2 + courier-authlib + Courier-IMAP + postfixadmin
- 保时捷高管透露曾与苹果洽谈CarPlay之外合作事宜
- 【ArcGIS|空间分析】叠置分析(易混工具使用)
- 11G新特性 -- Expression Statistics
- matlab光学原理仿真应用衍射,光学衍射仿真实验系统
- android调用虚拟摄像头方法,Android设备虚拟摄像头技术实现
- Redis持久化(RDB/AOF)【西橙先生】
- 【Go实战基础】程序里面数据是如何显示到浏览器当中的
- Ubuntu 20.04 LNMP 环境编译安装
- windows无法打开“应用商店”
- 设计模式(二)(C++)
- 显卡那些GS、GT的名称是什么意思?
- YUV数据格式与YUV_420_888
- PS学习之小猪佩奇身上纹,掌声送给社会人
热门文章
- 如何在Hybris Commerce的backoffice里创建扩展字段
- SAP ABAP实用技巧介绍系列之将unicode字符转换成中文
- SAP CRM HANA live report的数据源
- 安装了但是报错找不到_安装MySQL时由于找不到vcruntime140_1.dll,无法继续安装
- find命令过滤 no such_运维老手常用的linux命令操作
- 三相pmsm矢量控制仿真模型_学术简报|永磁同步电机无速度传感器控制离散化方法研究...
- php 组装二维数组,php实现快速对二维数组某一列进行组装的方法小结
- JAVA复习5(总结+循环链表)
- 张洪斌 html css,网页设计与制作教学课件作者HTML+CSS+JavaScript张洪斌教学资源KC11120100008_设计文档课件.doc...
- 五年级用计算机探究规律教案,人教版五年级上册数学《用计算器探索规律》教案...