跳至主要內容
微服务之注册和发现

微服务之注册和发现

服务注册和发现的基本原理

服务定义是服务提供者和服务消费者之间的约定,但是在微服务架构中,如何达成这个约定呢?这就依赖于服务注册和发现机制。

注册和发现的角色

在微服务架构下,服务注册和发现机制中主要有三种角色:

  • 服务提供者(RPC Server / Provider)
  • 服务消费者(RPC Client / Consumer)
  • 服务注册中心(Registry)

钝悟...大约 21 分钟设计架构微服务设计架构微服务分布式注册中心
微服务之服务调用

微服务之服务调用

RPC 简介

通过注册中心,服务消费者和服务提供者就可以感知彼此。但是,要实现交互还必须解决通信问题。

在单体应用中,一次服务调用发生在同一台机器上的同一个进程内部,因此也被称为本地方法调用。在微服务应用中,由于服务提供者和服务消费者运行在不同物理机器上的不同进程内,因此也被称为远程方法调用,简称 RPC(Remote Procedure Call)

RPC 是微服务架构的基石,它提供了一种应用间通信的方式。RPC 的主要作用是:


钝悟...大约 15 分钟设计架构微服务设计架构微服务分布式RPC
安全漏洞防护

安全漏洞防护

XSS

概念

跨站脚本(Cross-site scripting,通常简称为XSS) 是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了 HTML 以及用户端脚本语言。

XSS 攻击示例:

假如有下面一个 textbox

<input type="text" name="address1" value="value1from" />

钝悟...大约 7 分钟设计架构安全架构安全漏洞
认证设计

认证设计

认证和授权

什么是认证

认证 (Authentication) 是根据凭据验明访问者身份的流程。即验证“你是你所说的那个人”的过程。

身份认证,通常通过用户名/邮箱/手机号以及密码匹配来完成,也可以通过手机/邮箱验证码或者生物特征(如:指纹、虹膜)等其他因素。在某些应用系统中,为了追求更高的安全性,往往会要求多种认证因素叠加使用,这就是我们经常说的多因素认证。

常见的认证方式

  • 用户名、密码认证
  • 手机和短信验证码认证
  • 邮箱和邮件验证码认证
  • 人脸识别、指纹识别等生物因素认证
  • 令牌认证
  • OTP 认证
  • Radius 网络认证

钝悟...大约 10 分钟设计架构安全架构安全认证
授权设计

授权设计

授权模式

最简单的授权形式可能是根据是否已对发出请求的实体进行身份验证来授予或拒绝访问权限。 如果请求者可证明自己是所自称的身份,则可访问受保护的资源或功能。

常见的授权模式有以下几种:

  • ACL:ACL 即 通过访问控制列表。ACL 进行的授权涉及到维护明确的特定实体列表,这些实体有权或无权访问资源或功能。 ACL 提供对身份验证即授权的精细控制,但管理工作会随着实体数量的增加而变得困难。
  • RBAC:RBAC 即 基于角色的权限控制(Role-Based Access Control)。RBAC 应该是最常见的授权模式。 使用 RBAC 时,会对角色进行定义,以说明实体可执行的活动类型。 应用程序开发人员向角色而非单个实体授予访问权限。 然后,管理员可再将角色分配给不同的实体,从而控制哪些实体有权访问哪些资源和功能。在高级 RBAC 实现中,可将角色映射到权限集合,其中权限描述了可执行的细化操作或活动。 然后,会将角色配置为权限组合。 通过将授予给为实体分配的各种角色的权限进行相交,计算实体的总体权限集。
  • ABAC:ABAC 即 基于属性的访问控制 是一种更精细的访问控制机制。在此方法中,规则应用于实体、所访问的资源和当前环境。 这些规则用于确定对资源和功能的访问级别。 例如,可能只允许拥有管理员身份的用户在工作日上午 9 点至下午 5 点期间访问使用元数据标记“仅限工作时间的管理员”标识的文件。 在这种情况下,通过检查用户的属性(状态为管理员)、资源属性(文件上的元数据标记)以及环境属性(当前时间)来确定访问权限。
    • ABAC 的优点:可通过规则和条件评估实现更精细的动态访问控制,而无需创建大量特定的角色和 RBAC 分配。

钝悟...大约 15 分钟设计架构安全架构安全授权
《极客时间教程 - 微服务架构核心 20 讲》笔记

《极客时间教程 - 微服务架构核心 20 讲》笔记

什么是微服务架构

微服务是一种架构模式。

微服务的六个特点:

  • 一组小的服务
  • 独立的进程
  • 独立部署
  • 轻量级通信
  • 基于业务能力
  • 无集中式管理——这里指的是可以用不同的技术栈,不同的存储

微服务定义:基于有界上下文的、松散耦合的、面向服务的架构。

架构师如何权衡微服务的利弊

架构之道在于权衡利弊。


钝悟...大约 8 分钟笔记设计设计架构微服务
微服务简介

微服务简介

本文关键词:定义演进利弊如何拆分容量规划核心组件

什么是微服务

微服务定义

微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。

——Martin Fowler 和 James Lewis 对应微服务( Microservices)的定义


钝悟...大约 16 分钟设计架构微服务设计架构微服务分布式
《极客时间教程 - 从0开始学架构》笔记

《极客时间教程 - 从 0 开始学架构》笔记

架构到底是指什么?

系统和子系统

模块与组件

框架与架构

架构设计的历史背景

机器语言 -> 汇编语言 -> 高级语言 -> 结构化设计 -> 面向对象设计

架构设计的目的

架构设计的主要目的是为了解决软件复杂度带来的问题

复杂度来源:高性能

复杂度来源:高可用

复杂度来源:可扩展性

复杂度来源:低成本、安全、规模


钝悟...小于 1 分钟笔记设计设计架构
《后端存储实战课》笔记

《后端存储实战课》笔记

课前加餐丨电商系统是如何设计的?

创建和更新订单时,如何保证数据准确无误?


钝悟...大约 6 分钟笔记数据库架构数据库
2
3
4