3.3 Spring Cloud 开发微服务 API 注册到 Nacos| 学习笔记

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 快速学习 3.3 Spring Cloud 开发微服务 API 注册到 Nacos。

开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 3.3 Spring Cloud 开发微服务 API 注册到 Nacos】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/60/detail/1096


3.3 Spring Cloud 开发微服务 API 注册到 Nacos

 

内容介绍

一、 下载安装、启动 Nacos 服务

二、 修改 Spring Cloud 微服务项目注册到 Nacos 中心

三、 Nacos 微服务管理中心

 

本节课接着讲 Nacos 的实战开发。

Nacos 是阿里巴巴来源的注册和配置中心,这是非常重要的技术作为扩展知识的话希望各位能够学到一些实用的技术。当然 Nacos 目前在微服务 Spring Cloud 这一块也用的非常多,不仅是实现了 Dubbo,而且和其他语言也结合的比较好。

 

一、下载安装、启动 Nacos 服务

1. 微服务集成 Nacos

(1)启动 Nacos

(2)微服务注册到 Nacos

(3)客户端连接 Nacos,调用微服务

实战的第一步是要下载安装 Nacos 服务。Nacos 在早期对比 Eureka 时可以知道, Eureka 是需要构建 Spring boot,加入 Eureka 的依赖更改配置,加注解就可以启动了。但是现在 Nacos 直接打包构建就完成了,下载官方最新的 jar 包,然后启动就可以了。当然也可以自己更改默认配置,不改也可以,也就是8848,珠穆朗玛峰的高度。接下来就是可以改造整个微服务,把微服务想办法注册到 Nacos 服务中心里,然后去调用整个微服务看能不能成功。这是要做的第一步,升级改造微服务的整个架构。

2. 启动 Nacos 服务器

(1)https://github.com/alibaba/nacos

(2)Linux/Unix/Mac

(3)Standalone means it is non-cluster Mode.* sh startup.sh -m standalone

(4)Windows

(5)cmd startup.cmd 或者双击 startup.cmd 文件

然后是可以去官网下载,因为这里双击容易出错,里面有个叫 startup.cmd,到时候会演示一下。Mode 就是直接启动 startup 就行了,-m 是指定参数,用Standalone 表示单点模式,开发社区都可以用单点模式,生产环境可以用继续模式,保证可用性和高并发问题。然后 Mac、Linux、Windows 这几个系统都可以。比如 MAC OS 苹果系统启动 Nacos

 

二、修改 Spring Cloud 微服务项目注册到 Nacos 中心

Java Spring Cloud 微服务

1. POM

<dependency>

<groupld>org.springframework.cloud</groupld>

<artifactld>spring-cloud-starter-alibaba-nacos-discovery</artifactld>

</dependency>

2. 配置

server.port=18080

spring.application.name=microservice

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

3. 代码 REST API

接下来做实战练习。

实战练习的话要去改造服务,改造服务最重要的一点就是要加入一个 Nacos 的依赖。假设一个 Nacos 已经运行起来了,接着就改造微服务项目使其注册进来,然后更改配置文件,配置文件的地址将之前的 Eureka 地址切换掉就可以了。之后会演示。

 

三、Nacos 微服务管理中心

后面注册进来就可以去监控、管理微服务,包括后面配置的一系列的更新操作。这里都是 Nacos 已经提供好了,可以非常方便的进入 Nacos 的监控界面,登陆之后就可以看见里面的监控服务信息,应用了哪些服务包括服务列表的状态是怎么样的。

前提是这里 Eureka 的界面还是属于英文界面,作为中国的公司其实还不太习惯,Nacos 就比较接地气,相对来说还是有中文版、英文版等多种语言支持,还有权限控制、命名空间、集群管理,还有后面会讲解到的很重要的统一配置服务。可以直接使用非常方便。

下面给大家做个演示。

在官网下载 Nacos,也可以手工下载,语言可以自行切换切换。Nacos 不进支持 Spring Cloud,还支持 Docker、Dubbo、k8s 等都支持。

下载解压之后会有一个包,用 link 直接启动,link startup.sh shell 就可以启动了。这是 win10 系统,按住 win+R 输入 cmd 进入控制系统,输入 E:回车,cd nacos/bin 回车,startup.cmd -m standalone 回车,等待启动。

image.png

C: \Users\FrankXuLei>E:

E: \>cd nacos/bin

E: \nacos\bin>startup.cmd -m standalone

nacos is starting with standalone

Nacos 1.4.0

Running in stand alone mode,All function modules

Port: 8848

Pid: 14344

Console: http://192.168.111.1:8848/nacos/index.html

https://nacos.io

可以看到这是1.4.0版本,然后有关于界面,等一下会有日志出来,正常的话可以正常启动

image.png

2020-12-29 20:52:58,738 INFO Initializing ExecutorService 'taskScheduler

2020-12-29 20:52:58,776 INFO Exposing 2 endpoint(s) beneath base path '/actuator'

2020-12-29 20:52:58,983 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'

2020-12-29 20:52:58,989 INFO Nacos Log files: E: \nacos\logs

2020-12-29 20:52:58,990 INFO Nacos Log files: E: \nacos\conf

2020-12-29 20:52:58,991 INFO Nacos Log files: E: \nacos\data

2020-12-29 20:52:58,992 INFO Nacos started successfully in stand alone mode, use embedded storage

logs 是目录conf 是配置文件,包括后面更改集群、更改配置都在这里进行修改,就很像 zookeeper 的方式,data 文件数据的位置。后面解压这个包之后就有conf、data、logs 的文件夹。在 conf 文件夹下面有个文件名叫 nacos-mysql.sql 的文件,如果希望 nacos 与本地 mysql 对接,如果监控信息、配置信息、服务信息不想被丢掉,那么就在这里改一下服务再在配置文件里添加用户,和 mysql 用户密码,然后对接进去,这就是创建表结构,很方便。

将本机的地址 http://192.168.111.1:8848/nacos/index.html 复制过来放在浏览器里,点击回车进入,这里没有显示登录界面是因为已经登录进来了。可以看见左侧有配置管理,服务管理等,这里主要看服务管理,服务列表是空的。

image.png

顶上一栏的 pro 是生态环境,dev 是开发环境,test 是测试环境。这里目前是空的,然后集群管理,空间管理。这里节点 IP 是 192.168.111.1:8848

image.png

这里服务器在启动。这就是整个服务器的管理与操作。

接下来要改造微服务。需要在之前的微服务项目里加一个 nacos 的依赖包,代码如下:

<dependency>

<groupId>com.alibaba.cloud</groupId>

<artifactId>spring-cloud-starter-alibaba-nacos-discover</artifactId>

<version>2.2.3.RELEASE</version>

</dependency>

这里注意版本是2.2.?,因为官方还没有出到2.3.?、2.4.?,这里指的是Spring boot 的版本,其他保留不变。然后底层用的是 EnableDiscoveryClient 也就是 Eureka,代码如下:

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.discovery.EnableDiscoveryClic

@SpringBootApplication

@EnableDiscoveryClient

public class JavaSpringCloud200ONacosServiceDemoApplication {

public static void main(String[] args) {

springApplication.run( JavaSpringCloud200ONacosServiceDemoApp

}

}

配置文件要切换成 8848,代表的是 Nacos 的数据中心地址

server.port=8201

spring.application.name=taobao-nacos-microservice

#Nacos

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

改造完之后接下来启动这个微服务,最重要的是配置和依赖包。启动微服务,正常情况下是可以在 Nacos 监控服务下能够观察得到的,应该可以看见端口是8201。刷新服务列表可以看到有一个服务名叫 taobao-nacos-microservice 的一个微服务程序,集群数目为1,不成集群,只有1个实例数量。

这里有个优点是可以看见详细的服务信息

另一个优点是调用示例代码也很方便,点开就可以发现各类式的代码都收藏了,而且代码里面也有示例,比如 Spring Cloud 里是基于 Eureka,使用了官方的 LoadBalanced。所以这里的调用和外面的不太一样。其他语言在 Nacos 里也可以使用,功能非常强大。

同理还可以改造调用端。feigh也可以改造首先依赖加进来,然后更改配置文件,配置文件中心需要替换注意里面有一个EnableDiscoveryClient,当然也可以使用示例的代码,也就是原始的方法来调用,两个方法都可以。重要的是要想办法将这个程序继承进来:

package cn.alibaba;

import org.springframework.beans.factory.annotation.Autowired;

@RestController

public class TestController {

@Autowired

OrderClient orderClient;

//测试通过代理,调用远程的微服务接口

@RequestMapping(“/hi”)

public String hi() {

return orderClient.hi();

}

}

这里启动调用端,因为已经提前改造好了,所以就直接输入。规律就是加依赖、更改配置、启动。打开服务列表,可以看见 nacos.feigh 也上线了

同理可以复制其他服务。在 application.properties 里为 8202

server.port=8201

spring.application.name=taobao-nacos-microservice

#Nacos

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

运行可以发现注册中心没有问题,刷新服务列表可以观察到实例数量变为2了,所以默认的集群有2个实例,健康实例数也为2:

本节课基本上就完成了微服务的和调用案例的改造。下节课讲解配置中心,微服务等,这是非常重要的阿里云开源项目 Nacos。Nacos 也在大面积的在社区被推广使用,这是它非常强大的一个功能。

相关文章
|
6天前
|
监控 Java Nacos
使用Spring Boot集成Nacos
通过上述步骤,Spring Boot应用可以成功集成Nacos,利用Nacos的服务发现和配置管理功能来提升微服务架构的灵活性和可维护性。通过这种集成,开发者可以更高效地管理和部署微服务。
73 17
|
12天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 12 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
6天前
|
Cloud Native API 微服务
微服务引擎 MSE 及云原生 API 网关 2024 年 12 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 12 月产品动态。
|
13天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
1月前
|
Cloud Native API 微服务
微服务引擎 MSE 及云原生 API 网关 2024 年 11 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 11 月产品动态。
|
1月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
2月前
|
负载均衡 监控 API
dotnet微服务之API网关Ocelot
Ocelot 是一个基于 .NET 的 API 网关,适用于微服务架构。本文介绍了如何创建一个 Web API 项目并使用 Ocelot 进行 API 请求路由、负载均衡等。通过配置 `ocelot.json` 和修改 `Program.cs`,实现对 `GoodApi` 和 `OrderApi` 两个项目的路由管理。最终,通过访问 `https://localhost:7122/good/Hello` 和 `https://localhost:7122/order/Hello` 验证配置成功。
46 1
dotnet微服务之API网关Ocelot
|
1月前
|
设计模式 负载均衡 监控
探索微服务架构下的API网关设计
在微服务的大潮中,API网关如同一座桥梁,连接着服务的提供者与消费者。本文将深入探讨API网关的核心功能、设计原则及实现策略,旨在为读者揭示如何构建一个高效、可靠的API网关。通过分析API网关在微服务架构中的作用和挑战,我们将了解到,一个优秀的API网关不仅要处理服务路由、负载均衡、认证授权等基础问题,还需考虑如何提升系统的可扩展性、安全性和可维护性。文章最后将提供实用的代码示例,帮助读者更好地理解和应用API网关的设计概念。
82 8
|
2月前
|
Cloud Native API 微服务
微服务引擎 MSE 及云原生 API 网关 2024 年 10 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 10 月产品动态。
|
2月前
|
存储 人工智能 Java
Spring AI Alibaba 配置管理,用 Nacos 就够了
本文通过一些实操案例展示了 Spring AI Alibaba + Nacos 在解决 AI 应用中一系列复杂配置管理挑战的方案,从动态 Prompt 模板的灵活调整、模型参数的即时优化,到敏感信息的安全加密存储。Spring AI Alibaba 简化了对接阿里云通义大模型的流程,内置 Nacos 集成也为开发者提供了无缝衔接云端配置托管的捷径,整体上极大提升了 AI 应用开发的灵活性和响应速度。
349 15