百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

MySQL安装方式之一:用二进制压缩包来安装

bigegpt 2024-08-12 14:11 2 浏览

关注我「程序猿集锦」,获取更多分享。

  • 背景
  • 安装前注意事项
  • 版本的选择
  • 卸载已安装的MySQL
  • 配置sudo权限
  • 基于二进制安装包安装
    • 安装包的下载
    • 安装包目录说明
    • 解压二进制安装包
    • 配置系统环境变量
    • 创建文件目录
    • 创建操作系统用户
    • 初始化MySQL数据库
    • 初始化SSL证书
    • 启动MySQL服务
    • 登录MySQL数据库
    • 配置systemctl/service命令启动MySQL
  • 总结

背景

MySQL的安装有很多种方式,基于不同的平台又有不同的安装方式。接下来几篇文章,我们来盘点一些在Linux系统下常用的安装方式。这篇文章我们先来看一下基于已经编译好的二进制文件如何安装MySQL数据库。

安装前注意事项

版本的选择

推荐安装General Availability(GA)版本,也称为生产或者稳定版本。当然,如果想尝试新鲜的功能,可以尝试安装开发版本,这样的版本有新的功能,但是不一定稳定。在我们的生产环境中不要使用这样的版本,要使用稳定版本。

MySQL版本的命名规则,拿5.7.32举例说明。5是大版本,7是中间版本,32是小版本好。其中大版本+总结版本,这两个值可以确定一个稳定发行版本。小版本号主要是用来迭代修复某一个稳定版本的bug,每修复一些bug,重新发布就会把小版本号加一。

卸载已安装的MySQL

如果之前已经安装过MySQL,通过yum或者apt-get的方式安装的,在使用二进制包安装之前,需要把之前安装的MySQL彻底卸载掉。卸载的方式也需要通过yum或者apt-get命令来卸载。卸载完成之后,需要查看/etc/my.cnf/etc/mysql/my.cnf目录下面是否还有MySQL相关的文件或者目录,如果存在的话,删除它们。

如果是通过其他方式安装的,可以把对应的安装目录删除,环境变量删除即可。

配置sudo权限

要使用root用户来安装MySQL,如果你不是使用root用户,那么你使用的用户,起码需要有sudo的权限。如何配置普通的用户具有sudo权限呢?参考下面的步骤。

首先确保你的系统中已经安装了sudo的命令,如果没有安装sudo的命令,则需要使用yum来安装一下sudo命令。安装方式如下:

# 查看是否安装了sudo命令
[root@b9f018d06344 ~]# sudo --help

# 使用yum来安装sudo命令
[root@b9f018d06344 ~]# yum install sudo

# 安装完sudo命令之后,在/etc目录下面会生成sudo相关的配置文件,如下所示
[root@b9f018d06344 ~]# ls -lstr /etc/sudo*
8 -r--r----- 1 root root 4328 May 18  2020 /etc/sudoers
4 -rw-r----- 1 root root 1786 May 18  2020 /etc/sudo.conf
4 -rw-r----- 1 root root 3181 May 18  2020 /etc/sudo-ldap.conf

/etc/sudoers.d:
total 0
[root@b9f018d06344 ~]#

编辑sudo的配置文件/etc/sudoers,在里面增加我们想要使用sudo命令的用户信息。注意,此时编辑的时候需要使用visudo命令而不能直接使用vi命令,因为此时的/etc/sudoers配置文件对任何用户来说都是只读的,包括root用也是只读的,如果你此时强行使用vi命令编辑,在编辑的时候,系统会提示你正在修改一个只读的文件,所以需要使用visudo命令来修改。visudovi没有什么区别,命令的使用规则一样。具体增加的配置内容如下所示:

[root@b9f018d06344 ~]# visudo /etc/sudoers

# 打开文件后,找到如下的这一行
root    ALL=(ALL)       ALL

# 在上面的行下面增加如下四行中的任意一行即可。
# 表示指定的用户可以执行sudo命令,但是在执行的时候,需要输入这个用户的密码后才可以执行。
your_user_name ALL=(ALL)       ALL

# 表示指定的用户组下面所有的用户都可以执行sudo命令,但是在执行的时候,需要输入对应的用户的密码后才可以执行。
%your_group_name ALL=(ALL)			ALL

# 表示指定的用户可以执行sudo命令,并且在执行的时候,不需要输入这个用的密码就可以执行。
your_user_name ALL=(ALL)       NOPASSWD: ALL

# 表示指定的用户组下面所有的用户都可以执行sudo命令,并且在执行的时候,不需要输入对应的用户的密码就可以执行。
%your_group_name ALL=(ALL)       NOPASSWD: ALL

当然,如果你不使用visudo命令,非要使用vi命令也是可以的。你可以使用root用户,先把配置文件/etc/sudoers的权限改为root可以读写,然后再使用vi就可以编辑保存了。修改完成之后,再把这个配置文件的权限给修改回来。这样也是可以的,属于一种曲线救国的方式。但是为了安全、省事、方便起见,推荐使用visudo命令。

基于二进制安装包安装

安装包的下载

登录MySQL的官网,进入下载页面。选择我们的二进制安装包。如下图所示:

地址为:https://dev.mysql.com/downloads/


地址为:https://dev.mysql.com/downloads/mysql/


地址:https://downloads.mysql.com/archives/community/

可以直接点击Download按钮,下载到本地,然后再上传到服务器上,这里我们选择复制下载地址,到服务器上面使用wget命令来下载安装包(注:服务上面的网络比本地的网络下载得快很多,这是我选择在服务器上下载安装包的原因),如下所示:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

安装包目录说明

下载后解压下载后的安装包,解压后的效果如下:

[root@b9f018d06344 ~]# tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /usr/local
[root@b9f018d06344 ~]# cd /usr/local/mysql-5.7.32-linux-glibc2.12-x86_64
[root@b9f018d06344 mysql-5.7.32-linux-glibc2.12-x86_64]# ls
LICENSE  README  bin  docs  include  lib  man  share  support-files
[root@b9f018d06344 mysql-5.7.32-linux-glibc2.12-x86_64]# ls -lstr
total 276
  4 -rw-r--r--  1 7161 31415    587 Sep 23 12:00 README
244 -rw-r--r--  1 7161 31415 247914 Sep 23 12:00 LICENSE
  4 drwxr-xr-x  3 root root    4096 Jan 18 11:17 include
  4 drwxr-xr-x  4 root root    4096 Jan 18 11:18 man
  4 drwxr-xr-x  2 root root    4096 Jan 18 11:18 bin
  4 drwxr-xr-x  5 root root    4096 Jan 18 11:18 lib
  4 drwxr-xr-x 28 root root    4096 Jan 18 11:18 share
  4 drwxr-xr-x  2 root root    4096 Jan 18 11:18 support-files
  4 drwxr-xr-x  2 root root    4096 Jan 18 11:18 docs

针对上述解压出来的文件和目录,挑选比较重要的简单说明一下:

  • include:MySQL启动服务使用的包含头文件。
  • man:使用man命令查看MySQL相关命令的手册。
  • bin:MySQL所有的一些命令都在这里面,都是一些可执行的二进制文件。需要把这个目录配置到$PATH环境变量中,便于以后在任何目录都可以直接执行MySQL的各种命令。
  • lib:MySQL启动服务的时候,需要依赖的库文件。
  • share:MySQL的错误消息文件和字符集文件都放在这个文件夹下面,里面还有一些SQL文件,是初始化MySQL数据库的时候使用的。
  • docs:MySQL帮助手册。
  • 解压二进制安装包

    把下载好的二进制安装包解压到指定目录下,一般我们解压安装在/usr/local目录下面。

    [root@b9f018d06344 ~]# tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /usr/local

    创建软连接,这样当我们执行cd /usr/local/mysql命令的时候,就等于执行了命令cd /usr/local/mysql-5.7.32-linux-glibc2.12-x86_64命令,这可以方便我们平时的操作,又可以保留我们MySQL的安装文件名称中的版本,这是在Linux系统中安装二进制文件的一种常用的方法。

    [root@b9f018d06344 ~]# ln -s /usr/local/mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql

    配置系统环境变量

    配置环境变量,方便在任何目录下面都可以直接执行MySQL的各种命令。原则就是把/usr/local/mysql/bin目录添加到Linux系统的$PATH变量中。可以在/etc/profile文件最后,增加export PATH=$PATH:/usr/local/mysql/bin这一行代码。具体修改环境变量的方式如下所示:

    [root@b9f018d06344 mysql]# vi /etc/profile
    
    # 查看最后一行是否添加成功。
    [root@b9f018d06344 mysql]# tail -1 /etc/profile
    export PATH=$PATH:/usr/local/mysql/bin
    
    # 使用source命令重新加载一下/etc/profile文件,是当前修改马上生效,否则需要退出操作系统,重新登录才生效。
    [root@b9f018d06344 mysql]# source /etc/profile 

    创建文件目录

    首先说明一下,这一步可以省略不做。因为这个步骤是为了以后执行一些load dataselct ... into outfile命令的时候使用到的文件目录才创建的。如果不用这些命令,则不用创建这个文件夹目录。创建目录和授权的命令如下:

    [root@b9f018d06344 mysql]# cd /usr/local/mysql
    [root@b9f018d06344 mysql]# mkdir mysql-files
    [root@b9f018d06344 mysql]# chown mysql:mysql mysql-files
    [root@b9f018d06344 mysql]# chmod 750 mysql-files

    之所以有这几步操作的原因是为了以后MySQL执行load dataselect ... into outfile这样的语句时候会使用到这个文件夹目录,这个文件夹需要配合MySQL中的参数secure_file_priv一起使用。如果我们不需要执行load dataselect ... into outfile这样的命令,这个文件目录是可以不创建的。这并不影响我们后面安装初始化MySQL数据库。

    创建操作系统用户

    使用如下命令在MySQL服务器上创建mysql用户:

    [root@b9f018d06344 ~]# groupadd mysql
    [root@b9f018d06344 ~]# useradd -r -g mysql -s /bin/false mysql

    创建操作系统用户mysql的原因是因为初始化MySQL数据库的时候,会使用mysql这个用户来进行初始化。如果没有这个用户,在初始化MySQL数据库的时候会出现如下错误。从安全性的角度上,创建一个单独的用户mysql,然后给这个用户授予适当的权限,然后将MySQL服务器启动这个用户下面也是比较合理的一种方式。

    [root@b9f018d06344 bin]# mysqld --initialize --user=mysql # 初始化MySQL数据库
    2021-01-20T04:17:54.981607Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2021-01-20T04:17:54.985870Z 0 [ERROR] Fatal error: Can't change to run as user 'mysql' ;  Please check that the user exists!
    
    2021-01-20T04:17:54.985947Z 0 [ERROR] Aborting
    
    [root@b9f018d06344 bin]#

    初始化MySQL数据库

    现在开始执行MySQL数据库的初始化操作,初始化的时候出现的错误:

    [root@b9f018d06344 mysql]# bin/mysqld --initialize --user=mysql
    bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    错误的原因是:缺少libaio.so库文件,需要安装libaio,使用yum命令安装,如下:

    # 查找安装包
    [root@b9f018d06344 mysql]# yum search libaio
    # 执行安装
    [root@b9f018d06344 mysql]# yum install libaio -y

    再次尝试初始化MySQL数据库,再次出现如下错误:

    [root@b9f018d06344 mysql]# bin/mysqld --initialize --user=mysql
    bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
    [root@b9f018d06344 mysql]#

    失败的原因,缺少libnuma库文件,使用yum命令来安装对应的库文件。

    [root@b9f018d06344 mysql]# yum search libnuma
    [root@b9f018d06344 mysql]# yum install numactl-libs.x86_64 -y

    再次初始化MySQL数据库,初始化成功,执行过程如下:

    Complete!
    [root@b9f018d06344 mysql]# bin/mysqld --initialize --user=mysql
    2021-01-19T07:42:28.498794Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2021-01-19T07:42:29.207461Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2021-01-19T07:42:29.291581Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2021-01-19T07:42:29.363912Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e1d0a6c5-5a29-11eb-aa62-0242ac110002.
    2021-01-19T07:42:29.372530Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2021-01-19T07:42:30.423665Z 0 [Warning] CA certificate ca.pem is self signed.
    2021-01-19T07:42:30.487269Z 1 [Note] A temporary password is generated for root@localhost: 4pjsyg8bq_Td
    [root@b9f018d06344 mysql]#

    可以看到输出的信息中,有生成的root用户的临时密码4pjsyg8bq_Td,在启动MySQL服务之后,使用这个密码,可以登录到MySQL数据库中。这里要将这个密码保存到一个地方,后面第一次登录MySQL数据库的时候会用到。

    初始化SSL证书

    使用如下命令来初始化MySQL的SSL证书,这个命令的作用是在客户端连接到MySQL服务端的时候,使用SSL加密通讯,提高了MySQL数据库的安全性。但是,在初始化的过程中遇到如下的错误:

    [root@b9f018d06344 mysql]# bin/mysql_ssl_rsa_setup
    2021-01-19 08:57:03 [ERROR]   Could not find OpenSSL on the system
    [root@b9f018d06344 mysql]#
    

    错误原因:缺少OpenSSL库文件。解决方式,使用yum来安装对应的库文件。安装完成后,再次尝试初始化SSL服务,执行成功。

    [root@b9f018d06344 mysql]# yum install openssl -y
    

    这里初始化SSL功能的命令,可以根据自己的实际情况来觉得十分启用。启用SSL后,连接通信是加密的,但是这样会导致MySQL的性能有所降低。这个降低的地方主要是建立连接、加密、解密的这些操作。如果是长连接、或使用连接池,性能影响得较少一下。MySQL5.7版本已经默认开启了SSL功能,所以这个步骤可以不执行。

    启动MySQL服务

    尝试启动MySQL服务器,启动后使用ps命令可以看到有mysqld_safe进程已经在后台启动,此时可以尝试用上面生成的临时密码登录MySQL数据库。

    [root@b9f018d06344 mysql]# bin/mysqld_safe --user=mysql &
    [1] 532
    [root@b9f018d06344 mysql]# Logging to '/usr/local/mysql/data/b9f018d06344.err'.
    2021-01-19T09:01:18.978673Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
    [root@b9f018d06344 mysql]# ps
      PID TTY          TIME CMD
      423 pts/2    00:00:00 bash
      532 pts/2    00:00:00 mysqld_safe
      642 pts/2    00:00:00 ps

    登录MySQL数据库

    使用前面生成的root用户的临时密码,尝试登录MySQL数据库又出现如下错误:

    [root@b9f018d06344 mysql]# bin/mysql -uroot -p4pjsyg8bq_Td
    bin/mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
    [root@b9f018d06344 mysql]#

    失败原因:缺少库文件libncurses.so.5,解决方式,使用yum安装缺少的包。

    [root@b9f018d06344 data]# yum install libncurses.so.5 -y

    上述安装命令执行完整之后,再次尝试登录,仍然出现找不到libncurses.so.5的错误提示,索性执行如下语句,把所有关于libncurses的库文件都安装上。

    [root@b9f018d06344 data]# yum install libncurses* -y

    安装完成后,再次尝试登录MySQL数据库,成功。登录之后,需要先修改root用户的临时密码,然后才可以进行其他操作,否则不能进行任何操作。下面我们把root用户的密码改为root,过程如下所示:

    [root@b9f018d06344 mysql]# bin/mysql -uroot -p4pjsyg8bq_Td
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.7.32
    
    Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> show databases;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    # 修改root用户的密码,使用如下命令
    mysql> alter user 'root'@'localhost' identified by 'root';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql>

    配置systemctl/service命令启动MySQL

    经过前面的步骤,我们已经成功安装了MySQL数据库,并且已经登录到MySQL数据库中。为了方便以后的管理,我们配置使用Linux系统服务的管理命令来启动或停止MySQL。把MySQL安装目录下面的mysql.server配置文件复制到/etc/init.d目录下面。

    [root@b9f018d06344 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
    [root@b9f018d06344 mysql]# ls -lstr /etc/init.d/
    total 16
     4 -rw-r--r-- 1 root root  1161 Nov 13 23:00 README
    12 -rwxr-xr-x 1 root root 10576 Jan 20 07:28 mysql.server
    [root@b9f018d06344 mysql]#

    此时我们就可以systemctl命令或者service命令来启动或关闭MySQL服务了。systemctl是目前Linux 8版本中的管理系统服务的命令,在以前的版本中是使用service命令来关管理的。

    [root@b9f018d06344 mysql]# systemctl start mysqld
    [root@b9f018d06344 mysql]# systemctl stop mysqld
    [root@b9f018d06344 mysql]# systemctl restart mysqld
    [root@b9f018d06344 mysql]# systemctl status mysqld
    [root@b9f018d06344 mysql]# service mysqld start
    [root@b9f018d06344 mysql]# service mysqld stop
    [root@b9f018d06344 mysql]# service mysqld restart
    [root@b9f018d06344 mysql]# service mysqld status

    总结

    使用二进制安装包来安装MySQL数据库,期间需要执行的步骤大概如下:

    # 解压安装包到指定目录
    tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /usr/local # 把二进制安装包解压到/usr/local目录下
    ln -s /usr/loca/mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql # 创建软连接,把mysql文件夹连接到解压后的二进制文件夹
    
    # 创建文件目录
    cd /usr/local/mysql # 进入到MySQL二进制文件目录
    mkdir mysql-files # 创建文件夹,这个文件夹用于导出MySQL数据或导入MySQL数据的时候使用。
    chown mysql:mysql mysql-files # 修改文件夹的属主
    chmod 750 mysql-files # 修改文件夹的权限
    
    # 添加系统用户和用户组
    groupadd mysql # 在MySQL服务器上面,创建一个名称为mysql的用户组
    useradd -r -g mysql -s /bin/false mysql # 在MySQL服务器上面创建一个名为mysql的用户,并把它添加到名为mysql的组中,设置这个用户不能登录MySQL服务器。
    
    # 配置系统环境变量
    vi /etc/profile # 编辑环境变量配置文件,在PATH环境变量后面增加MySQL的bin目录
    export PATH=$PATH:/usr/local/mysql/bin
    source /etc/profile # 重新加载环境变量,是上面增加MySQL bin目录生效。
    
    # 初始化MySQL数据库并启动
    mysqld --initialize --user=mysql # 初始化MySQL数据库
    mysql_ssl_rsa_setup # 初始化SSL,用于连接MySQL服务的时候支持SSL加密通讯,这样连接通信更加安全。
    mysqld_safe --user=mysql & # 在后台启动MySQL服务
    
    # 配置操作系统启动脚本
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server # 设置MySQL启动脚本到service中,用于使用操作系统服务管理的命令来启动MySQL服务

    在安装和初始化期间,可能需要的其他库文件可以通过yum命令来安装。你可能需要的依赖库有如下几个:

    yum update
    yum install wget
    yum install passwd
    yum install sudo
    yum install libncurses*
    yum install ncurses-compat-libs-6.1-7.20180224.el8.i686
    yum install openssl
    yum install libaio
    yum install libnuma
    yum install numactl-libs.x86_64
    yum install initscripts -y

    使用已经编译好的二进制文件安装MySQL的过程就介绍到这里了,后续会分享其他几种MySQL的安装方式。

    相关推荐

    数据中台与业务中台总体技术架构设计方案

    《数据中台与业务中台总体技术架构设计方案》提出**“开放、稳定、滋养”三原则**,强调通过统一技术架构与框架破除烟囱式系统,构建**“业务中台+数据中台”闭环体系**。方案主张从单体架...

    三分钟摸清楚什么叫前后端分离(什么是前后端分离架构?)

    什么叫前后端分离?其实,前后端分离的初衷是为了分离前后端开发人员的职责,解决开发模式的问题。说到底,前后端分离就是将前端视图和后端数据进行分离,这样,后端只需要提供接口(后端数据)给前端,而前端也可以...

    刚刚,给学妹普及了登录的两大绝学

    今天跟大家聊一个比较基础的话题,就是实现登录的方式有哪些?适合刚入行的朋友。华山之Session绝学Session我们称之为会话控制,是一种在服务器端保持会话状态的解决方案。通俗点来讲就是客户...

    6种微服务RPC框架,你知道几个?(grpc是微服务框架吗)

    开源RPC框架有哪些呢?一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的。跟语言平台绑定的开源RPC框架主要有下面几种。Dubbo:国内最早开源的RPC框架,由阿里巴巴公司...

    微服务中,Spring Cloud 有哪些注册中心?

    SpringCloud是微服务架构中经常使用的一个框架,它提供了一系列工具来帮助开发者构建和管理分布式系统,而服务注册中心又是微服务架构中一个关键组件。那么,SpringCloud支持哪些注册...

    Eureka的自我保护机制(eureka自我保护机制原理)

    最近遇到一个问题,服务之间调用报错,显示无法路由到指定服务,但是对应的服务是启动的,查询eureka,结果eureka上显示如下,所有实例均消失,我个人对注册中心并没有什么研究,进行正好借此机会简单总...

    eureka、zookepeer、nacos的区别(eureka和nacos哪个更好)

    前言随着微服务被各大企业应用在项目中,微服务的框架也被更多人学习和使用,但是大部分情况下都是停留在应用层。一、演变过程1.1服务注册和发现基本概念服务注册:将某个或者某些服务的信息(模块的ip和...

    40K+Star!Mall电商实战项目开源,附源码、教程合集

    最近看了下我的Github,发现mall项目已经突破40K+Star,有点小激动!记得去年8月的时候mall项目刚过20K+Star,时隔1年多已经增长到了40K+Star。今天跟大家聊聊mall项目...

    SpringCloud 常见注册中心的比较(springcloud注册过程)

    一、概述springcloud是一个非常优秀的微服务框架,要管理众多的服务,就需要对这些服务进行治理,也就是我们说的服务治理,服务治理的作用就是在传统的rpc远程调用框架中,管理每个服务与每个服务之间...

    简单介绍Nacos服务注册中心(nacos注册中心有什么用)

    Nacos是阿里开源的一个新框架,在分布式的架构中,Nacos同时扮演着服务注册中心和配置中心的角色。今天主要讲的是Nacos作为服务注册中心。分布式中著名的CAP理论,任何一种服务注册中心都只能实现...

    入门注册中心——consul(注册中心怎么注册)

    基础概念什么是注册中心随着微服务理论发展的成熟,越来越多互联网公司采用微服务架构来支持业务发展。各个微服务之间都需要通过注册中心来实现自动化的注册和发现。注册中心主要有三种角色:服务提供者(RPCS...

    08 Eureka的基础知识(eureka replication)

    Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在自己的子项目spring-cloud-netflix中,实现SpringCloud的服务发现功能。上图简要描述了Eur...

    微服务架构中的服务注册与发现有哪些?Zookeeper、Eu

    “大家好,我是码哥,《Redis高手心法》作者,本章节选自《Java面试高手心法58讲》专栏。随着单体应用的拆分,我们面临的首要问题就是采用哪种方式实现服务间的调用,像之前单体应用可能直接在配...

    Eureka 都挂了,微服务还能调通吗?

    如果你做过微服务开发,这个面试题应该能够立马答出来,如果你没做过微服务开发,但是学过一些SpringCloud组件的用法,这个问题可能要稍微想一下,但是也应该能够答出来。今天就来和大家说说这个问...

    ZooKeeper、Eureka、Consul 、Nacos微服务注册中心对比

    注册中心前言服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供...