SpringCloud | Dubbo 微服务实战——注册中心详解

2023-12-05

前言

在这里插入图片描述
「作者主页」 雪碧有白泡泡
「个人网站」 雪碧的个人网站
请添加图片描述

|Eureka,Nacos,Consul,Zookeeper在Spring Cloud和Dubbo中实战

请添加图片描述

引言

在项目开发过程中,随着项目不断扩大,也就是业务的不断增多,我们将采用集群,微服务的形式去降低配置,集群是指将一个项目部署到多个服务器当中,而微服务是指将业务拆分为一个一个服务去进行,那么我们想要去实现一个业务的时候,我们就需要调用多个服务,那么每个服务的调用,我们都需要知道它的URL,若是有成千上万的URL该如何维护呢?
这时就需要 注册中心功能
其实我们可以把注册中心类比与通讯录

设计思路

程序是数据结构和算法的组合 ,那么我们若是想要设计一个注册中心,我们就要从两个方面去考虑

  • 存储结构
  • 提供的操作

存储结构

我们类比一下通讯录,通讯录的每一个内容都包括姓名和电话,那么注册中心每一个保存的是服务名和服务信息,这个结构我们不难想象到 map结构
则注册表的存储结构如下:
在这里插入图片描述

两层map结构: 在微服务系统中,为了避免单点故障,通常使用的是服务集群,一个服务名会对应多个服务实例

注册中心的操作

  • 接收服务
  • 接收服务心跳
  • 接收服务下线
  • 服务剔除
  • 查询注册表中服务信息
  • 注册中心集群中的信息同步

注册中心的使用

注册中心的使用主要分为两步

  1. 搭建注册中心服务端
  2. 启动业务服务,让服务和注册中心连通
    在这里插入图片描述

本文的核心内容就是具体的注册中心配置使用

Dubbo和Zookeeper的使用

Zookeeper

  1. zookeeper的安装
    安装地址
    在这里插入图片描述

  2. 将conf目录下的zoo_sample.cfg文件,复制一份,重命名为zoo.cfg
    在这里插入图片描述

  3. 在步骤2的基础上,修改zoo.cfg配置文件中zookeeper的数据文件存储位置及添加zookeeper日志文件位置(方法查错),(数据日志配置需另加),具体步骤如下

  • 在zookeeper目录下新建tmp文件夹,在分别tmp文件夹下面新建data文件夹与log文件夹,用于存放data(数据存储)和log(数据日志)
  • 修改conf下zoo.cfg配置中数据存储和数据日志路径
dataDir=../tmp/data
dataLogDir=../tmp/log
# 添加此配置项
admin.serverPort=8888

zoo.cfg配置文件参数说明

# tickTime       客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制FlowerLeader的通信时间
 
# initLimit	       集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数
 
#syncLimit         集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数
  
# dataDir          用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
 
# dataLogDir       存放事务日志的文件夹
 
# clientPort       客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问!这个端口默认是2181。
 
# maxClientCnxns    允许连接的客户端数目,0为不限制,通过IP来区分不同的客户端

  1. 判断zookeeper安装十分成功
    bin目录
  • zkCli.cmd 验证是否安装成功
  • zkServer.cmd 启动zookeeper服务
  1. 可以通过连接工具判断是否连接成功
    在这里插入图片描述

下载地址 ——prettyzoo
在这里插入图片描述

dubbo-admin

  1. dubbo-admin下载
    安装地址

后端启动打包

  1. 踩坑经过:一定要确定运行环境是jdk1.8
    在这里插入图片描述
    成功启动并打包
    在这里插入图片描述

前端启动打包

  1. 首先找到前端文件夹ui
    执行命令
npm install

打包即可,注意要检查是否完成 node.js 的安装

Eureka的使用

搭建eureka-server步骤

1.引入SpringCloud为eureka提供的starter依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

2. 编写一个application.yml文件,内容如下:

server:
  port: 10086
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url: 
      defaultZone: http://127.0.0.1:10086/eureka

3. @EnableEurekaServer注解

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

4.启动微服务,然后在浏览器访问:http://127.0.0.1:10086

Nacos的使用

1. 下载安装

下载地址 ——Nacos下载

Nacos安装:

在这里插入图片描述

  • 解压安装包

  • 打开配置文件(nacos安装目录 -> conf -> application.properties)

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

db.user=root
db.password=123456

  • 修改端口号
\### Default web context path:
server.servlet.contextPath=/nacos
\### Default web server port:
server.port=8848

  1. 执行sql文件(nacos安装目录 -> conf ->nacos-mysql.sql)

  2. 通过修改nacos.core.auth.enabled为true,就可以开启nacos认证。开启后客户端必须配置username、password。

单机模式启动

在nacs安装目录下的bin目录中运行命令,默认是集群模式启动,单机模式启动需要指定模式。

Windows命令: startup.cmd -m standalone

Linux命令: sh startup.sh -m standalone

命令运行成功后直接访问: http://localhost:8848/nacos
默认账号密码都是: nacos

Consul的使用

在这里插入图片描述

下载与安装

下载地址 ——Consul

1)下载

wget https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip

2)解压

unzip  consul_1.3.0_linux_amd64.zip

3)拷贝到usr目录下

mv consul   /usr

4)查看是否安装成功

./consul

小结

本文内容主要在单机模式下下载安装注册中心,更详细的内容我推荐在下面这本书中去获取

京东链接 购买地址

  • ????本次送书1~3本【取决于阅读量,阅读量越多,送的越多】????
  • ⌛️活动时间:截止到2023-12月9号
  • ✳️参与方式:关注博主+三连(点赞、收藏、评论)
    在这里插入图片描述

内容简介

《Spring Cloud 微服务快速上手》介绍了当下*主流的属于Spring生态的微服务框架,它继承了Spring Boot的优点,开发部署都非常简单。本书内容全面,介绍了微服务架构的发展历程,包含Spring Cloud Netflix 和 Spring Cloud Alibaba的组件,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。在解读核心组件的实现原理的同时,配以案例进行实践。本书内容包含微服务架构和云原生架构,读者在掌握微服务之后,可以进一步掌握云原生知识。
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringCloud | Dubbo 微服务实战——注册中心详解 的相关文章

随机推荐

  • WebGL笔记:矩阵缩放的数学原理和实现

    矩阵缩放的数学原理 和平移一样 以同样的原理 也可以理解缩放矩阵 让向量OA基于原点进行缩放 x方向上缩放 sx y方向上缩放 sy z方向上缩放 sz 最终得到向量OB 矩阵缩放的应用 比如我要让顶点在x轴向缩放2 y轴向缩放3 轴向缩放
  • VBA字典与数组第八讲:数组及数组公式结果的制约性和集合性

    VBA数组与字典方案 教程 10144533 是我推出的第三套教程 目前已经是第二版修订了 这套教程定位于中级 字典是VBA的精华 我要求学员必学 7 1 3 9教程和手册掌握后 可以解决大多数工作中遇到的实际问题 这套字典教程共两册 一共
  • linux下gdb的使用以及dump转存文件的生成使用

    1 gdb Linux 调试器 gdb的使用 Linux之gdb的使用 gdb调试工具 如何在多线程 多进程以及正在运行的程序下调试 2 dump文件 c linux dump定位错误 Linux下更改 coredump文件生成路径 lin
  • Node.js爬虫实战:百度图片爬取

    说在前面 网络爬虫是一种自动化工具 能够模拟人类在互联网上浏览和提取信息的行为 它的应用范围广泛 包括数据采集 信息监控 搜索引擎优化等方面 而在数据抓取和处理中 获取图片资源往往是一个常见的需求 本文将介绍如何使用Node js和相关库构
  • 抖音商品详情接口在电商行业中的重要性及实时数据获取实现

    一 引言 抖音作为当下最热门的短视频平台之一 拥有庞大的用户群体和活跃度 为电商行业带来了巨大的商业机会 抖音商品详情接口作为连接抖音平台和电商系统的关键纽带 具有重要的作用 本文将深入探讨抖音商品详情接口在电商行业中的重要性 并介绍如何通
  • 提取音频哪个软件好?揭秘市面上的热门选择

    就像许多人都喜欢在视频中加入动听的音乐来增强情感氛围一样 你有没有想过如果能够将那些打动你的音乐片段单独提取出来 作为自己的手机铃声 那该有多好呢 是的 某个视频中听到了一段难以忘怀的音乐 你可能会迫不及待地想将其设置为自己的专属手机铃声
  • 阿里云服务器有WordPress还可以再安装宝塔面板吗?

    不推荐 宝塔面板要求必须是纯净的操作系统环境安装宝塔 否则可能会有问题的 所以最好是先安装宝塔面板 再去安装wordpress 原文地址 阿里云服务器 WordPress 还可以再安装宝塔面板吗 轻量云Cloud WordPress一款广泛
  • C++简易计数器

    Created by Carlgood Note This program is written in version DEV C 5 11 include
  • 腾讯云用centos还是ubuntu系统好?

    腾讯云服务器提供了多种操作系统选择 包括 CentOS Ubuntu Windows Server 等 用户可以根据自己的需求和习惯选择适合的操作系统 通常比较推荐安装centos 7 x版本的系统 但在 CentOS 和 Ubuntu 之
  • HAL库STM32常用外设教程(二)—— GPIO输入\输出

    HAL库STM32常用外设教程 二 GPIO输入 输出 文章目录 HAL库STM32常用外设教程 二 GPIO输入 输出 前言 一 GPIO功能概述 二 GPIO的HAl库驱动 三 GPIO使用示例 1 示例功能 四 代码讲解 五 总结
  • VBA技术资料MF91:计算机自动执行VBA脚本代码

    我给VBA的定义 VBA是个人小型自动化处理的有效工具 利用好了 可以大大提高自己的工作效率 而且可以提高数据的准确度 我的教程一共九套 分为初级 中级 高级三大部分 是对VBA的系统讲解 从简单的入门 到数据库 到字典 到高级的网抓及类的
  • 计算机毕设项目 - HTML的健身房信息管理系统

    项目背景 随着科学技术的飞速发展 各行各业都在努力与现代先进技术接轨 通过科技手段提高自身的优势 对于健身房信息管理系统当然也不能排除在外 随着网络技术的不断成熟 带动了健身房信息管理系统 它彻底改变了过去传统的管理方式 不仅使服务管理难度
  • python爬虫概述及简单实践

    文章目录 一 先了解用户获取网络数据的方式 二 简单了解网页源代码的组成 1 web基本的编程语言 2 使用浏览器查看网页源代码 三 爬虫概述 1 认识爬虫 2 python爬虫 3 爬虫分类 4 爬虫应用 5 爬虫是一把双刃剑 6 pyt
  • AIGC: 关于ChatGPT中基于API实现一个StreamClient流式客户端

    Java版GPT的StreamClient 可作为其他编程语言的参考 注意 下面包名中的 xxx 可以换成自己的 代码基于java 来源于网络 可修改成其他编程语言实现 参考前文 https blog csdn net Tyro java
  • windows彻底卸载VMware虚拟机

    右键停止这些服务 在任务管理器中也结束vmware 在控制面板中卸载 找到注册表 然后在 software 目录下找到 VMware Inc 然后选中右键删除 确保C盘中也没了
  • VS数据断点的使用

    https blog csdn net chenlycly article details 125626617
  • Ubuntu20.24 安装ecCodes,包括 tar.gz 和 python(笔记)

    这里写目录标题 动机 为此找了解决方案 废话不多说 如下 1 下载 ecCodes 的源文件 网址如下 https confluence ecmwf int display ECC Releases 2 解压包 3 创建 ecCodes 的
  • 默克尔树(Merkle Tree)

    默克尔树 Merkle Tree 是一种哈希树的变体 它是一种有向无环图 DAG 通常用于数据完整性验证 它以密码学家拉尔夫 默克尔的名字命名 是由一系列哈希值构成的树状结构 默克尔树的特点是 它的每个非叶子节点都是其子节点的哈希值的哈希
  • B2B公司如何寻找意向客户的联系方式?

    在B2B公司的营销过程中 少不了寻找意向客户的阶段 这也是销售过程中非常重要的一步 很多新人都是拿到客户联系方式 就直接打电话拜访 俗话说不打没有准备的仗 因此在拜访客户之前就应该做好功课 充分了解客户 这也是B2B业务场景下必做的一环 通
  • SpringCloud | Dubbo 微服务实战——注册中心详解

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 Eureka Nacos Consul Zookeeper在Spring Cloud和Dubbo中实战 引言 在项目开发过程中 随着项目不断扩大 也就是业务的不断增多 我们将采用集群