Nacos
Nacos
版本说明
https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
GitHUub 搜索
点击 wiki ----> 版本说明
版本选型
springcloud alibaba :2.2.7.RELEASE
Spring Cloud:Hoxton.SR12
springboot :2.3.12.RELEASE
推荐使用release 稳定版
使用dependencyManagement 继承多个版本管理,如spring cloud alibaba、springboot
<dependencyManagement >
<dependencies>
<!-- springboot 版本管理-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- spring-cloud-alibaba 版本管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.7.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- spring-cloud 版本管理-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR12</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Nacos Service 搭建
下载Nacos
下载地址:Nacos 对应版本 2.0.3 https://github.com/alibaba/nacos/releases
设置Nacos 单机版启动
编辑 startup.cmd 文件
修改 set MODE=“cluster” 为 set MODE=“standalone”
启动Nacos
双击startup.cmd 文件
访问地址:http://localhost:8848/nacos/index.html
访问成功
账号密码都是nacos
Nacos 客户端搭建
搭建order-nacos 客户端
使用maven 搭建order-nacos客户端
Pom文件添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- nacos 依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
新建application.yml
server:
port: 8011
# 服务名称
spring:
application:
name: order-service
cloud:
nacos:
server-addr: localhost:8848
discovery:
username: nacos
password: nacos
namespace: public
创建主启动类 OrderNacosMain8011
@SpringBootApplication
public class OrderNacosMain8011 {
public static void main(String[] args) {
SpringApplication.run(OrderNacosMain8011.class,args);
}
}
启动 OrderNacosMain8011
访问 Nacos 查看服务列表 order-service 入驻Nacos成功
搭建sotck-nacos 客户端
使用spring Initializr 搭建order-nacos客户端
选取 web
更改stock-nacos pom
在父项目POM中添加子模块
编写application.yml文件
server:
port: 8022
# 服务名称
spring:
application:
name: stock-service
cloud:
nacos:
server-addr: localhost:8848
discovery:
username: nacos
password: nacos
namespace: public
启动StockNacosApplication
访问 Nacos 发现 stock-service 入驻Nacos
使用 服务名 实现远程调用
新建RestTemplateConfig 配置类
@Component
public class RestTemplateConfig {
@Bean
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
新建OrderNacosController
@RestController
@RequestMapping("order-nacos")
public class OrderNacosController {
@Resource
public RestTemplate restTemplate;
@RequestMapping("/orderAdd")
public String orderAdd(){
String stockMsg = restTemplate.getForObject("http://stock-service:8022/stock-nacos/stockReduct", String.class);
return "下单成功" +stockMsg;
}
}
新建StockNacosController
@RestController()
@RequestMapping("/stock-nacos")
public class StockNacosController {
@RequestMapping("/stockReduct")
public String stockReduct(){
return "stock-nacos调用成功";
}
访问 http://localhost:8011/order-nacos/orderAdd 找不到服务
解决办法
重新访问 访问成功
负载均衡演示
复制8022
更新StockNacosController
Nacos 新建命名空间
保护阈值演示
为了防止服务雪崩,不可用的服务超过阈值,就可以访问不可用的服务
一般服务为临时服务,可通过配置设置为永久服务
设置永久实例
server:
port: 8022
# 服务名称
spring:
application:
name: stock-service
cloud:
nacos:
server-addr: localhost:8848
discovery:
username: nacos
password: nacos
namespace: public
ephemeral: false # 永久实例 服务宕机 也不会从注册中心剔除
重启8022 8023 通过编辑服务 设置阈值0.6 之后
停止 8023服务 访问 http://localhost:8011/order-nacos/orderAdd
8022成功
8023失败
下线: 下线的就是停止服务
**演示下线,就直接点击 8022的下线 **
访问http://localhost:8011/order-nacos/orderAdd 发现8022 8023都不可用