栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

nacos简易实现负载均衡

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nacos简易实现负载均衡

目录
  • 一、什么是Nacos?
  • 二、Nacos下载和安装
    • 1. 使用Windows启动
    • 2. 验证nacos是否成功启动
  • 三、Nacos Discovery服务注册/发现
  • 四、简易实现负载均衡
    • 1. 注册者配置
    • 2. 注册者启动类
    • 3. 注册者业务层
    • 4. 消费者配置
    • 5. 消费者启动类
    • 6. 消费者业务层
    • 7. 开始调用接口
    • 8. 遇到问题解决
      • `java.net.UnknownHostException: nacos-provider`


一、什么是Nacos?

英文全称:Dynamic Naming and Configuration Service
是由阿里巴巴团队开发的一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台
Nacos 提供了一系列简单易用的特性,能够帮助我们快速地实现动态服务发现、服务配置等功能。

二、Nacos下载和安装

—> 参考文档
—> github下载
—> 镜像下载

官方推荐的是下载 2.0.3稳定版本

1. 使用Windows启动

cmd输入

startup.cmd -m standalone


2. 验证nacos是否成功启动

http://192.168.10.236:8848/nacos/index.html
账号:nacos , 密码:nacos

三、Nacos Discovery服务注册/发现
  1. 首先引入依赖:
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            2021.1
        
  1. 配置nacos的地址:

nacos.discovery.server-addr=127.0.0.1:8848

  1. 在启动类上加上@EnableDiscoveryClient注解

  1. 查看Nacos服务列表状态


这样子就证明我们的端口作为服务注册到了Nacos中去了!

  1. 服务列表不显示问题

在确保Nacos正常启动,上述操作也配置完毕,还是没有显示服务名称等信息时,请检查spring-boot-starter-parent的版本:

四、简易实现负载均衡

需要创建两个注册者(9001、9002)和一个消费者(8083)

1. 注册者配置
server:
  port: 9001
Spring:
  application:
    name: nacos-provider
  cloud:
    discovery:
      server-addr: localhost:8848
management:
  endpoint:
    web:
      exposure:
        include: '*'
2. 注册者启动类
@EnableDiscoveryClient //开启服务的注册与发现功能
@SpringBootApplication
public class Port9001Application {
    public static void main(String[] args) {
        SpringApplication.run(Port9001Application.class, args);
    }
}
3. 注册者业务层
@RestController
public class Port9001 {
    @Value("${server.port}")
    private String serverPort;
    @GetMapping("/getPort")
    public String getServerPort(){
        return "调用端口 " + serverPort + " 成功!";
    }
}
4. 消费者配置
server:
  port: 8083
Spring:
  application:
    name: nacos-consumer
  cloud:
    discovery:
      server-addr: localhost:8848
#消费者将要去访问的微服务名称
service-url:
  nacos-user-service: http://nacos-provider
5. 消费者启动类
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConsumer8083Application {
    public static void main(String[] args) {
        SpringApplication.run(NacosConsumer8083Application.class, args);
    }
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}
6. 消费者业务层
@RestController
public class Port8083Controller {
    @Autowired
    private RestTemplate restTemplate;
    @Value("${service-url.nacos-user-service}")
    private String serverURL;
    @GetMapping(value = "consumer/nacos")
    public String getDiscovery(){
        
        return restTemplate.getForObject(serverURL+"/getPort",String.class);
    }
}
7. 开始调用接口

调用8083的/consumer/nacos
再次刷新该页面

此处证明完成了远程的调用,同时具有负载均衡的效果!

8. 遇到问题解决 java.net.UnknownHostException: nacos-provider

依赖中加入spring-cloud-loadbalancer即可!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/963109.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号