javascript
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的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 六十万的成长_我的EA策略分析和实现
- 下一篇: 2016没有自带公式编辑器_如何在Vis