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

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

相关推荐
编程、小哥哥9 分钟前
netty之Netty与SpringBoot整合
java·spring boot·spring
IT学长编程1 小时前
计算机毕业设计 玩具租赁系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·玩具租赁系统
莹雨潇潇1 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
杨哥带你写代码2 小时前
足球青训俱乐部管理:Spring Boot技术驱动
java·spring boot·后端
郭二哈2 小时前
C++——模板进阶、继承
java·服务器·c++
A尘埃2 小时前
SpringBoot的数据访问
java·spring boot·后端
yang-23072 小时前
端口冲突的解决方案以及SpringBoot自动检测可用端口demo
java·spring boot·后端
沉登c2 小时前
幂等性接口实现
java·rpc
代码之光_19802 小时前
SpringBoot校园资料分享平台:设计与实现
java·spring boot·后端
科技资讯早知道3 小时前
java计算机毕设课设—坦克大战游戏
java·开发语言·游戏·毕业设计·课程设计·毕设