Nacos相关总结

一、Nacos

1、 为什么选择Nacos?
在微服务中,首先需要面对的问题就是如何查找服务(软件即服务),其次,就是如何在不同的服务之间进行通信?如何更好更方便的管理应用中的每一个服务,如何建立各个服务之间联系的纽带,由此注册中心诞生(例如淘宝网卖家提供服务,买家调用服务)。
Nacos(DynamicNaming and Configuration Service)是一个应用于服务注册与发现、配置管理的平台。它孵化于阿里巴巴,成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。

https://nacos.io/zh-cn/docs/quick-start.html

2、服务启动与访问
所有系统中的指令在执行时,首先会从执行指令的当前目录查找指令,假如当前路径没有这个指令,则从操作系统中配置的path环境变量中去查找。
假如path环境变量中也没有找到这个指令,则会提示不是内部或外部命令。

1)Windows启动命令(standalone代表着单机模式运行,非集群模式):
startup.cmd -m standalone

2)Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):
./startup.sh -m standalone

注意:JVM的新生代和老年代
3、在idea中启动nacos
利用脚本 shell script
在这里插入图片描述

二、部分知识补充1

java.net
ServerSocket 会启动一个线程池。并发处理客户端请求,
当线程多时,未处理的任务会形成队列,形成阻塞队列。
底层发送心跳包。

补充1:

1)/provider/echo/{msg}
接收用( @PathVariable(“msg”) String msgs )

2)tomcat服务器默认服务端口是8080

    @Value("${server.port:8080}")
        private String provider;

server.port: 8080
value读取的是配置文件yml中的

3)当服务启动时会向nacos发送心跳包(5秒一次)
nacos 15s检查不到心跳包,会把服务标识为非健康状态。监听到30s左右没有心跳包就认为服务已经死掉。
nacos底层是把服务放到map中。 K是服务名,不能重复。V是一个List集合。List<>。
注册是把服务写到内存中。
503 标识服务不可用 处于不健康状态

三、部分知识补充2

1.先写pom.xml (web和cloud alibaba)
2.写yml配置文件 (端口号、)
3.写启动类

我们访问一个订单模块数据(例如“我的订单”),订单模块中还要呈现商品信息。
商品信息是服务的提供方,订单模块是服务的消费方。
API : 类和接口 亦或者是 一个请求路径
封装:1)狭义:属性私有化,方法能公开则公开

2)广义:一个系统由哪些服务构成,一个服务由哪些模块构成,一个模块由哪些对象构成,一个对象由哪些属性和方法构成

1.定义要调用的API
2.谁去访问这个API

如何整合第三方的Bean?

@Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

构建RestTemplate对象,并将此对象交给spring管理。
后续我们会通过此对象进行远程服务调用

@Bean(“指定的名字”)
使用后,如果后台有对象,不会在调用此方法,保证spring管理的只有一个对象
补充:
500服务器异常。先查看服务器的报错。

ctrl+n 快速查找
ctrl+f12 查看
ctrl+h 查看继承体系

负载均衡

设计模式、策略(算法)
轮询策略
方法一负载均衡:

  			 //1.从注册中心获取服务实例
            ServiceInstance instance = loadBalancerClient.choose("sca-provider");
            //2.基于restTemplate进行服务实例调用
            String ip = instance.getHost();
            int port = instance.getPort();
			//String url="http://"+ip+":"+port+"/provider/echo/"+appName;
            String url=String.format("http://%s:%s/provider/echo/%s",ip,port,appName);

在这里插入图片描述
browser-(url)–consumer-(url)–provider
browser-provider
browser-consumer
方法二负载均衡:

@Bean
    @LoadBalanced
    public RestTemplate loadrestTemplate(){
        return new RestTemplate();
    }
 @Autowired
        private RestTemplate loadrestTemplate;
        /*依赖注入,首先先看类型,其次看方法名。*/
public String doRestEcho3(){

            String url=String.format("http://sca-provider/provider/echo/%s", appName);
            return loadrestTemplate.getForObject(url,String.class);
        }

楼的壁垒瑟克兰德
此处拦截器:实现了服务负载均衡
在使用拦截器的情况下,性能会低。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值