NACOS

安装NACOS后使用启动命令

startup.cmd -m standalone    //win
 
bin
sh startup.sh -m standalone  //linux

启动后在浏览器访问

http://localhost:8848/nacos


//默认密码是

 账号:nacos
 密码:nacos

 进入主界面

将product微服务注册到nacos

1.在pom.xml中添加nacos的依赖

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

在启动类添加注解(由于新版本特性,可加可不加,但是为了规范性还是添加为好)

@EnableDiscoveryClient

 

如果使用window系统可将虚拟机网络禁用此时地址变为本机ip

可以再application.properities中修改配置

修改过后可在nacos中查询到

通过修改其他model可以展示出同样的效果

负载均衡

什么是负载均衡

通俗的讲, 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上 进行执行。

根据负载均衡发生位置的不同,一般分为服务端负载均衡和客户端负载均衡。

服务端负载均衡指的是发生在服务提供者一方,比如常见的nginx负载均衡

而客户端负载均衡指的是发生在服务请求的一方,也就是在发送请求之前已经选好了由哪个实例处理请 求。

添加依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

                                          由于版本问题不添加运行时会报错!!

使用时引入负载均衡客户端

使用轮询方法

发现客户端 

使用随机方法

 

OpenFeign 组件之间的调用

默认负载均衡的策略就是一个轮询

添加依赖

<!--使用openFeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
在类上添加

@EnableFeignClients

说明开启了对OpenFeign的支持

 括号里面写什么就代表要去找哪个微服务

 

配置策略

具体代码(包路径自己填写)。

import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.loadbalancer.core.RandomLoadBalancer;
import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer;
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;

public class LoadBalancerConfig {
    @Bean
    ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment,
                                                            LoadBalancerClientFactory loadBalancerClientFactory) {
        String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME); //loadbalancer.client.name
        // 对应的需要进行负载均衡的名字是什么
        System.out.println("======"+name);
        // product
        return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);
    }
}

添加注解

防止服务熔断

 添加实现类

是实现类生效添加依赖

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

 之前的接口上加一个fallback

 the last one ~    开启feign 对sentinel的支持

feign.sentinel.enabled=true

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值