Nacos(注册中心)

有关Spring Cloud Alibaba之前写过三篇文章。

Spring Cloud Alibaba(1)---入门篇

Spring Cloud Alibaba(2)---RestTemplate微服务项目

Spring Cloud Alibaba(3)---Nacos概述

有关注册中心,之前有写过Eureka注册中心

SpringCloud(3)---Eureka服务注册与发现

前言

有关Nacos客户端的搭建和Nacos的介绍在 Spring Cloud Alibaba(2)---Nacos概述 有讲到,所以这里不在陈述。因为是要实现注册中心,所以一定是要有多个微服务,

上一篇博客 RestTemplate微服务项目 已经搭建好一个脚手架,这篇是在它的基础上添加Spring Cloud Alibaba框架和Nacos组件。

一、概述

1、没有服务注册中心

正常逻辑如果没有注册服务发现中心的话,订单服务如何去调取商品服务呢?

我们可以将服务调用 域名端口号 写死到代码或配置文件中,然后通过HTTP请求,这样做是可以,但有很多不足。

1、人工维护慢慢会出现瓶颈和问题:新增服务或服务扩容,所有依赖需要新增修改配置;
2、某台服务器挂了还要手动摘流量;服务上下线变更时效慢;
3、人工配置的话容易出现错误或漏配

这时你会想如果能让服务自动化完成配置(注册)和查找(发现)就好了,于是乎服务注册发现就应运而生。

2、Nacos注册中心理论

这里把这个图片做个简单解释

1. 订单服务和商品服务启动的时候, 会注册到服务发现中心(Nacos), 告诉它,我的ip和端口号是什么。
2. 订单服务要调商品服务的时候,会先去注册列表获取所以商品服务的注册信息(ip+端口号)。
3. 拿到了商品服务的ip和port, 接下来就可以调用商品服务了.

我们可以看出有了注册服务中心, 订单服务 需要知道 商品服务 的地址和端口号不需要通过我们去配置而是可以直接去注册中心拿到。

二、项目搭建

1、启动Nacos客户端

有关Nacos客户端的搭建之前有说过,这里不在陈述

sh startup.sh -m standalone

2、父工程(mall-parent)

对于父工程,只要添加SpringCloudAlibaba相关jar包就可以了

pom.xml

            <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR8</version>
<type>pom</type>
<scope>import</scope>
</dependency> <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>

3、商品微服务(mall-goods)-消费方

这里需要修改三个地方:pom.xmlSpringBoot启动类bootstrap.yaml配置类

1).pom.xml

添加Nacos客户端jar包

  <!--添加nacos客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2).bootstrap.yaml配置类

注册到指定Nacos客户端

spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848

3).SpringBoot启动类

添加@EnableDiscoveryClient注解

@EnableDiscoveryClient
@SpringBootApplication
@MapperScan("com.jincou.goods.dao")
public class GoodsApplication { public static void main(String [] args){
SpringApplication.run(GoodsApplication.class,args);
} }

4、订单微服务(mall-order)-提供方

这里同样需要修改三个地方:pom.xmlSpringBoot启动类bootstrap.yaml配置类,代码和上面一样这里就不在贴出。

三、测试

商品微服务采用集群方式启动,端口号分别为:6001、6002
订单微服务未采用集群方式启动,订单服务端口号:7001

上面都启动成功后,我们来访问Nacos客户端。

http://127.0.0.1:8848/nacos

从图中可以看出 在服务列表上

 mall-goods 健康实例数有两个。因为商品服务商品是启动了2个。
mall-order 健康实例数只有一个。

我们可以在看下,商品服务列表中的详情,点进去之后,可以看出商品服务集群的端口

总结 这篇博客也是比较简单了来学习了Nacos作为服务注册中心,下一篇博客开始写Nacos作为配置中心

GitHub地址:spring-cloud-alibaba-study

少说多做,句句都会得到别人的重视;多说少做,句句都会受到别人的忽视。(4)

Spring Cloud Alibaba(4)---Nacos(注册中心)的更多相关文章

  1. Spring Cloud Alibaba 使用nacos 注册中心

    ### 背景 上一文我们讲到了如何去搭建注册中心,这一次我们讲述如何使用nacos作为注册中心 ### spring-cloud-alibaba-basis 创建基础依赖 首先我们创建一个spring ...

  2. Spring Cloud Alibaba(5)---Nacos(配置中心)

    Nacos(配置中心) 有关Spring Cloud Alibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring C ...

  3. Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

    Nacos持久化Mysql8.0版本 有关Nacos之前写过三篇文章. Spring Cloud Alibaba(3)---Nacos概述 Spring Cloud Alibaba(4)---Naco ...

  4. Spring Cloud Alibaba(2)---Nacos概述

    Spring Cloud Alibaba(2)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...

  5. Spring Cloud Alibaba(3)---Nacos概述

    Spring Cloud Alibaba(3)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...

  6. spring cloud实战 1-高可用注册中心

    创建父maven项目 提交代码至GitHub 创建eureka-server-1 项目搭建两种方式: 父pom中继承spring-boot-starter-parent,子pom中直接结成父pom.该 ...

  7. Spring Cloud 系列之 Consul 注册中心(二)

    本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Consul 注册中心(一) 本篇文章讲解 Consul 集群环境的搭建. Consul 集群 上图是一个简单的 Co ...

  8. Spring Cloud Alibaba 整合 Nacos 实现服务配置中心

    在之前的文章 <Nacos 本地单机版部署步骤和使用> 中,大家应该了解了 Nacos 是什么?其中 Nacos 提供了动态配置服务功能 一.Nacos 动态配置服务是什么? 官方是这么说 ...

  9. Spring Cloud Alibaba 教程 | Nacos(五)

    扩展配置(extended configurations) 通过之前的学习,我们知道应用引入nacos配置中心之后默认将会加载Data ID= ${prefix} - ${spring.profile ...

随机推荐

  1. dev 控件获得所有的EFDEVGRID

    //获得当前Grid DevExpress.XtraGrid.GridControlNavigator GCN2 = sender as DevExpress.XtraGrid.GridControl ...

  2. 看完了进程同步与互斥机制,我终于彻底理解了 PV 操作

    尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...

  3. Kubernetes 实战 —— 01. Kubernetes 介绍

    简介 P2 Kubernetes 能自动调度.配置.监管和故障处理,使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维团队的帮助. Kubernetes 同时能让运维团队监控整个系统,并且在硬 ...

  4. Markdown的基本用法与下载

    Markdown的基本用法与下载typora 下载typora 1.在浏览器搜索typora 2.然后点进去 3.往下翻点击Download 4.看自己是什么系统然后在选择 5.选好系统以后再去去选择 ...

  5. Java基础自学小项目

    实现一个基于文本界面的<家庭记账软件> 需求:能够记录家庭的收入,支出,并能够收支明细表 主要涉及一下知识点: - 局部变量和基本数据类型 - 循环语句 - 分支语句 - 方法调用和返回值 ...

  6. 订单退款&重复支付需求疑问点归纳整理

    更新历史记录: 更新内容 更新人 更新时间 新建 Young 2020.12.10  16:45 更新产品疑问解答 Young 2020.12.11  10:14 更新退款权益终止时间 Young 2 ...

  7. LAB1 启动操作系统

    从机器上电到运行OS发生了什么? 在电脑主板上有一个Flash块,存放了BIOS的可执行代码.它是ROM,断电不会丢掉数据.在机器上电的时候,CPU要求内存控制器从0地址读取数据(程序第一条指令)的时 ...

  8. 安全计算环境之剩余信息保护-windows

    参考https://blog.csdn.net/ubjewen/article/details/107587951 应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除 交互式登录: 之前登录到 ...

  9. P1071 潜伏者(JAVA语言)

    //HashMap大法好 题目描述 RR国和SS国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于SS国的RR 国间谍小CC终于摸清了 SS 国军用密码的编码规则: 1. S ...

  10. MySQL的安装及使用

    安装MySQL 这里建议大家使用压缩版,安装快,方便.不复杂. 1.MySQL软件下载 mysql5.7 64位下载地址: https://dev.mysql.com/get/Downloads/My ...