栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

AlibabaCloud核心组件服务治理Nacos(一)

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

AlibabaCloud核心组件服务治理Nacos(一)

目录

一、 什么是注册中心(服务治理)

二、为什么要用注册中心

三、主流的注册中心

 四、Linux安装nacos

 五、nacos的使用,添加nacos依赖

六、服务之间的调用


一、 什么是注册中心(服务治理)

    服务注册:服务提供者provider,启动的时候向注册中心上报自己的网络信息
    服务发现:服务消费者consumer,启动的时候向注册中心上报自己的网络信息,拉取provider的相关网络信息
    核心:服务管理,是有个服务注册表,心跳机制动态维护,服务实例在启动时注册到服务注册表,并在关闭时注销。

二、为什么要用注册中心

微服务应用和机器越来越多,调用方需要知道接口的网络地址,如果靠配置文件的方式去控制网络地址,对于动态新增机器,维护带来很大问题

三、主流的注册中心

主流的注册中心:zookeeper、Eureka、consul、etcd、Nacos
AlibabaCloud搭配最好的是Nacos,且服务的注册发现之外,还支持动态配置服务

nacos图片 ,参考官网

 四、Linux安装nacos
解压安装包 nacos-server-1.3.2.zip unzip nacos-server-1.3.2.zip 
进入bin目录
启动 sh startup.sh -m standalone
访问 localhost:8848/nacos
默认账号密码 nacos/nacos

 五、nacos的使用,添加nacos依赖

pom.xml


     com.alibaba.cloud
     spring-cloud-starter-alibaba-nacos-discovery

配置nacos的地址:

server:
  port: 9000
​spring:
  application:
    name: wnn-user-service
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

启动类增加注解:

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
//开启服务发现
@EnableDiscoveryClient

六、服务之间的调用

使用nacos做服务间的调用,首先把相关服务按第五步骤的配置配好

订单服务中,根据id 请求视频服务的接口

    @Autowired
    private DiscoveryClient discoveryClient;
​
    @Autowired
    private RestTemplate restTemplate;
​
    @RequestMapping("query")
    public VideoOrder query(int videoId){
​
        VideoOrder videoOrder = new VideoOrder();
        videoOrder.setVideoId(videoId);
​
        List list = discoveryClient.getInstances("wnn-video-service");
​
        ServiceInstance serviceInstance = list.get(0);
​
        Video video = restTemplate.getForObject("http://"+serviceInstance.getHost()+":"+serviceInstance.getPort()+
                "/api/v1/video/find_by_id?videoId="+videoId,Video.class);
​
        videoOrder.setVideoTitle(video.getTitle());
        videoOrder.setVideoId(video.getId());
        return videoOrder;
​
    }

注册到nacos的2个服务

 使用这种方法带来的问题:无法做负载均衡 。比如无法按照节点轮询/weight 权重配置/固定分发等来根据业务需求调用相应接口

解决方法:

引入Ribbon 或者 Feign

https://blog.csdn.net/wnn654321/article/details/122290206

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

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

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