nacos未完善

git源码下载:
https://github.com/
https://github.com/alibaba/nacos/tree/2.2.0
下载后,在解压目录下编译

mvn clean install -DskipTests -Drat.skip=true -f pom.xml

原理

1.启动后,将服务名称和实例注册到注册中心
2.每 隔五秒发送一次心跳,如果超过15,表示这个实例服务不稳定,超过30秒表示该实例挂了
3.调用的时候,从服务端拉取服务,然后通过负载均衡进行访问
4.服务每隔10秒拉取一次,保证服务列表的准确性(当列表发生变化的时候,会发送广播给订阅者,让订阅者更新服务列表 基于UDP协议)

springBoot集成nacos

1引入依赖
  <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
2.添加配置
spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848,localhost:8858,localhost:8888 注册中心地址
        service: msb-stock 实例名,相同的实例名相同
4.启动类中添加注解
@EnableDiscoveryClient //nacos作为注册中心启用
@SpringBootApplication
public class StockApplication {
    public static void main(String[] args) {
        SpringApplication.run(StockApplication.class);
    }
}
5.restTemplate

springCloud通过restTemplate发起http请求进行远程调用

//集成nacos后因为nacos中集成Ribbon,生成的restTemplate bean,
@Autowired
    private LoadBalancerClient loadBalancerClient;
    @Bean
    public RestTemplate restTemplate(){
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.setInterceptors(Collections.singletonList(new LoadBalancerInterceptor(loadBalancerClient)));;
        return restTemplate;

    }
//注解实现restTemplate  Bean
@LoadBalanced //ribbon
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
6.restTemplate发起http请求
// msb-stock nacos中配置的实例名,多个实例可以同名
restTemplate.getForObject("http://msb-stock/stock/reduce/"+ productId,String.class);
//发起请求后,需要经过一个拦截器,拦截机会获取该请求的实例名msb-stock,再通过实例名获取注册的服务列表,在经过负载均衡,发起请求
nacos集群
1.复制相同的nacos实例,配置不同的端口号
application.properties
#端口号
server.port=8848
#If use MySQL as datasource:使用mysql数据库需要放开
 spring.datasource.platform=mysql
 #Count of DB:
 db.num=1
 #Connect URL of DB: 数据库配置
 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
 db.user.0=#####
 db.password.0=####
2.获取本地网络ip,配置的端口号到新建的配置文件

在这里插入图片描述

3.配置文件内容
#2023-05-04T19:48:18.929
192.168.0.104:8848 网络ip:端口号
192.168.0.104:8858
192.168.0.104:8888

集群启动nacos startup.cmd -m -cluster
关闭nacos shutdown.sh

4.nginx负载均衡(配置)
nginx配置文件:需要完善,仅作测试
worker_processes  1;
events {
    worker_connections  1024;
}

stream {
	upstream nacos{
	server 30.42.102.145:8848 max_fails=3 fail_timeout=5s weight=1;
	server 30.42.102.145:8858 max_fails=3 fail_timeout=5s weight=1;
	server 30.42.102.145:8888 max_fails=3 fail_timeout=5s weight=1;
			}
	server {
		listen 88;
		proxy_pass nacos;	
		}
	}
	```
>nginx启动  start nginx.exe
>nginx重新加载配置文件  nginx -s reload
>nginx停止 nginx -s stop
 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值