nacos注册中心之服务注册

微服务是一种经过良好架构设计的分布式架构方案,特征:

1、单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。

2、面向服务:微服务对外暴露业务接口

3、自治:团队独立,技术独立,数据独立,部署独立

4、隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。

因为每个服务之间是互相独立的,就连对应的数据库信息都是独立的,他们之间各自完成各自的服务,不会互相影响,具有隔离性。

但问题也就有了,我们在开发一个项目时,肯定要开发不止3,4个微服务,需要开发上百个微服务都是有可能的,且每个微服务实现的功能都很单一,在我们进行复杂一点的操作时就需要多个微服务互相调用。那么海量的微服务,我们应该怎么去管理他们,并且怎么让他们之间实现互相调用呢?

nacos注册中心就是来帮助我们做这个的:

我们都知道在微服务中有服务提供者和服务消费者。服务提供者:一次业务中,被其他微服务调用的服务。(提高接口给其他微服务);服务消费者:一次业务中,调用其他微服务的服务(调用其他微服务的接口)。

在服务提供者和服务消费者等微服务启动时,就会向nacos注册中心发送注册信息,信息包括本服务的名字(配置中自定)和本微服务的端口号(暴露调用接口)等等信息。

这样nacos注册中心中就有了所有微服务的相关信息,在服务消费者需要调用服务提供者的服务时,就只需要向nacos注册中心根据服务名称去拉取对应的服务,nacos注册中心就会把调用该服务需要的所有信息发送给服务消费者,这样服务消费者就可以根据获取的端口和服务名称发送远程调用了。

同时为了防止已经在nacos注册中心完成注册的服务在调用中途挂了,而导致整个项目出现问题,nacos注册中心会让注册的服务每隔几秒或十几秒向nacos发送一次心跳,来向nacos证明该服务还活着,还能正常工作。

下面让我们先来下载nacos,网址:Tags · alibaba/nacos · GitHub

选择你想下载的版本就好了。

在注册后,你会得到一个nacos文件夹。

然后打开终端,在终端中启动nacos:先在终端中切换到nacos文件夹中的bin目录。

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

然后在浏览器中打开网址:http://localhost:8848/nacos

默认登陆账号和密码都是:nacos

如果启动成功就会显示这样的页面:

目前我还没有启动微服务并注册到nacos,所有现在为空 。

在我们需要启动并注册到nacos的服务的application.yml文件中应该声明好对应的数据库连接信息、本服务端口和nacos的地址。

XML 复制代码
server:
  port: 8088   #本服务端口号
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud?useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: quwenhao
    driver-class-name: com.mysql.jdbc.Driver
  application:
      name: orderservice  #注册到nacos中本服务的名称,后面会根据该名称做服务的远程调用
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 # nacos服务地址
#以后操作数据库mybatis的配置
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true

这样后启动该服务就被注册到nacos中。我启动了俩个

我们可以点击 详细 去查看该微服务的详细信息

相关推荐
好家伙VCC6 分钟前
**神经编码新视角:用Python实现生物启发的神经信号压缩与解码算法**在人工智能飞速发展的今天
java·人工智能·python·算法
一灯架构6 小时前
90%的人答错!一文带你彻底搞懂ArrayList
java·后端
Y4090017 小时前
【多线程】线程安全(1)
java·开发语言·jvm
布局呆星8 小时前
SpringBoot 基础入门
java·spring boot·spring
风吹迎面入袖凉8 小时前
【Redis】Redisson的可重入锁原理
java·redis
w6100104668 小时前
cka-2026-ConfigMap
java·linux·cka·configmap
语戚9 小时前
力扣 968. 监控二叉树 —— 贪心 & 树形 DP 双解法递归 + 非递归全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·
quxuexi9 小时前
网络通信安全与可靠传输:从加密到认证,从状态码到可靠传输
java·安全·web
hrhcode10 小时前
【java工程师快速上手go】二.Go进阶特性
java·golang·go