太原 网站建设公司,怎样做网站 知乎,ppt软件下载免费版,计算机培训班推荐Nacos快速上手 项目环境介绍一、服务注册/服务发现1.引入Spring Cloud Alibaba依赖2.引入Nacos相关的依赖3.引入Load Balance依赖4.配置Nacos的地址 二、修改远程调用代码三、测试四、启动多个服务#xff0c;测试负载均衡五、可能出现的问题 项目环境介绍 请你确保你的服务器… Nacos快速上手 项目环境介绍一、服务注册/服务发现1.引入Spring Cloud Alibaba依赖2.引入Nacos相关的依赖3.引入Load Balance依赖4.配置Nacos的地址 二、修改远程调用代码三、测试四、启动多个服务测试负载均衡五、可能出现的问题 项目环境介绍 请你确保你的服务器或个人主机上已经安装并配置了Nacos 如果没有请先安装Nacos并进行相应配置Nacos安装和配置 这里我们使用一个父子工程的项目来进行演示子工程一个是订单服务order-service一个是商品服务product-service在访问订单服务的时候它就会远程调用我们的商品服务此处订单服务时服务消费者商品服务是服务提供者
远程调用代码
Service
public class OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate RestTemplate restTemplate;public OrderInfo selectOrderById(Integer orderId){OrderInfo orderInfo orderMapper.selectOrderInfoById(orderId);String url http://127.0.0.1:9090/product/orderInfo.getProductId();ProductInfo productInfo restTemplate.getForObject(url, ProductInfo.class);orderInfo.setProductInfo(productInfo);return orderInfo;}
}一、服务注册/服务发现
Nacos的服务注册和服务发现代码一样
1.引入Spring Cloud Alibaba依赖
在父工程的pom文件中的中引入Spring Cloud Alibaba的依赖:
propertiesspring-cloud-alibaba.version2022.0.0.0-Rc2/spring-cloud-alibaba.version
/propertiesdependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactId version${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope
/dependency注意: Spring Boot 和Spring Cloud的版本是有一定对应关系的,Spring Cloud Alibaba也遵循Spring Cloud 的标准,在引入依赖时,一定要确认各个版本的对应关系,Spring Cloud Alibaba和Spring Cloud版本对应关系,参考官方文档:版本发布说明 版本在一定范围内才可以选择使用 2.引入Nacos相关的依赖
在order-service和product-service中引入nacos依赖
dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId
/dependency3.引入Load Balance依赖
同样在order-service和product-service中都引入
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-loadbalancer/artifactId
/dependency4.配置Nacos的地址 可以配置在我们自己的主机上也可以配置在Linux服务器上此处我们选择Linux 配置项Key默认值说明服务端地址spring.cloud.nacos.discovery.server-addr无Nacos Server启动监听的ip地址和端口
spring:application:name: product-service#服务端地址cloud:nacos:discovery:server-addr: http://120.26.87.94:10020/ 当然此处如果使用的是本机作为Nacos服务中心配置项该位自己主机的ip和相应端口即可 二、修改远程调用代码
把代码修改成我们的项目名
Service
public class OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate RestTemplate restTemplate;public OrderInfo selectOrderById(Integer orderId){OrderInfo orderInfo orderMapper.selectOrderInfoById(orderId);String url http://product-service/product/orderInfo.getProductId();ProductInfo productInfo restTemplate.getForObject(url, ProductInfo.class);orderInfo.setProductInfo(productInfo);return orderInfo;}
}别忘了添加负载均衡注解 LoadBalanced
Configuration
public class BeanConfig {LoadBalancedBeanpublic RestTemplate restTemplate(){return new RestTemplate();}
}三、测试
测试接口http://127.0.0.1:8080/order/1
此时启动这两个服务就会发现在Nacos管理界面就已经有这两个服务了 四、启动多个服务测试负载均衡
在services栏中我们可以配置多个服务具体操作步骤如下 右击我们要进行复制的服务然后选择Copy Configuration项然后再弹出的窗口中点击Modify options-Add VM options进行端口配置后续会出现一个新的输入项我们输入-Dserver.port{自定义端口号}再确认即可创建出多个服务实例 启动服务观察Nacos界面就可以看到我们已经添加了多个服务实例 五、可能出现的问题
java.net.UnknownHostException
出现这种问题大概率是因为没有添加负载均衡的依赖
检查是否添加了依赖
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-loadbalancer/artifactId
/dependency服务注册失败
这种情况有可能会有报错日志也可能没有但出现这种情况我们应该检查Spring Cloud Alibaba版本是否是正确的版本发布说明