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

2023-11-15

目录

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

二、为什么要用注册中心

三、主流的注册中心

 四、Linux安装nacos

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

六、服务之间的调用


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

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

二、为什么要用注册中心

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

三、主流的注册中心

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

nacos图片 ,参考官网

 四、Linux安装nacos

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

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

pom.xml

<!--锁定版本-->
<dependencyManagement>
    <dependencies>
        <!--https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies/2.3.3.RELEASE-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.3.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <!--https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies/Hoxton.SR8-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR8</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <!--https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies/2.2.1.RELEASE-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.1.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>

配置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<ServiceInstance> 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AlibabaCloud核心组件服务治理Nacos(一) 的相关文章

随机推荐

  • 用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名

    生活中有很多场景都需要我们签字 签名 如果是一些不重要的场景 我们的签名好坏基本无所谓了 但如果是一些比较重要的场景 如果我们的签名比较差的话 就有可能给别人留下不太好的印象了 俗话说字如其人嘛 本文我们使用 Python 来制作一个艺术签
  • 逐行扫描型Memory LCD显存管理与emWin移植

    因为Memory LCD 的特性 不能设置像素坐标 只能用缓存整体刷新 所以对于Memory LCD来说 emWin移植仅与打点函数有关 这里用Sharp Memory LCD ls013b7dh03 作为实例 LCD的显存 逐行扫描 存放
  • 缓存记录

    1 我们在项目中使用缓存通常都是先检查缓存中是否存在 如果存在直接返回缓存内容 如果不存在就直接查询数据库然后再缓存查询结果返回 这个时候如果我们查询的某一个数据在缓存中一直不存在 就会造成每一次请求都查询DB 这样缓存就失去了意义 在流量
  • 简述锂离子电池的分类及结构

    锂离子电池按所用电解质材料的不同 可分为液态锂离子电池 LIB 和聚合物锂离子电池 PLB 两类 锂电池按工作环境分 高温锂离子电池 低温锂离子电池 常温锂离子电池 按电解质状态分 液态锂离子电池 凝胶锂离子电池固态锂离子电池 按形状分 方
  • uniapp实现横向滚动

  • 【软考】【系统架构设计师】决策论知识点

    1 概念 决策 一词来源于英语Decision Analysis 直译为 做出决定 所谓决策 就是为了实现预定的目标在若干可供选择的方案中 选出一个最佳行动方案的过程 它是一门帮助人们科学地决策的理论 也是管理者识别并解决问题及利用机会的过
  • SQLMAP脚本-sql-labs-Less-26-27a

    testtest sqli labs less 26 and less 26a 观察后端代码 发现空格 or and以及注释符 和 都没了 or and用双写 注释使用 00 空格用 09 0A 0B 0D 20 编写sqlmap脚本命名为
  • PHP运行模式

    PHP运行模式有4钟 1 cgi 通用网关接口 Common Gateway Interface 2 fast cgi 常驻 long live 型的 CGI 3 cli 命令行运行 Command Line Interface 4 web
  • centOS7 安装docker

    centOS7 安装docker centOS7 先更新yum 更新yum sudo yum update 下载必须 yum utils device mapper persistent data lvm2 sudo yum install
  • 本地Docker镜像发布到阿里云的Docker Hub

    1 配置镜像加速器 参考https my oschina net u 182501 blog 1549194 2 命名空间管理 进入https cr console aliyun com namespace index 3 创建镜像仓库 h
  • Java源文件注释

    关于java源程序当中的注释 什么是注释 注释的作用是什么 出现在java的源程序当中 对java源代码的解释说明 注释不会被编译到 class字节码文件当中 一个好的开发习惯应该是多编写注释 这样程序的可读性比较强 java中的注释怎么写
  • C++ 多态 超详细讲解

    文章目录 多态概念引入 1 C 中多态的实现 1 1 多态的构成条件 1 2 虚函数 1 3虚函数的重写 1 4 C 11 override final 1 5 重载 覆盖 重写 重定义 隐藏 2 抽象类 2 1 抽象类的概念 2 2 接口
  • MySQL第四讲 MySql Undo日志 - 对聚簇索引进行CUD操作

    事务需要保证原子性 如果在事务执行过程中出现以下情况 就需要用到undo log 1 事务执行中遇到各种错误 比如服务器本身的错误 操作系统错误甚至是断电导致的错误 2 事务在执行过程手动rollback结束当前事务 每当对一条记录进行改动
  • STM32 定时器中断

    通用定时器工作过程 时钟选择 计数器时钟可以由下列时钟源提供 内部时钟 CK INT 外部时钟模式1 外部输入脚 TIx 外部时钟模式2 外部触发输入 ETR 内部触发输入 ITRx 使用一个定时器作为另一个定时器的预分频器 如可以配置一个
  • 环形队列原理,全网最通俗易懂

    队列是什么 队列是一种很常见的数据结构 满足先进先出的方式 如果我们设定队列的最大长度 那就意味着进队列和出队列的元素的数量实则满足一种动态平衡 如果我们把首次添加入队列的元素作为一个一维坐标的原点 那么随着队列中元素的添加 坐标原点到队尾
  • 六一儿童节 全网最全的微服务+Outh2套餐,你确定不来试一试?(入门到精通,附源码)满足你的味蕾需要(二)

    咱们废话不多说 直接开干 目录 一 项目目录 二 Token 三 授权服务器oauth 1 pom 2 application 3 OauthApp启动类 4 DiyUserDetails 5 MyUserDetailService 6 K
  • 爬虫项目二十:用Python对58租房信息进行爬取

    文章目录 前言 一 分析url 二 制造url 三 详情url 四 解析页面 总结 前言 用Python爬下58同城租房详情信息 仅供学习使用 已发现弊端 封IP严重 提示 以下是本篇文章正文内容 下面案例可供参考 一 分析url 第一页
  • 数学建模学习笔记——插值与拟合

    数学建模学习笔记 插值与拟合 一 基础知识储备 1 插值 1 1 拉格朗日插值 1 2 牛顿插值 1 3 分段线性插值 1 4 Hermite插值 1 5 三次样条插值 1 6 B样条函数插值 1 7 二维插值 2 曲线拟合的线性最小二乘法
  • 如何设置python路径并在powershell链接,在PowerShell中为Python设置路径?

    I have two Python versions on my machine Windows Vista 2 6 located in C Program files and 2 7 located in C 1 I open Powe
  • AlibabaCloud核心组件服务治理Nacos(一)

    目录 一 什么是注册中心 服务治理 二 为什么要用注册中心 三 主流的注册中心 四 Linux安装nacos 五 nacos的使用 添加nacos依赖 六 服务之间的调用 一 什么是注册中心 服务治理 服务注册 服务提供者provider