微服务讲堂--【5】系统自举

2023-10-26

    这里的“系统自举”借用了操作系统的概念。在操作系统启动之前,计算机要先加载自举程序,再由自举程序加载操作系统的启动程序。整个详细过程不在这里描述,可以在网络查阅相关资料。

    为什么要在微服务系统中特别提及系统自举这个概念呢,因为这内容很重要,而且常常被忽略,以至于很多人对这个过程一无所知。这个部分过程之所以重要,因为他是整个微服务系统的起点。在微服务首次部署或者迁移、扩容的时候,都会面临一个问题,如何在一个空操作系统里,快速部署并启动一个微服务。

    当一套应用系统,不论他是否是微服务,要被部署到一个空白操作系统中,首先都要解决两个问题。一个是如何将这套系统的文件传输到目标操作系统中,另一个问题是,如何启动这套系统的主程序。在一个空白操作系统中,是没有现成的K8S,只有那些原生的后台服务。因此,即使微服务被封装在docker中,这个问题依然存在。

    有人可能会说,我可以在空白预先部署一个代理程序,由这个代理程序来负责部署和启动后续的应用系统。即使如此,那么这个代理程序的部署和启动同样也面临着自身的部署和启动问题。即,外部系统如何在一个空白操作系统中自举。

    在所有的自动运维工具,我对ansible特别推崇。并不是他的功能特别丰富和强大,而是他基于ssh部署各部分系统。ssh是linux操作系统自带的原生后台服务,在Linux启动之后,ssh就已经准备完成,等待响应请求,不需要额外的部署动作。同时,ssh也可以完成文件传输,部署到指定的目录中。ssh还能够接受对应指令,启动特定的可执行程序,包括脚本。ansible很聪明利用ssh这三个特性,完成系统自举,实现自动化部署。在windows系统中,也是有类似的功能的命令,如net。但由于安全问题,很多管理员默认将其禁用,这也是一个需要权衡的问题。

    在完成系统自举,将应用系统部署到空操作系统之后,是否还要继续沿用ssh来完成更多功能呢,个人认为大可不必。自举程序实现的是从0到1就可以了,可以确保自身足够精悍短小,还十分稳定。而更多丰富和强大的功能,应该由后续的应用系统自身来完成,实现从1到N的演变。即使是文件传输和指令控制,也可以,而且也建议在应用系统中完成。比如增量传输,这在大规模部署或者大型文件传输中,尤为关键,否则很容易造成网络风暴甚至系统雪崩,反而影响了正常业务进行。

 

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

微服务讲堂--【5】系统自举 的相关文章

  • 微服务项目之项目简介

    目录 项目模式 技术栈 项目架构图 模块 主模块 项目模式 电商模式 市面上有5种常见的电商模式 B2B B2C C2B C2C O2O 1 B2B模式 B2B Business to Business 是指 商家与商家建立的商业关系 如
  • 一文带你从IntelliJ IDEA中一键生成Controller、Service、Dao、Model层代码,真的不看看吗?

    前言 EasyCode插件介绍与安装 简介EasyCode是基于IntelliJ IDEA开发的代码生成插件 支持自定义任意模板 Java html js xml 只要是与数据库相关的代码都可以通过自定义模板来生成 支持数据库类型与java
  • HCIE云计算之FusionCloud 6.3部署架构

    HCIE云计算之FusionCloud 6 3部署架构 一 不同的type类型场景需求 二 Region Type 1部署方案 1 Region Type 1简介 2 Region Type 1部署私有云介绍 3 Region Type 1
  • 企业架构LNMP学习笔记29

    Nginx负载均衡配置 架构分析 1 用户访问请求Nginx负载均衡服务器 2 Nginx负载均衡服务器再分发请求到Web服务器 实际配置负载均衡 只需修改作为负载均衡服务器的Nginx即可 当前架构中的server04 在客户端解析域名到
  • Keycloak概述

    这里写自定义目录标题 Keycloak概述 Single Sign On Kerberos 社交登录 用户合并 客户端适配 管理控制台 用户管理控制台 标准协议 授权服务 Getting Started Keycloak概述 keycloa
  • SpringCloud概述

    SpringCloud概述 1 SpringCloud是什么 2 SpringCloud和SpringBoot关系 3 Dubbo和SpringCloud技术选型 4 SpringCloud作用 1 SpringCloud是什么 现代化的J
  • 10 微服务流程规范篇:高速迭代的研发过程需要怎样的规范?

    上一课时 我讲解了微服务质量保障体系的全景概览 本课时我主要讲解流程规范 高速迭代的研发过程需要怎样的规范呢 业务流程阶段 众所周知 产品研发是为业务服务的 在深入讲解产品研发流程之前 我们先整体看下业务流程 分为 3 个阶段 产品研发阶段
  • spring security oauth2 动态切换角色或者岗位,更新redis缓存

    1 切换角色或者岗位后更新缓存token 获取token 并更新token 特别要注意token中的内容 accessToken getAdditionalInformation put SecurityConstants DETAILS
  • 测试人员为什么要去了解业务架构和技术架构?

    问题 在入职公司不久 我参加老员工再给新来的员工和管培生宣讲产品的业务 功能 直接拿着功能清单和实际页面在讲解 等把产品功能讲完了 我问了一下实习生和管培生怎么样 他们都说功能讲的太多 太乱 不清楚讲解产品的核心业务逻辑及操作流程 后来发现
  • 若依微服务版本代码生成对sqlserver的支持

    目录 前言 一 后端 1 pom依赖 2 yml配置配置数据源 3 新增service impl 注意 4 新增mapper接口
  • 微服务测试是什么?

    微服务测试是一种特殊的 测试类型 因为它涉及到多个独立的服务 以下是进行微服务测试的一般性步骤 1 确定系统架构 了解微服务架构对成功测试至关重要 确定每个微服务的职责 接口 依赖项和通信方式 了解这些信息可以帮助您更好地规划测试用例和测试
  • 进阶之Kotin协程原理和启动方式详细讲解(优雅使用协程)

    协程就是方法调用封装成类线程的API 方法调用当然比线程切换轻量 而封装成类线程的API后 它形似线程 可手动启动 有各种运行状态 能够协作工作 能够并发执行 前言 kotlin的协程在初学者看来是一个很神奇的东西 居然能做到用同步的代码块
  • 谁能想到Java技术能跟看小说一样学习,用故事给技术加点料

    Java是现阶段中国互联网公司中 覆盖度最广的研发语言 掌握了Java技术体系 不管在成熟的大公司 快速发展的公司 还是创业阶段的公司 都能有立足之地 大家都知道 阿里P7高级技术专家 基本上是一线技术人能达到的最高职级 也是很多程序员追求
  • Autosar诊断——配置部分服务功能寻址不响应,抑制肯定响应

    Autosar诊断 简介和功能概述 Autosar诊断 DCM模块内的子模块 Autosar诊断 DSL Diagnostic Session Layer Autosar诊断 DSD Diagnostic Service Dispatche
  • Docker与微服务:构建和部署微服务架构的完整指南

    微服务架构已经成为现代应用开发的主要范式之一 而Docker容器技术则为微服务的构建 部署和管理提供了理想的解决方案 本文将深入探讨如何使用Docker构建和部署微服务架构 提供更多示例代码和细致的指南 以帮助大家更全面地理解和运用这些关键
  • 微服务常见的配置中心简介

    微服务架构中 常见的配置中心包括以下几种 Spring Cloud Config Spring Cloud Config是官方推荐的配置中心解决方案 它支持将配置文件存储在Git SVN等版本控制系统中 通过提供RESTful API 各个
  • 专车数据层架构进化往事:好的架构是进化来的,不是设计来的

    很多年前 读了 子柳 老师的 淘宝技术这十年 这本书成为了我的架构启蒙书 书中的一句话像种子一样深埋在我的脑海里 好的架构是进化来的 不是设计来的 2015 年 我加入神州专车订单研发团队 亲历了专车数据层 架构进化 的过程 这次工作经历对
  • 阿里技术官亲笔力作:Kafka限量笔记,一本书助你掌握Kafka的精髓

    前言 分布式 堪称程序员江湖中的一把利器 无论面试还是职场 皆是不可或缺的技能 而Kafka 这款分布式发布订阅消息队列的璀璨明珠 其魅力之强大 无与伦比 对于Kafka的奥秘 我们仍需继续探索 要论对Kafka的熟悉程度 恐怕阿里的大佬们
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • DockerCompose - 微服务项目部署全过程(最佳实践)

    目录 一 微服务项目部署 1 1 项目介绍 1 2 准备 MySQL 初始化文件 1 3 pom xml 插件 1 4 测试工作 1 5 编写 Dockerflie 文件 1 6 编写 DockerCompose yml 文件 1 7 修改

随机推荐

  • 跨平台方案Flutter入门——开发环境搭建

    目录 系统配置要求 获取 Flutter SDK 配置环境变量 安装 Android Studio 运行 flutter doctor 1 Anroid 的 SDK 路径 2 许可未同意 Android Studio 安装插件 Androi
  • 快来动手训练属于自己的聊天机器人吧!

    活动时间 北京时间2023年3月16日15 00 17 00 活动形式 在线直播 动手训练营 动手实践 使用 Amazon SageMaker 构建基于开源 GPT J 模型的对话机器人应用 难度 入门 时间 20 分钟 开发者可以使用 A
  • Python 遇到的问题

    目录 问题1 Pycharm 项目中 Cannot find declaration to go to 问题2 TypeError list indices must be integers or slices not tuple
  • 【C++】继承

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 继承的概念 二 被继承成员访问方式的变化 三 赋值兼容
  • 详解不带参数的 Math.max() 返回 -Infinity

    Math max 是内置的 JavaScript 函数 从给定的一组数字中返回最大值 其语法如下 Math max value1 value2 例如 让我们从 1 2 以及 3 中找到最大的数字 Math max 1 2 3 gt 3 正如
  • [架构之路-199] - 可靠性需求与可靠性分析:鱼骨图、故障树分析法FTA、失效模式与影响DFMEA,找到影响故障的主要因素

    目录 引言 第1章 故障树分析法与鱼骨图的比较 1 1 相同点 1 2 区别点 第2章 鱼骨图 第3章 故障树 3 1 示意图 3 2 故障树解读 3 3 故障树常见符号 第4章 产品失效 Failure 模式分析DFMEA 引言 目标系统
  • git The following paths are ignored by one of your .gitignore files: Use -f if you really want to ad

    git 右键或者命令add 文件或目录 不允许提交 提示 The following paths are ignored by one of your gitignore files Use f if you really want to
  • msvcp140.dll重新安装的解决方法(一键安装方法)

    msvcp140 dll电脑文件中的dll文件 即动态链接库文件 若计算机中丢失了某个dll文件 就会导致某些软件和游戏等程序无法正常启动运行 并且导致电脑系统弹窗报错 其安装方法 1 打开浏览器输入 dll修复程序 site 并下载安装m
  • 计算机二级准考证打印通道,2019年9月计算机二级准考证打印快速入口

    2019年9月份为全国计算机等级考试时间 各省从9月11日起陆续开始打印准考证 考生与9月8日起登入打印入口进行打印 考点报名者在考点领取即可 下面我们快来看看北京 上海 陕西 吉林等各省市的打印时间和打印入口在哪 1 各省计算机二级准考证
  • Redis 7 第九讲 微服务集成Redis 应用篇

    Jedis 理论 Jedis是redis的java版本的客户端实现 使用Jedis提供的Java API对Redis进行操作 是Redis官方推崇的方式 并且 使用Jedis提供的对Redis的支持也最为灵活 全面 不足之处 就是编码复杂度
  • Java 区块链BLOCKCHAIN中区块BLOCK的hash值的计算

    Java 区块链中区块的hash值的计算 计算方法有多种 如 可以直接String拼接 也可以用stringbuffer 或者stringbuilder 这里采用了速度较快的stringbuilder 自己编程的时候可采用stringbuf
  • 实验:使用SSMS创建并管理数据库及其基本表(代码版)

    目录 一 实验要求 1 使用SQL命令创建学生课程 SCC 数据库 2 使用SQL命令学生课程数据库中的学生表 S 课程表 C 选课表 SC 并保存关闭设计窗口 3 使用SQL命令修改基本表结构 即增加和删除列 4 使用SQL命令创建及管理
  • Everything+cpolar内网穿透轻松实现公网远程访问本地硬盘文件

    公网远程访问本地硬盘文件 内网穿透 文章目录 公网远程访问本地硬盘文件 内网穿透 前言 1 下载cpolar和Everything软件 3 设定http服务器端口 4 进入cpolar的设置 5 生成公网连到本地内网穿透数据隧道 总结 前言
  • Request和ThreadLocal

    Web容器中有三个周期 request Httpsession application 其中request是客户端发出的一个请求 这个request的载体就是一个 线程 实际等同于一个线程的生命周期 Request是封装在线程上面一个抽象概
  • windows下pip安装mysqlclient失败

    环境 windows8家庭版 python3 6 7 在虚拟环境中pip install mysqlclient报错 解决方案 下载地址 ctrl f键入mysqlclient 找到对应的版本即可 博主是python3 6 7 所以选择了倒
  • 2021 程序媛跳槽记:学习计划篇

    三妹跳槽系列文章 2021 程序媛跳槽记 百度阿里字节等各大厂面经篇 2021 程序媛跳槽记 必刷LeetCode算法题 附解题报告 坦白说 我这个人不算聪明 基础也不咋样 这次跳槽我一开始是很没信心的 甚至想把这次尝试当做试水 如果受打击
  • Go_数组遍历、最大值、求和、多维数组

    数组 数组就是用来存储数据的容器 存储多个数据时数据类型要一致 如果想要保存任意类型数据 需要声明为接口类型数组 数组定义完成后 可以对数组进行赋值操作 数组是通过下标来进行操作的 下标的范围是从0开始到数组长度减1的位置 特点 数组是一种
  • 关闭windows defender教程

    由于windows自带的防护软件在后台占用大量内存 然后可以使用其他第三方软件来 然后本人使用的是火绒 这里平时的内存占用了不到100MB 然后其实这里本来应该插入一个windows defender的占用内存 我记得是在200 MB 反正
  • git 上传 github报错 (Permission denied)

    文章目录 结论 起因 新建github仓库 本地仓库初始化 结论 ssh config 中 Host 值可以随意写 cat git config 中 remote origin url git B test demo git url 值 后
  • 微服务讲堂--【5】系统自举

    这里的 系统自举 借用了操作系统的概念 在操作系统启动之前 计算机要先加载自举程序 再由自举程序加载操作系统的启动程序 整个详细过程不在这里描述 可以在网络查阅相关资料 为什么要在微服务系统中特别提及系统自举这个概念呢 因为这内容很重要 而