SpringCloud Alibaba入门4之nacos注册中心管理

news2024/9/28 21:26:28

我们在上一章的基础上进行学习。https://blog.csdn.net/qinxun2008081/article/details/131330451

什么是注册中心?它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。

注册中心的作用就是服务的注册服务的发现


一、引入Nacos作为注册中心

我们查看SpringBoot和SpringCloudAlibab的版本匹配

版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub

在父项目pom.xml中添加Nacos所需的依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>myshop</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--设置为pom,管理依赖-->
    <packaging>pom</packaging>
    <modules>
        <module>myshop-common</module>
        <module>myshop-user</module>
        <module>myshop-stock</module>
        <module>myshop-order</module>
        <module>myshop-goods</module>
        <module>myshop-pay</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!--统一管理项目依赖版本-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--cloud-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--alibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

在user子项目引入Nacos

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.example</groupId>
        <artifactId>myshop</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>myshop-user</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.31</version>
        </dependency>
        <!--JPA-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!--hibernate-validate-->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
        </dependency>
        <!--cloud相关依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.2.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
        </dependency>
        <!--添加common模块的依赖-->
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>myshop-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

二、服务注册

在user模块启动类中添加注解@EnableDiscoveryClient开启服务注册发现功能

package com.example.myshop;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @author qx
 * @date 2023/06/21
 * @desc 启动类
 */
@SpringBootApplication
// 开启服务注册发现
@EnableDiscoveryClient
public class MyShopUserApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyShopUserApplication.class, args);
    }
}
  • 在配置文件application.yml中添加服务名称和Nacos Server地址
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/myshop?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true
    username: root
    password: 123456

  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

  application:
    #服务名称
    name: user-service
  cloud:
    nacos:
      discovery:
        # Nacos Server地址
        server-addr: 127.0.0.1:8848
  • 启动项目,通过Nacos控制台查看,发现用户服务已经注册到了Nacos Server。

最后我们完善其它几个业务子模块,将其它几个业务模块服务也注册到Nacos注册中心 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java开发必看,Spring增强性能与现代应用支持

出品 | CSDN 云计算 开发界经典话题之一&#xff0c;就是语言之争。除了每月的开发语言排行榜上几大王牌语言在榜单前列上上下下&#xff0c;在 CSDN 连续几年的年度开发者调研《中国开发者调查报告》中&#xff0c;Java 一直被评为开发者使用占比最高的语言&#xff0c;而 Spr…

银河麒麟V10 wireguard 编译

系统信息 操作系统信息&#xff1a; 我这里使用的操作系统是 银河麒麟V10&#xff0c;CPU为飞腾 ARM64 根据wireguard 的编译指南&#xff1a;https://www.wireguard.com/compilation/ 安装 编译安装内核 注意&#xff1a;5.6 以上内核不需要编译安装&#xff0c;已经集…

【数据库五】MySQL高级SQL语句

MySQL高级SQL语句 1.MySQL进阶查询1.1 select1.2 distinct1.3 where1.4 and or1.5 in1.6 between1.7 通配符1.8 like 2.MySQL数据库函数2.1 数学函数2.2 聚合函数2.3 字符串函数 3.查询函数3.1 order by3.2 group by3.3 sql语句执行顺序3.4 having3.5 别名&#xff08;字段别名…

【剑指offer专项突破版】队列篇——“C“

文章目录 前言一、滑动窗口的平均值题目分析思路分析对列代码题解代码 二、最近请求次数题目分析思路分析队列代码题解代码 三、往完全二叉树添加节点题目分析思路分析队列与接口代码题解代码 四、二叉树每层的最大值题目分析思路分析队列代码题解代码 五、二叉树最底层最左边的…

学习 WooCommerce REST API

主要学习这个技术文档即可 WooCommerce REST API 技术文档 WooCommerce 官方文档 github : woocommerce/woocommerce 以下设置以及测试代码&#xff0c;都来自 WooCommerce REST API 技术文档 设置 REST API 设置 – 固定链接 &#xff08;Settings > Permalinks.&#…

MySQL - 第4节 - MySQL数据类型

目录 1.数据类型的作用 2.数据类型分类 3.数值类型 3.1.tinyint类型 3.2.bit类型 3.3.float类型 3.4.decimal类型 4.字符串类型 4.1.char类型 4.2.varchar类型 4.3.char和varchar比较 5.时间日期类型 6.enum和set类型 6.1.enum和set类型 6.2.调查表案例 6.3.通…

二手车交易APP开发功能有哪些?

二手车交易APP开发功能有哪些&#xff1f; 1、车辆估价&#xff1a;在选购二手车时&#xff0c;了解车辆的市场价值是非常重要的。为了保证客户能够准确估计车辆的价值&#xff0c;二手车APP软件开发应该具备车辆估价功能。用户可以通过APP输入车辆的基本信息&#xff0…

离线(内网)主机创建python项目运行环境

一、创建requirements.txt文件 文件中是python项目需要的依赖和版本号 二、把依赖下载到本地 准备一个能联网的pc&#xff0c;把依赖下载到本地 pip download -d ./venv -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/这个命令会把依赖下载到venv文件夹…

指数全线收跌,上证跌破3200点,仅4137只个股下跌!

如题&#xff0c;端午假期前一天&#xff0c;A股指数全线收跌&#xff0c;上证指数跌破3200点&#xff0c;仅4137只个股下跌&#xff01;就问你服不服&#xff1f; 不要急&#xff0c;不要慌&#xff0c;我们来细细分析。 过去一两周&#xff0c;上证指数以震荡为主&#xff…

嵌入式Linux学习入门

大四毕业了&#xff0c;签了一份嵌入式开发的工作&#xff0c;现在准备入门了&#xff0c;搜集一些要学习的内容。 嵌入式开发学习路线 51单片机&#xff0c;arm&#xff0c;stm32在单片机上 在单片机上编程c语言和在嵌入式系统写c语言&#xff0c;有很大不同 gcc又与我们普…

与反恐、反间谍科同级,美国国家安全部设立网络安全科

美国国家安全部&#xff08;NSD&#xff09;成立了一个新的网络部门&#xff0c;旨在能够更有力地应对高技术性的网络威胁。 这个新成立的部门&#xff0c;正式名称为国家网络安全科&#xff0c;是为了响应美国司法部 &#xff08;DoJ&#xff09; 2022 年全面网络审查中的核心…

导致JVM内存泄露的ThreadLocal详解

很常见的关于ThreadLocal的面试题的问法&#xff1a; 1.说说你对ThreadLocal的理解。 2.ThreadLocal 是什么&#xff1f;有哪 些使用场景&#xff1f;什么是线程局部变量&#xff1f; 3.ThreadLocal内存泄漏分析与解决方案。 ps:想理解好ThreadLocal&#xff0c;必须先得理…

Spring Boot命令行启动添加参数

一、Spring Boot命令行三种参数形式 通过java -jar启动springboot的jar项目时&#xff0c;可以动态传递参数来进行配置和开发&#xff0c;比如 java -jar xxx.jar --server.port8081 可以通过server.port修改项目启动的端口&#xff0c;通过命令行传递的参数具有更高的优先级…

华为OD机试 JavaScript 实现【最优策略组合下的总的系统消耗资源数】【牛客练习题】,附详细解题思路

一、题目描述 在通信系统中有一个常见的问题是对用户进行不同策略的调度&#xff0c;会得到不同系统消耗的性能。 假设由N个待串行用户&#xff0c;每个用户可以使用A/B/C三种不同的调度策略&#xff0c;不同的策略会消耗不同的系统资源。 请你根据如下规则进行用户调度&…

【Java-SpringBoot+Vue+MySql】Day3.2-RESTful风格

目录 一、RESTful风格介绍 1、知识轰炸 2、代码演练 &#xff08;1&#xff09;测试get接口 &#xff08;2&#xff09;测试Post接口 &#xff08;3&#xff09;测试Put接口 &#xff08;4&#xff09;测试delete接口 二、Swagger介绍 1、知识轰炸 2、实操演练 &#x…

Android修行手册-多路USB外接摄像头

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

CSS3-盒子模型

盒子模型的介绍 盒子概念 盒子组成 盒子内减 拓展 1. 盒子的概念 1 页面中的每一个标签&#xff0c;都可看做是一个 “盒子”&#xff0c;通过盒子的视角更方便的进行布局 2 浏览器在渲染&#xff08;显示&#xff09;网页时&#xff0c;会将网页中的元素看做是一个个的矩形区域…

Selenium详解

Selenium 环境配置好之后&#xff0c;我们就可以使用 Selenium 来操作浏览器&#xff0c;做一些我们想做的事情了。在我们爬取网页过程中&#xff0c;经常发现我们想要获得的数据并不能简单的通过解析 HTML 代码获取&#xff0c;这些数据是通过 AJAX 异步加载方式或经过 JS 渲染…

Python高级系列教程:Python闭包和装饰器

今天我们将继续讲解 Python 中的闭包和装饰器。虽然我们还没有详细学习这两个概念&#xff0c;但在面向对象编程中&#xff0c;我们已经经常使用装饰器了。装饰器可以给函数增加额外的功能&#xff0c;就像语法糖一样甜。在 Python 中&#xff0c;装饰器的格式通常是在函数上方…

三分钟学习一个python小知识1-----------我的对python的基本语法的理解

文章目录 一、变量定义二、数据类型三、条件语句四、循环语句五、函数定义总结 一、变量定义 在Python中&#xff0c;使用等号&#xff08;&#xff09;进行变量的定义&#xff0c;并不需要声明变量的类型&#xff0c;Python会自动根据赋值的数据类型来判断变量的类型&#xf…