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

news2024/12/24 8:55:17

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

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

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

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

相关文章

MybatisX:简单却不失强大

插件介绍MyBatisX是一款基于MyBatis、开源的持久层框架,它提供了对数据库的操作方法。MyBatisX则是MyBatis的升级版本,提供了更丰富的功能。MyBatisX提供了一个强大的SQL映射系统,允许开发人员在数据库和Java对象之间建立映射。MyBatisX的特点…

spring的注入(set注入、构造器注入)

目录 一、介绍 1.set注入和构造器注入是什么? 2.通俗的理解 3.set注入和构造器注入的核心原理 4.set注入和构造器注入的类型 5.set注入的外部bean和内部bean 二、set注入和构造器注入例子步骤(引用数据类型) (一&#xf…

Windows安装系列:部署FTP文件服务

1、下载服务端 http://www.serv-u.com.cn/dl/SERVU-Fulltrial-WINDOWS.zip 2、安装ftp服务 2.1、指定位置安装Server-U 2.2、安装最后一步,允许将Server-U添加到防火墙例外列表中 3、配置Server-U的域 3.1、打开Server-U控制台,进入配置向导&#xff…

2022年山东省职业院校技能大赛网络搭建与应用赛项正式赛题

2022年山东省职业院校技能大赛 网络搭建与应用赛项 第二部分 网络搭建与安全部署&服务器配置及应用 竞赛说明: 一、竞赛内容分布 竞赛共分二个模块,其中: 第一模块:网络搭建及安全部署项目 第二模块:服务…

全网详细解读基于java调用ChatGPT的API接口

文章目录1. 文章引言2. 基于java调用API2.1 环境配置2.2 编写代码3. 重要总结3.1 官网链接地址3.2 开发语言的示例链接1. 文章引言 首先,我们需要访问ChatGPT的官网,官网提供了很多调用ChatGPT的API接口的语言示例,比如java,go&a…

C语言学习小结(1)——初认识C语言

一、C语言概念 C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着…

第3章-进程同步、互斥与信号量(4)

进程同步、互斥与信号量 0 引言 操作系统的并发进程有些是独立的,有些需要相互协作。独立的进程在系统中执行时不受其他进程的影响,而另一些进程需要与其他进程共享数据,来完成共同的任务,这些进程之间具有协作关系。但我们要保…

2023发卡商城源码,最新自助下单彩虹云商城系统免授权无后门源码

# 彩虹自助下单系统 > PHP版本: > 7.0.1 ____ * 去除所有授权验证 * 支持自定义说说接口 * 去除后台广告与更新 * 可自定义易支付接口 ____ >安装教程: > 1、上传源代码到空间或服务器,并确保权限可读写。 > 2、上传完成后,使用浏览器…

vue-cli3打包上线页面空白接口404

使用vue-cli3创建一个vue3ts的项目输入npm run build 打包后生成dist文件夹 把文件夹上传到服务器此时发现页面一片空白,接口显示404 解决这个问题,需要手动在根目录下配置vue.config.js module.exports {publicPath: ./ }然后重新打包,重新…

mycat安装

查看是否安装jdk java -versionjdk安装方法 mycat下载: Mycat安装包1.6.7.3版本 创建新文件夹 mkdir test_mycat上传jar后移动到对应位置 mv Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz ./test_mycat/解压 tar zxvf Mycat-server-1.6.7.3-rele…

【成为架构师课程系列】一线架构师:6个经典困惑及其解法

目录 一线架构师:6个经典困惑及其解法 多阶段还是多视图? 内置最佳实践 架构方法论:3个阶段,一个贯穿

经典进程同步与互斥问题(5)

经典进程同步与互斥问题 1 生产者-消费者问题 1.1 问题描述 生产者-消费者问题是指有两组进程共享一个环形的缓冲池。一组进程被称为生产者,另一组进程被称为消费者。缓冲池是由若干个大小相等的缓冲区组成的,每个缓冲区可以容纳一个产品。生产者进程…

学习802.11之MAC帧格式(一篇就够!)

802.11规范的关键在于MAC(媒介访问控制层),MAC位于各式物理层之上,控制数据传输。负责核心成帧操作以及与有线骨干网络之间的交互。 802.11 MAC采用载波监听多路访问(CSMA)机制来控制对传输媒介的访问&…

操作系统闲谈05——内存管理

操作系统闲谈05——内存管理 一、 内存管理的基本方式 01 段式内存管理 将程序按照逻辑关系划分为段,每个段的大小不等,比如从下到上(代码段、数据段、bss段、栈、文件映射、堆等等),然后通过地址映射机制转换为实际…

阻抗匹配之反射波形测量

稍微接触过高速信号的朋友,一定对阻抗匹配和信号反射都有所了解,甚至可以按照公式,把反射波形一路推导出来。但是,纸上得来终绝浅,绝知此事要躬行。 今天,我们就来实测一下信号反射波形,测试环…

【MySQL】MyCat分库分表分片规则配置详解与实战(MySQL专栏启动)

📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公…

2023年美国大学生数学建模时间、分析及算法代码

美国大学生数学建模——干货2023年美赛比赛日期和时间赛题类型算法代码美赛常见数模问题分类问题判别分析:聚类分析:神经网络分类:优化问题线性规划:非线性规划:整数规划:动态规划:多目标规划&a…

超详细讲解字符串查找函数(保姆级教程!!!)

超详细讲解字符串查找函数(保姆级教程!!!)字符串查找函数strstr函数strstr函数的使用strstr函数的模拟实现strtok函数strtok函数的使用strtok函数的模拟实现strpbrk函数strpbrk函数的使用strpbrk函数的模拟实现strcspn…

地级市用电、用水、用气数据指标

用电用水量和煤气及液化石油气供应及利用情况可以反映出城市基础设施的建设情况!之前我们基于历年的《中国城市统计年鉴》整理了1999—2020年的人口数量数据指标、人口变动数据指标、用地相关数据指标、污染物排放和环境治理相关数据指标、地区生产总值及一二三产构…

【MyBatis】| MyBatis的逆向⼯程

目录 一:MyBatis的逆向⼯程 1. 逆向⼯程配置与⽣成 2. 测试生成的逆向⼯程 一:MyBatis的逆向⼯程 (1)所谓的逆向⼯程是:根据数据库表逆向⽣成Java的pojo类,SqlMapper.xml⽂件,以及Mapper接⼝…