Nacos-负载均衡

下载nacos服务端

在GitHub(https://github.com/alibaba/nacos/releases)下载nacos service并解压(Windows版本)。
在这里插入图片描述
在conf文件夹里面的application.properties里面可以修改nacos service的启动端口,默认8848

### Default web server port:
server.port=8848

启动nacos service

Windows命令控制台进入bin文件夹执行命令:startup.cmd -m standalone
在这里插入图片描述
访问nacos控制端(http://localhost:8848/nacos),默认账号密码都是“nacos”,进入下面的界面,说明nacos服务端就安装成功了。

nacos客户端引入

在父工程pom文件,dependencyManagement标签添加spring alibaba cloud依赖管理

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

在子模块添加nacos客户端依赖

<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

添加application.yml系统配置

spring:
  application:
    name: user-service # 服务名称
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #nacos服务地址,这里不是全URL  只是ip:port

然后启动子模块,在nacos服务端就可以看到注册信息
在这里插入图片描述

nacos负载均衡

nacos和eureka都实现了同样的spring规范,所以很多代码都可以复用,实现负载均衡的方式
配置类注入@Bean

@Configuration
public class MyConfig {
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

    // 更改eureka负载均衡配置,方式一:这个加一个bean  这个方式是全局的所有的服务都将用这个策略
    @Bean
    public IRule randomIRule(){
        return new RandomRule();
    }
}

方式二:配置文件

user-service:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

nacos 服务分级存储模型

nacos服务分级存储模型是在原来服务的基础上增加了集群和实例。
集群:如有不同的机房,成都一个机房,上海一个机房,重庆一个机房,就可以在每个地区布置一个集群,成都的用户访问成都的集群,上海的用户访问上海的集群,这样速度会快很多。
实例:一个机房的某台机子部署了某个服务,例如服务器A部署了userservice的服务

设置实例的集群属性

在服务的配置文件application.yml添加配置,重启服务

spring:
  application:
    name: user-service # 服务名称
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        cluster-name: chongqing #集群名称

然后再nacos控制端就可以看见不同集群对应的实例
在这里插入图片描述
到这一步还没有实现访问同集群的服务,如果选择服务是负载均衡做的,所以还需要修改负载均衡策略,实现集群访问。

user-service:
  ribbon:
    NFLoadBalancerRuleClassNamecom.alibaba.cloud.nacos.ribbon.NacosRule

如果同一个集群里面有多个相同的实例,这时候nacos采用的是随机访问。但是也可以通过配置实例权重实现比例访问。
服务管理-》服务列表-》点击“详情”-》选择实例点击“编辑”-》修改权重。
这样就可以实现,权重越高的服务被访问的概率就越大。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值