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中。我启动了俩个

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

相关推荐
黎雁·泠崖5 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
qq_12498707536 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_6 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.6 小时前
Day06——权限认证-项目集成
java
瑶山6 小时前
Spring Cloud微服务搭建四、集成RocketMQ消息队列
java·spring cloud·微服务·rocketmq·dashboard
abluckyboy7 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
2301_818732067 小时前
前端调用控制层接口,进不去,报错415,类型不匹配
java·spring boot·spring·tomcat·intellij-idea
2501_941982057 小时前
深度对比:Java、Go、Python 实现企微外部群推送,哪个效率更高?
java·golang·企业微信
码字的字节7 小时前
Spring Cloud服务注册与发现(一):手把手搭建Eureka Server,详解高可用配置
spring·spring cloud·eureka
大厂资深架构师7 小时前
Spring Cloud Eureka在后端系统中的服务剔除策略
spring·spring cloud·ai·eureka