naacos
nacos是spring cloud alibaba的组件, spring cloud alibaba遵循spring cloud中定义的服务注册, 服务发现规范. 因此使⽤nacos和使⽤eureka对于微服务来说,并没有太⼤区别.
主要差异在于:
• eureka需要⾃⼰搭建⼀个服务, nacos不⽤⾃⼰搭建服务, 组件已经准备好了, 只需启动即可.
• 对应依赖和配置不同
服务注册/服务发现
nacos的服务注册和服务发现代码⼀样。
引⼊spring cloud alibaba依赖
在⽗⼯程的pom⽂件中的 <dependencymanagement> 中引⼊spring cloud alibaba的依赖:
<properties> <spring-cloud-alibaba.version>2022.0.0.0-rc2</spring-cloud-alibaba.version> </properties> <dependencymanagement> <dependencies> <dependency> <groupid>com.alibaba.cloud</groupid> <artifactid>spring-cloud-alibaba-dependencies</artifactid> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencymanagement>
注意: spring boot 和spring cloud的版本是有⼀定对应关系的. spring cloud alibaba也遵循
spring cloud 的标准, 在引⼊依赖时, ⼀定要确认各个版本的对应关系.
spring cloud alibaba 和spring cloud版本对应关系, 参考官⽅⽂档:-》链接
版本在⼀定范围内可以⾃由选择.
引入nacos依赖
在order-service和product-service中引⼊nacos依赖:
<dependency> <groupid>com.alibaba.cloud</groupid> <artifactid>spring-cloud-starter-alibaba-nacos-discovery</artifactid> </dependency>
引入load balance依赖
<dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-loadbalancer</artifactid> </dependency>
配置nacos地址
配置项 | key | 默认值 | 说明 |
服务端地址 | spring.cloud.nacos.discovery. server-addr | 无 | nacos server 启动监听的ip地址和端⼝ |
spring: application: name: product-service cloud: nacos: discovery: server-addr: 47.98.109.138:8848
服务端调用
1. 修改ip为项⽬名
package order.service; import order.mapper.ordermapper; import order.model.orderinfo; import order.model.productinfo; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.service; import org.springframework.web.client.resttemplate; @service public class orderservice { @autowired private ordermapper ordermapper; @autowired private resttemplate resttemplate; public orderinfo selectorderbyid(integer orderid){ orderinfo orderinfo = ordermapper.selectorderbyid(orderid); string url = "http://product-service/product/"+orderinfo.getproductid(); productinfo productinfo = resttemplate.getforobject(url, productinfo.class); orderinfo.setproductinfo(productinfo); return orderinfo; } }
2. 为resttemplate添加负载均衡注解 @loadbalanced
package order.config; import org.springframework.cloud.client.loadbalancer.loadbalanced; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; import org.springframework.web.client.resttemplate; @configuration public class beanconfig { @bean @loadbalanced public resttemplate resttemplate(){ return new resttemplate(); } }
启动服务
启动两个服务, 观察nacos的管理界⾯, 发现order-service 和product-service 都注册在nacos上了。
测试负载均衡
多次访问“http://127.0.0.1:8080/order/1”,可以看到,每个服务实例接受的请求数量都差不多:
到此这篇关于spring cloud之注册中心之nacos的使用的文章就介绍到这了,更多相关spring cloud注册中心nacos内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论