当前位置: 首页 > news >正文

从运维角度看微服务 k8s部署微服务【偏理论】【AL】

从运维角度看微服务 & 部署微服务【偏理论】

1、微服务的特点

服务组件化:
每个服务独立开发、部署,有效避免一个服务的修改引起整个系统重新部署。
技术栈灵活:
约定通信方式,使得服务本身功能实现对技术要求不再那么敏感。独立部署:
每个微服务独立部署,加快部署速度,方便扩展。
扩展性强:
每个微服务可以部署多个,并且有负载均衡能力。
独立数据:
每个微服务有独立的基本组件,例如数据库、缓存等。

2 、另一个项目的微服务架构图及解释

① discovery-service  8761   
② zipkin-service     9411
③ notebook-service   1111
④ gateway-service    8765

在这里插入图片描述

3、单体应用 vs 微服务

在这里插入图片描述
微服务架构图

注册中心 eureka-service
网关 api gateway / gateway-service前端服务 portal-service
商品服务 product-service
订单服务 order-service
库存服务 stock-service配置中心 Apollo

在这里插入图片描述

4 微服务架构的理解

1、微服务间如何通信?REST API,RPC,MQ
2、微服务如何发现彼此?
3、组件之间怎么个调用关系?
4、哪个服务作为整个网站入口?
5、哪些微服务需郪对外访问?
6、微服务怎么部署?更新?扩容?
7、区分有状态应用与无状态应用
----------回答1----------------1、微服务间如何通信?REST API,RPC,MQ
2、微服务如何发现彼此?通过服务发现机制,如使用consul、etcd等服务发现技术,可以让微服务之间相互发现。
3、组件之间怎么个调用关系?组件之间通过API调用机制进行通信,如RESTful API,RPC,MQ等。
4、哪个服务作为整个网站入口?最终用户访问的入口服务,一般是一个负责处理外部请求的API网关服务。5、哪些微服务需要对外访问?对外提供服务的服务需要对外访问,如:API网关服务,Auth服务,支付服务等。
6、微服务怎么部署?更新?扩容?微服务可以采用容器化部署,通过容器编排工具如Kubernetes来实现部署,更新,扩容等。
7、区分有状态应用与无状态应用?有状态应用是指应用程序的状态会被保存,比如服务器的内存状态,会话状态等,而无状态应用是指应用程序的状态不会被保存,比如HTTP服务器,每次请求都会从头开始处理,没有记录之前的状态。
----------回答2--------
1、微服务间可以通过REST API、RPC或者消息队列(MQ)来进行通信。REST API是一种轻量级的通信方式,通过HTTP请求和响应来实现;RPC是远程过程调用的缩写,是一种简单的、高效的、基于二进制的远程通信方式;消息队列是一种分布式系统中,应用程序间通信的方式。
2、微服务可以通过服务发现来发现彼此。服务发现是一种动态获取服务地址和可用性的机制,常用的服务发现机制有DNS、Eureka、Consul等。
3、组件之间的调用关系取决于各组件的设计,通常通过调用API、RPC、消息队列等来实现组件间的通信。4、整个网站的入口通常是一个API网关,它是整个系统的入口,负责请求的路由和组合,对外暴露统一的接口。
5、对外访问的微服务可以通过API网关进行对外访问。具体哪些微服务需要对外访问,取决于业务需求。
6、微服务的部署、更新、扩容等操作可以通过自动化工具,如Docker、Kubernetes等进行实现。7、有状态应用:
需要记录它在每次请求间的状态,例如购物车、订单状态等。
可以使用关系型数据库或 NoSQL 数据库来存储应用状态。
需要处理复杂的状态同步,以确保在分布式环境中的数据一致性。无状态应用:
不需要记录任何状态,因此不需要存储任何状态。
每个请求都是独立的,因此不需要关心数据的同步。
可以使用负载均衡器直接将请求分派到任意可用实例上,这使得它们可以轻松扩展。

5 为什么要用注册中心

微服务架构是一种分布式架构,其中一个微服务可以独立地部署、开发、运行和维护。当微服务数量增加时,通信和发现成为了一个重要的问题。
注册中心是微服务架构中一个关键的组件,它的作用是管理微服务的注册和发现。
每个微服务启动时,都会在注册中心注册自己的服务信息,包括自己的地址、端口号等。其他微服务可以通过注册中心获取到需要调用的微服务的地址和端口。注册中心还提供了容错机制,当一个微服务故障时,它可以从注册中心删除该服务的注册信息,避免请求该服务时产生错误。
总的来说,注册中心是微服务架构中的一个核心组件,对于简化微服务的通信和发现,保证微服务的高可用性起着重要的作用。

在这里插入图片描述

6 项目迁移到K8S平台是怎样的流程

1制作镜像 --> 2控制器管理Pod --> 3暴露应用 --> 4对外发布应用 --> 5日志/监控
在这里插入图片描述

1、制作镜像

在这里插入图片描述

2、控制器管理Pod / deployment

在这里插入图片描述

3、暴露应用 service

在这里插入图片描述

4、对外发布应用 ingress (域名)

在这里插入图片描述

5、Pod数据持久化

在这里插入图片描述

6、日志与监控

Filebeat+ELK
Prometheus+Grafana

7 传统部署与K8S部署区别

传统部署 - 整体架构
在这里插入图片描述
K8S部署–整体框架
在这里插入图片描述

(在K8S中部署SpringCloud微服务项目 53:22)
END

相关文章:

从运维角度看微服务 k8s部署微服务【偏理论】【AL】

从运维角度看微服务 & 部署微服务【偏理论】 1、微服务的特点 服务组件化: 每个服务独立开发、部署,有效避免一个服务的修改引起整个系统重新部署。 技术栈灵活: 约定通信方式,使得服务本身功能实现对技术要求不再那么敏感。…...

专题 | 防抖和节流

一 防抖:单位时间内,频繁触发事件,只执行最后一次 场景:搜索框搜索输入(利用定时器,每次触发先清掉以前的定时器,从新开始) 节流:单位时间内,频繁触发事件&…...

C++入门:重载运算符和重载函数

C 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个重载函…...

conda 新建虚拟环境 等等

1:conda create -n env_name package_name #创建名为env_name的新环境,并在该环境下安装名为package_name 的包,例如:conda create -n Arg python3.8 # 创建名字为Arg python为3.8版本的虚拟环境2: conda activate env…...

【C++:STL之栈和队列 | 模拟实现 | 优先级队列 】

目录 1. stack的介绍和使用 1.1 stack的介绍 1.2 stack的使用 2 栈的模拟实现 3 queue的介绍和使用 3.1 queue的介绍 3.2 queue的使用 4 queue的模拟实现 5 deque的介绍 5.1deque的原理介绍 5.2 deque的缺陷 5.3 为什么选择deque作为stack和queue的底层默认容器 6 p…...

基于SpringBoot+Vue的疫苗预约管理系统(Java项目)

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、…...

华为OD机试 - 计算网络信号(Python),真题含思路

计算网络信号 题目 网络信号经过传递会逐层衰减,且遇到阻隔物无法直接穿透,在此情况下需要计算某个位置的网络信号值。 注意:网络信号可以绕过阻隔物 array[m][n] 的二维数组代表网格地图,array[i][j] = 0 代表 i 行 j 列是空旷位置;array[i][j] = x ( x 为正整数)代表 i …...

【Spring】注解实现IOC操作,你理解了吗?

作者:狮子也疯狂 专栏:《spring开发》 坚持做好每一步,幸运之神自然会驾凌在你的身上 专栏推荐:写文章刚刚起步,各个专栏的知识点后续会补充完善,不断更新好文,希望大 家支持一下。 专栏名字El…...

微搭低代码从入门到精通01-总体介绍

在过去我们开发小程序,要学习各类知识。比如前端知识、后端知识、服务器知识及各种中间件及数据库的知识。 要想学会这些知识,既需要投入大量的学习时间,而且要经过相当的实践才可以掌握。 如果立志从事开发行业,投入精力去学习…...

类的继承

类的继承:一个类继承另一个类,自动拥有这个类的属性和方法,类似于包含与被包含的关系。被继承的类称为父类--子类则是继承父类的类。一个父类可以有多个子类;一个子类可以有多个父类(多继承)问题创建子类时…...

应用场景一:西门子PLC通过桥接器连接MQTT服务器

应用场景描述: 云平台、MES等数据采集、设备管理系统,需要通过MQTT的方式,上传和下发数据,MQTT服务器可以获取PLC的实时状态数据,也可以下发控制指令。桥接器提供4G、WIFI和有线三种连接方式。 网络拓扑:…...

计算机组成原理(四)

1.理解存储器的分类方法;理解存储器的层次结构;熟悉存储器的几个技术指标(主要是存储容量、存取时间、存取周期、存储器带宽等); 存储器分类方法:   按与CPU的连接和功能分类:     主存储…...

状态机设计举例

⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 🔥文章和代码已归档至【Github仓库&#xf…...

Kubernetes1.25中Redis单机和集群部署实例二

1、概述我们知道在 Kubernetes 容器编排平台中, 我们可以非常方便的进行应用的扩容缩, 同时也能非常方便的进行业务的迭代,本章主要讲解在Kubernetes1.25搭建Redis单实例和Redis集群主从同步的环境流程步骤, 如果是高频访问重要的线上业务我们最好是部署在物理机器上…...

【STM32】【HAL库】遥控关灯0 概述

相关连接 【STM32】【HAL库】遥控关灯0 概述 【STM32】【HAL库】遥控关灯1主机 【STM32】【HAL库】遥控关灯2 分机 【STM32】【HAL库】遥控关灯3 遥控器 需求 家里有几个房间,开关距离床都挺远的 睡觉想要关灯的时候需要下床 因此设计了本次项目 需要满足以下要求: 可以控…...

C语言学习笔记(三): 选择结构程序设计

if语句 if(){} if (a1){printf("hehe");} //单独一个ifif(){}else{} int a 1, b 2;if (a b) {printf("haha"); //if else}else{printf("hehe");}if(){}else if(){} int a 1, b 2;if (a b) {printf("haha");}else if (a …...

图----无向图

1.定义 图的定义:图是由一组顶点和一组能够将两个顶点相连的边组成 边:edge 顶点:vertex 连通图:如果从任意一个顶点都存在一条路径到达另外一个任意顶点,我们称这幅图是连通图。 非连通图:由若干连通的…...

【C++1】函数重载,类和对象,引用,/string类,vector容器,类继承和多态,/socket,进程信号

文章目录1.函数重载:writetofile(),Ctrue和false,C0和非02.类和对象:vprintf构造函数:对成员变量初始化析构函数:一个类只有一个,不允许被重载3.引用:C中&取地址,C中…...

JetpackCompose从入门到实战学习笔记8—ConstraintLayout的简单使用

JetpackCompose从入门到实战学习笔记8—ConstraintLayout的简单使用 1.简介: Compose 中的 ConstraintLayout ConstraintLayout 是一种布局,让您可以相对于屏幕上的其他可组合项来放置可组合项。它是一种实用的替代方案,可代替使用多个已嵌…...

Spring Boot 快速入门(绝对经典)

目录 1、理论概述 1.1、什么是Spring Boot? 1.2、Spring Boot的特点 1.3、开发环境 2、实战——创建和配置项目 2.1、Spring Boot项目创建的两种方式 2.1.1、方法一:通过网站构建项目 2.1.2、使用Spring Initializr创建(推荐) 2.2、…...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

未授权访问事件频发,我们应当如何应对?

在当下,数据已成为企业和组织的核心资产,是推动业务发展、决策制定以及创新的关键驱动力。然而,未授权访问这一隐匿的安全威胁,正如同高悬的达摩克利斯之剑,时刻威胁着数据的安全,一旦触发,便可…...

职坐标物联网全栈开发全流程解析

物联网全栈开发涵盖从物理设备到上层应用的完整技术链路,其核心流程可归纳为四大模块:感知层数据采集、网络层协议交互、平台层资源管理及应用层功能实现。每个模块的技术选型与实现方式直接影响系统性能与扩展性,例如传感器选型需平衡精度与…...