nacos 2.0.X的使用和注意事项

问题:

在使用高版本的nacos中之前低版本的使用方式是有所变化的,那这些变化是什么,如何解决?

我使用的是springboot版本:2.7.3;springcloud:2021.0.6;springcloud-alibaba:2021.0.5.0

本次只说明在linux环境中:

一、准备环境:

一、启动虚拟机:

一、创建或启动之前的:

略:

二、上传nacos并解压:

一、解压:

# 先对nacos进行解压
tar -xvf nacos.XXXX.tar

二、开放端口并启动nacos:

# 说明:在nacos 2.X 的版本需要额外开放一个端口,是9848,也就是8848+1000
# 因为在nacos2.X的版本,新增了gRPC的通信方式,所有需要开放这个9848端口

# 单机启动nacos:
[root@localhost bin]# pwd
/usr/local/cloud/nacos/nacos/bin
[root@localhost bin]# ./startup.sh -m standalone

#开启防火墙
 [root@localhost bin]# systemctl start firewalld
 #开放9848端口
 [root@localhost bin]# firewall-cmd --zone=public --add-port=9848/tcp --permanent
 #使配置生效
 [root@localhost bin]# firewall-cmd --reload
 #查看所有端口
 [root@localhost bin]# firewall-cmd --zone=public --list-ports


三、查看nacos服务端:

在浏览器输入:http://虚拟机地址:8848/nacos

账号密码默认是nacos

三、代码整合:

一、导入依赖:

    # 提示:父工程是springcloud-alibaba,已经指定的版本,所以我这里不需要指定版本
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

二、编写bootstrap配置信息:

一、导入依赖:

# 我使用的springboot版本是2.7.3,如果不导入依赖,bootstrap.yml配置文件是不会生效的
# 导入这个依赖就是bootstrap.yml为件生效
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

 二、向nacos注册中心注册:

# 这个配置是在bootstrap.yml配置的
spring:
  cloud:
    nacos:
      #      向服务注册自己
      discovery:
        server-addr: xxx.xxx.xx.xx:8848
    #例如:server-addr: 192.168.232.114:8848

三、主启动类添加注解:

@SpringBootApplication
# 开启nacos的发现
@EnableDiscoveryClient
public class ConsumerOrder80 {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerOrder80.class,args);
    }
}

四、远程调用:

一、导入依赖:

       # 这个版本是不需要指定的,springcloud已经指定了
# 作用:让RestTemplate远程调用生效
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
        </dependency>

二、编写RestTemplate配置类:

@Configuration
public class RPCConfig {
    @Bean
    //    可以解析服务的应用名去访问
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

三、指定需要调用的服务名:

@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private OrderService orderService;
    @GetMapping("/findAll")
    public Result findAll(){
        List<Order> orderList = orderService.findAll();
        return Result.ok(orderList);
    }
    //    provider-payment8001为远程服务名
    private final static String PAYMENT_URL = "http://provider-payment8001/payment/2";

    @GetMapping("/{orderId}")
    public String OrderTest(@PathVariable("orderId") Integer orderId) {
        String returnPayment = restTemplate.getForObject(PAYMENT_URL, String.class);
        return "消费记录ID:" + orderId + "\t" + returnPayment;
    }
}

四、启动测试:

五、注意:

注意:在高版本的springcloud中,没有ribbon,更加没有IRule接口,不能直接向低版本一样自己创建一个bean,可以直接修改负载均衡方式,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值