您好,登录后才能下订单哦!
SpringCloud如何实现整合Nacos?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
SpringCloud 版本
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.SR2</version> <type>pom</type> <scope>import</scope> </dependency>
Nacos pom
<!--配置中心pom--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${alibaba-nacos-config.version}</version> </dependency> <!--服务发现pom--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${alibaba-nacos-discovery.version}</version> </dependency>
数据库pom
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.conn.version}</version> </dependency>
order 项目 bootstrap.yml 配置
spring: application: name: order-server profiles: active: dev cloud: nacos: config: server-addr: 10.0.0.51:8848 # 配置中心nacos的地址 file-extension: yml # 配置文件后缀(格式) group: business-app # 分组名称 namespace: ${spring.profiles.active} # 命令空间,可以用来区分不同的环境 discovery: server-addr: 10.0.0.51:8848 # 服务发现地址nacos的地 namespace: ${spring.profiles.active}
server: port: 8056
在 Nacos的控制台左侧找到命名空间的菜单,新增命名空间
命名空间id : dev
命名空间名称: dev
描述:开发环境
配置中心功能-测试
在配置管理-》配置列表右侧,找到 + 的标志,点击后新增配置
将yml 中的配置添入进去
之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
上面配置好后,可以启动项目
启动日志:
Ignore the empty nacos configuration and get it based on dataId[order-server.yml] & group[business-app] 2020-09-16 14:05:07.053 WARN 27342 --- [ main] c.a.c.n.c.NacosPropertySourceBuilder : Ignore the empty nacos configuration and get it based on dataId[order-server-dev.yml] & group[business-app] 2020-09-16 14:05:07.053 INFO 27342 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='order-server-dev.yml,business-app'}, NacosPropertySource {name='order-server.yml,business-app'}, NacosPropertySource {name='order-server,business-app'}]} 2020-09-16 14:05:07.077 INFO 27342 --- [ main] com.order.OrderApplication : The following profiles are active: dev
从日志可以看到他会从nacos上匹配 based on dataId[order-server-dev.yml] & group[business-app] 和 [order-server.yml] & group[business-app] 配置文件。并且项目也是启动成功的,因为项目中加入了数据库的pom,如果没有获取到配置会启动失败。
服务发现功能-测试
按照上面yml 中的配置,启动后在服务列表中看到我们的项目
按照上面的配置,再创建一个项目 account-server ,注意修改新项目的spring.application.name
在order 项目的pom中添加feign 配置
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
测试用户下单成功后,扣减帐户钱。order 调用 account 服务,使用feign,跟一般的feign使用一样。 启动account服务
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。