什么是SpringCloud Alibaba Nacos注册中心

news2024/9/21 20:40:04

😀前言
本篇博文是关于SpringCloud Alibaba Nacos的基本介绍和使用,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

  • SpringCloud Alibaba Nacos
    • Nacos 基础
      • 官网
      • Nacos 是什么?
      • Nacos 下载&运行
    • 创建Nacos 服务提供者
      • 需求说明/图解
      • 创建member-service-nacos-provider-10004 并注册到NacosServer8848
        • 创建member-service-nacos-provider-10004
        • 修改父项目pom.xml
        • 修改本模块pom.xml
        • 创建application.yml
        • 创建主启动类
        • 为看到更好提示,修改Controller
        • 测试
          • 观察nacos 服务是否注册成功
          • 浏览器输出: http://localhost:10004/member/get/1

SpringCloud Alibaba Nacos

Nacos 基础

官网

​ 官网地址: https://github.com/alibaba/Nacos

Nacos 是什么?

说明: Nacos 就是注册中心[替代Eureka]+配置中心[替代Config]。

Nacos:Dynamic Naming and Configuration Service。

Nacos:架构理论基础: CAP 理论(支持AP 和CP, 可以切换)

Nacos 下载&运行

下载: https://github.com/alibaba/nacos/releases/tag/1.2.1
环境要求: Java8/Maven 3.2.x+
解压,运行bin/startup.cmd
浏览器输入http://localhost:8848/nacos
登录用户名/密码为nacos

  1. 输入: localhost:8848/nacos

image-20230903195753496

image-20230903195840928

创建Nacos 服务提供者

需求说明/图解

image-20230903195930841

创建member-service-nacos-provider-10004 并注册到NacosServer8848

创建member-service-nacos-provider-10004
  1. 参考member-service-provider-10000 来创建member-service-nacos-provider-10004 即可
  2. 创建好后, 使用member-service-provider-10000 的源码和配置替换member-service-nacos-provider-10004 生成的代码
  3. 提醒,拷贝时不要忘记拷贝resources/mapper/MemberMapper.xml 这些xxx.xml 文件
修改父项目pom.xml
  1. 参考官方文档https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_nacos_discovery

image-20230903201018023

  1. 修改pom.xml, 加入spring-cloud-alibaba 依赖
<!--在父项目统一加入spring-cloud-alibaba 依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.1.0.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
修改本模块pom.xml
  1. 将member-service-provider-10000 的pom.xml 的…拷贝过来,修改即可
<?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">
    <parent>
        <artifactId>e-commerce-center</artifactId>
        <groupId>com.my.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>member-service-nacos-provider-10004</artifactId>

    <!--引入相关的依赖-->
    <dependencies>
        <!--引入alibaba-sentinel starter 即场景启动器 这里我们使用版本仲裁-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

       <!--引入nacos-starter nacos的场景启动器starter -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--引入web-starter 师说明我们使用版本仲裁(从父项目继承了版本)
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!--引入mybatis-starter 整合到springboot-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>

        <!--引入druid-starter-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <!--这里需要我们指定版本, 因为父项目没有-->
            <version>1.1.17</version>
        </dependency>

        <!--引入mysql依赖,使用版本仲裁-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--spring-boot-start-jdbc引入-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!--引入test-starter-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!--引入公共模块-->
        <dependency>
            <groupId>com.my.springcloud</groupId>
            <artifactId>e_commerce_center-common-api</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
</project>
创建application.yml
  1. 将member-service-provider-10000 的application.yml 拷贝过来,修改即可
server:
  port: 10004

spring:
  application:
    name: member-service-nacos-provider #配置应用的名称
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/e_commerce_center_db?useSSL=true&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 123456
  #配置nacos
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos Server的地址
#配置暴露所有的监控点
management:
  endpoints:
    web:
      exposure:
        include: '*'
#配置mybatis
mybatis:
  mapper-locations: classpath:mapper/*.xml #指定mapper.xml文件位置
  type-aliases-package: com.my.springcloud.entity # 实例类所在的包,这样通过类名就可以引用
创建主启动类
  1. 创建主启动类MemberNacosProviderApplication10004
//@EnableDiscoveryClient 引入的是Nacos 发现注解
@EnableDiscoveryClient
@SpringBootApplication
public class MemberNacosProviderApplication10004 {
    public static void main(String[] args) {
    	SpringApplication.run(MemberNacosProviderApplication10004.class, args);
    }
}
为看到更好提示,修改Controller
  1. 修改com/my/springcloud/controller/MemberController.java 的输出信息
@RestController
@Slf4j
public class MemberController {

    //装配MemberService
    @Resource
    private MemberService memberService;
    
    //添加方法/接口
    //这里请小伙伴回顾, 应该如何提交
    //说明
    //1. 我们的前端如果是以json格式来发送添加信息Member, 那么我们需要使用@RequestBody
    //   , 才能将数据封装到对应的bean, 同时保证http的请求头的 content-type是对应
    //2. 如果前端是以表单形式提交了,则不需要使用@RequestBody, 才会进行对象参数封装, 同时保证
    //   http的请求头的 content-type是对应
    @PostMapping("/member/save")
    public Result save(@RequestBody Member member) {
        log.info("service-provider member={}", member);
        int affected = memberService.save(member);
        if (affected > 0) { //说明添加成功
            return Result.success("添加会员成功 member-service-nacos-provider-10004", affected);
        } else {
            return Result.error("401", "添加会员失败");
        }
    }

    //查询的方法/接口
    //师这里使用url占位符+@PathVariable
    @GetMapping("/member/get/{id}")
    //public Result getMemberById(@PathVariable("id") Long id, HttpServletRequest request) {
    public Result getMemberById(@PathVariable("id") Long id) {

        Member member = memberService.queryMemberById(id);

        //使用Result把查询到的结果返回
        if (member != null) {
            //return Result.success("查询会员成功 member-service-provider-10000 " + color + "-" + address, member);
            return Result.success("查询会员成功 member-service-nacos-provider-10004", member);
        } else {
            return Result.error("402", "ID= " + id + "不存在");
        }

    }
}
测试

​ 启动Nacos Server 8848
​ 启动member-service-nacos-provider-10004

观察nacos 服务是否注册成功

image-20230903202405973

浏览器输出: http://localhost:10004/member/get/1

image-20230903202531207

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

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

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

相关文章

【Java系列】ArrayList

ArrayList 添加元素访问元素修改元素删除元素计算大小迭代数组列表其他的引用类型ArrayList 排序Java ArrayList 方法系列文章系列文章版本记录 引言 ArrayList 类是一个可以动态修改的数组&#xff0c;与普通数组的区别就是它是没有固定大小的限制&#xff0c;我们可以添加或删…

wxPython 布局调试技巧

在Show()与MainLoop()直接加入以上代码 import wx.lib.inspection ...frame.Show() wx.lib.inspection.InspectionTool().Show() app.MainLoop()启动后会弹出布局查看工具

家用洗地机哪种好?2023年最好用的洗地机

洗地机已经成为现代家庭不可或缺的家电之一&#xff0c;可以大大减轻家庭清洁的负担&#xff0c;使我们的生活更加轻松和便捷。但面对市场上众多品牌和型号的洗地机&#xff0c;我们如何选择最适合自己的呢?本文将为您介绍2023年最好用的洗地机&#xff0c;详细比较它们的特点…

Git不常用命令(持续更新)

今日鸡汤&#xff1a;当你最满足的时候&#xff0c;通常也最孤独&#xff1b;当你最愤慨的时候&#xff0c;通常也最可怜。 此博文会列出一些平时不常用&#xff0c;但是能提高效率的git命令&#xff0c;后续会出IDEA对应的操作步骤 快看看你是不是都用过... 分支&#xff08;…

HarmonyOS 多音频播放并发政策及音频管理解析

音频打断策略 多音频并发&#xff0c;即多个音频流同时播放。此场景下&#xff0c;如果系统不加管控&#xff0c;会造成多个音频流混音播放&#xff0c;容易让用户感到嘈杂&#xff0c;造成不好的用户体验。为了解决这个问题&#xff0c;系统预设了音频打断策略&#xff0c;对…

微信群发消息的正确打开方式,让你的社交更高效!

在当今的社交媒体时代&#xff0c;微信已经成为了我们生活中必不可少的一部分。而微信的群发消息功能&#xff0c;让我们可以方便地将信息一次性发送给多个联系人。然而&#xff0c;微信的群发消息功能有一个限制&#xff0c;即每次只能群发200个联系人。这对于需要发送消息给大…

【网安大模型专题10.19】※论文5:ChatGPT+漏洞定位+补丁生成+补丁验证+APR方法+ChatRepair+不同修复场景+修复效果(韦恩图展示)

Keep the Conversation Going: Fixing 162 out of 337 bugs for $0.42 each using ChatGPT 写在最前面背景介绍自动程序修复流程Process of APR (automated program repair)1、漏洞程序2、漏洞定位模块3、补丁生成4、补丁验证 &#xff08;可以学习的PPT设计&#xff09;经典的…

Jmeter(十三):jmeter第三方插件管理工具安装详细步骤

jmeter第三方插件管理工具安装 第一步&#xff1a;下载 jmeter-plugins-manager-1.6.jar 第二步&#xff1a;把该jar包放置到:jmeter安装路径/lib/ext下 第三步&#xff1a;重启jmeter,在选项下可以看见插件管理 同时&#xff0c;我也准备了一份软件测试视频教程&#xff08;…

(10_24)【有奖体验】AIGC小说创作大赛开启!通义千问X函数计算部署AI助手

一个 AI 助手到底能做什么&#xff1f; 可以书写小说 可以解析编写代码 可以鼓舞心灵 提供职业建议 还有更多能力需要您自己去探索。接下来我们将花费 5 分钟&#xff0c;基于函数计算X通义千问部署一个 AI 助手&#xff0c;帮你撰写各类文案。 领取函数计算试用额度 首次开…

折纸问题

折纸的次数 —— 从上到下的折痕 本质上是中序遍历的问题&#xff0c;因为每一次在已有的折痕后折的时候&#xff0c;当前折痕上的折痕一定为凹&#xff0c;当前折痕下的折痕一定为凸 。实际模拟了一个不存在的二叉树结构的中序遍历。 注&#xff1a;折纸折几次整颗二叉树就有…

Jmeter的接口自动化测试

在去年实施了一年的三端&#xff08;PC、无线M站、无线APP【Android、IOS】&#xff09;后&#xff0c;今年7月份开始&#xff0c;我们开始进行接口自动化的实施&#xff0c;目前已完成了整个框架的搭建以及接口的持续测试集成。今天做个简单的分享。 在开始自动化投入前&#…

独家揭秘微信视频号下载提取器,使用方法!

1&#xff1a;微信视频号下载提取器&#xff0c;需要先确认自己手机电脑版本是否支持视频号的观看和浏览 2:需要下载视频号的作品发给视频下载小助手&#xff0c;聊天窗口 3&#xff1a;打开小助手解析视频号视频链接&#xff0c;保存到手机相册或者电脑上 注意视频号电脑版…

还原现场——前端录制用户行为技术方案

一、问题背景 目前&#xff0c;在我们的项目中通常会使用各种各样的埋点和监控来收集页面访问的信息&#xff0c;例如点击埋点、PV埋点等&#xff0c;这些埋点数据能够反应绝大部分的用户行为&#xff0c;但是对于一些关注上下文的使用场景而言这些埋点是不够的。 对于产品而言…

智慧工地云平台源码 人工智能AI+多系统集成+智能预警平台源码

智慧工地云平台源码 人工智能AI多系统集成智能预警平台 智慧工地企业级监管平台融入AIoT、移动互联网和物联网等领先技术&#xff0c;再结合工地“人、机、料、法、环”五大要素&#xff0c;劳务实名制管理、环境监测管理、安全施工管理、质量及能耗管理等智慧化应用&#xff0…

华为云香港云服务器CPU性能测评_1核2G1M带宽S3服务器

华为云香港云服务器99元一年&#xff0c;S3云服务器1核2G1M带宽&#xff0c;40GB高IO系统盘&#xff0c;活动链接&#xff1a;atengyun.com/go/huawei 购买条件为华为云新用户&#xff0c;阿腾云分享华为云香港99元服务器优惠活动入口、详细配置、价格及注意事项&#xff1a; …

【LeetCode:2698. 求一个整数的惩罚数 | 递归】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Mac 超好用的工具推荐

Arc Arc 是 2022 年 4 月发布的浏览器产品&#xff0c;在介绍 Arc 浏览器之前&#xff0c;让我们来看下以 Chrome、FireFox、Edge、Safari 为代表的的传统浏览器&#xff1a; 难怪《浏览器是怎么工作的》作者 Paul Irish 曾说&#xff0c;尽管 W3C 并未规范浏览器界面&#xf…

Python深度学习实战-基于class类搭建BP神经网络实现分类任务(附源码和实现效果)

实现功能 上篇文章介绍了用Squential搭建BP神经网络&#xff0c;Squential可以搭建出上层输出就是下层输入的顺序神经网络结构&#xff0c;无法搭出一些带有跳连的非顺序网络结构&#xff0c;这个时候我们可以选择类class搭建封装神经网络结构。 第一步&#xff1a;import ten…

手机扫描二维码的测试用例

二维码概述 二维码本身就是一个URL&#xff0c;只是通过QR码的形式把URL和用户身份信息转换成二进制的0和1&#xff0c;二维码中黑色的色素块代表1&#xff0c;白色的色素块代表0&#xff0c;我们通过相机扫码&#xff0c;就获取了二维码中的URL。 ****测试用例罗列&#xff08…

通过IP地址可以做什么

通过IP地址可以做很多事情&#xff0c;因为它是互联网通信的基础之一。本文将探讨IP地址的定义、用途以及一些可能的应用。 IP地址的用途 1. 设备标识&#xff1a;IP地址用于标识互联网上的每个设备&#xff0c;这包括计算机、服务器、路由器、智能手机等。它类似于我们日常生…