聊聊微服务

架构演变

单体架构: All in One,所有的功能模块都在一个工程里。
image.png

SOA架构: 这个架构当不当正不正,对于现在来说,有点老,甚至需要ESB,WebService之类的,基本不会使用了。

微服务架构: 微服务架构思想是马丁福勒提出的

https://martinfowler.com/articles/microservices.html

他的核心思想是这一段话:

In short, the microservice architectural style 1 is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

简而言之,微服务架构风格1是一种将单个应用程序开发为一套小型服务的方法,每个服务都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)通信。这些服务围绕业务能力构建,并可通过全自动部署机制独立部署。这些服务的集中管理最低限度,这些服务可能用不同的编程语言编写,并使用不同的数据存储技术。

  • 微服务架构是一个软件架构风格,他不是标准。
  • 将一个单体架构的产品拆分成多个服务,多个服务组成了完成的产品功能。
  • 每个服务是可以完全独立部署的,互不影响。
  • 可以采用HTTP这种轻量级的方式实现服务之间的交互。
  • 在拆分服务时,一般是按照产品的业务领域去划分不同的服务,也可以针对单个功能做成一个服务。
  • 采用DevOps的方式去做自动化部署。 (后面会学)
  • 支持采用不用的语言去构建一个完整的产品。

image.png
image.png

微服务架构:是架构思想。

微服务:拆分出来的微小的服务,比如上图中的商品服务就是一个微服务。

微服务框架:对微服务的架构思想落地的一些技术。

SpringCloud生态

官方地址: https://spring.io/projects/spring-cloud

咱们要学习SpringCloud生态里的几个技术:

  • SpringCloud Alibaba: Nacos
  • SpringCloud:OpenFeign
  • SpringCloud Alibaba:Sentinel
  • SpringCloud:Gateway
  • 链路追踪:Sleuth + Zipkin - SkyWalking(不玩)

image.png

Ps:这里只关注应用,底层源码之类的内容,这里不涉及。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十四届蓝桥杯青少年组省赛 编程题真题题解

明天我就要考蓝桥杯省赛了,本蒟蒻已瑟瑟发抖,所以现在写一篇文章。 题目分别为: 1.​​​​​​B4270 [蓝桥杯青少年组省赛 2023] 特殊运算符 2.B4271 [蓝桥杯青少年组省赛 2023] 四叶玫瑰数 3.B4272 [蓝桥杯青少年组省赛 2023] 质因数的…

HTML全景效果实现

我将为您创建一个精美的360度全景效果页面,使用Three.js库实现沉浸式全景体验,并提供用户友好的控制界面,完整代码看文章末尾。 设计思路 使用Three.js创建全景球体 添加控制面板用于切换不同场景 实现自动旋转和手动控制选项 添加加载状…

Python 属性描述符(描述符用法建议)

描述符用法建议 下面根据刚刚论述的描述符特征给出一些实用的结论。 使用特性以保持简单 内置的 property 类创建的其实是覆盖型描述符,__set__ 方法和 __get__ 方法都实现了,即便不定义设值方法也是如此。特性的 __set__ 方法默认抛出 AttributeError: …

Milvus 向量数据库内存使用相关了解

1、支持 MMap 的数据存储在 Milvus 中,内存映射文件允许将文件内容直接映射到内存中。这一功能提高了内存效率,尤其是在可用内存稀缺但完全加载数据不可行的情况下。这种优化机制可以增加数据容量,同时在一定限度内确保性能;但当数…

C++编程之旅-- -- --默认成员函数(全详解)

目录前言构造函数构造函数形式:构造函数的特性:explicit关键字析构函数析构函数的概念析构函数的特性含有类类型的成员变量的类析构函数的调用拷贝构造函数拷贝构造函数的概念拷贝构造函数的特性浅拷贝和深拷贝:拷贝构造函数典型调用场景&…

Linux网络编程:TCP的远程多线程命令执行

目录 前言: 一、前文补充 二、服务端的修改 三、Command类的新增 前言: 好久不见,最近忙于其他事情,就耽误了咱们的Linux的网络部分的学习。 今天咱们先来给之前所学的TCP的部分进行一个首尾工作,主要是给大家介绍…

重学React(三):状态管理

背景: 继续跟着官网的流程往后学,之前已经整理了描述UI以及添加交互两个模块,总体来说还是收获不小的,至少我一个表面上用了四五年React的前端小卡拉米对React的使用都有了新的认知。接下来就到了状态管理(React特地加…

java web项目入门了解

目录一、项目流程1. 使用servle2. 使用框架二、了解java web项目构造1. 项目目录结构2. 查看页面访问顺序3. 发起请求:jqueryajax4. 接受参数5. JSONJSON 数组三、get和post请求区别一、项目流程 1. 使用servle 有客户端和服务端,客户端和服务端进行交…

网络资源模板--基于Android Studio 实现的日记本App

目录 一、测试环境说明 二、项目简介 三、项目演示 四、部设计详情(部分) 创建修改页面 五、项目源码 一、测试环境说明 电脑环境 Windows 11 编写语言 JAVA 开发软件 Android Studio (2020) 开发软件只要大于等于测试版本即可(近几年官网直接下载也可…

GO的启动流程(GMP模型/内存)

目录第一部分:程序编译第二部分:函数解读1)Golang 核心初始化过程2)创建第一个协程3)启动系统调度4)跳转main函数5)总结第三部分:GMP模型Goroutine流程解读第四部分:内存…

OLTP与OLAP:实时处理与深度分析的较量

OLTP(Online Transaction Processing)定义:OLTP 系统主要用于管理事务性应用程序的数据。这类系统需要支持大量的短时、快速的交互式事务,比如银行交易、在线购物订单等。特点:实时处理:OLTP 系统要求对数据…

数据安全与隐私保护:企业级防护策略与技术实现

引言:数据安全的新时代挑战在数字化转型加速的今天,数据已成为企业最核心的资产。然而,数据泄露事件频发,据 IBM《2024 年数据泄露成本报告》显示,全球数据泄露平均成本已达445 万美元,较 2020 年增长了 15…

AI_RAG

一.为什么需要RAG(AI幻觉)大模型LLM在某些情况下给出的回答很可能错误的,涉及虚构甚至是故意欺骗的信息。二.什么是RAGRAG是一种结合“信息检索”和“文本生成”的技术,旨在提升生成式AI模型的准确性和可靠性。它通过以下两个核心…

LeetCode111~130题解

LeetCode111.二叉树的最小深度: 题目描述: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root …

n8n飞书webhook配置(飞书机器人、飞书bot、feishu bot)Crypto节点、js timestamp代码、Crypto node

自定义机器人使用指南 利用 n8n 打造飞书 RSS 推送机器人 文章目录自定义机器人使用指南注意事项功能介绍在群组中添加自定义机器人操作步骤邀请自定义机器人进群。- 进入目标群组,在群组右上角点击更多按钮,并点击 设置。- 在右侧 设置 界面&#xff0…

nhdeep档案管理工具软件官网

欢迎访问nhdeep官网: www.nhdeep.com NHDEEP提供一系列专业的单机版档案管理工具,满足不同场景下的档案管理需求,无需网络连接,数据安全可靠。所有工具均提供免费试用版下载。 档案综合管理系统单机版:全面的档案管理解决方案&a…

RocketMQ节点部署计算方案

节点计算公式 业务场景 预期峰值TPS:200,000 单组容量:40K TPS 容灾要求:同城双机房 nameServer节点数max(3, (15/50) 1) max(3, 0.3 1) max(3, 1.3) 3 Broker节点数ceil(200,000 / 40,000) 5组 总节点数 NameServer节点Broker组数(Mas…

MyBatis联合查询 - XML篇

文章目录数据库设计MyBatis 配置MyBatis 映射文件Mapper 接口总结数据库设计 建表 SQL CREATE TABLE user (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL );CREATE TABLE order (id INT PRIMARY KEY AUTO_INCREMENT,user_id INT NOT NULL,order_no VARCHAR(…

Kubelet 探针如何选择 IP:status.PodIP 溯源与“同 Pod 两个 IP“现象解析

背景与现象同一个 Pod 的 readiness 和 liveness 探针日志显示连接的 IP 不一致(例如 10.10.6.10:9999 与 10.10.6.32:9999)。本文从 kubelet 源码入手,解释探针目标 IP 的来源、为何会出现两个不同 IP,并给出建议与验证方法。在如…

Arm Development Studio 安全通告:CVE-2025-7427

安全之安全(security)博客目录导读 目录 一、概述 二、CVE 详情 三、受影响产品 四、建议 五、致谢 六、版本历史 一、概述 ARM已知悉一个影响 Arm Development Studio 的安全漏洞,该漏洞可能允许攻击者执行 DLL 劫持攻击(DLL hijacking attack&…