SIP协议入门
SIP协议概述SIP(Session Initiation Protocol)是一种应用层协议,用于在IP网络上发起、管理和终止多媒体会话,例如语音电话、视频会议和即时消息等。其基本功能是允许用户发现和建立通信。它是一种灵活且可扩展的协议,允许添加和修改各种元素以支持新的应用场景。
SIP通过建立会话描述协议(Session Description Protocol,SDP)会话描述信息(Session Description)来描述会话信息,包括媒体类型、编码方式、媒体参数等。SIP使用统一资源标识符(Uniform Resource Identifier,URI)来标识用户和终端设备,可以将一个用户的多个设备关联在一起。通过交换消息,SIP实现了会话的建立、修改和关闭,包括会话控制、用户定位、消息路由和安全管理等。
SIP协议不仅适用于互联网,还可用于企业内部网络、移动通信网络等多种网络环境中。它已经成为企业通信、互联网电视、网络游戏、物联网等领域的标准协议之一。
SIP协议的消息结构SIP(Session Initiation Protocol)是一个文本协议,它通过文本消息交换 ...
淘宝千万级别的十四次演进
基本概念分布式系统一个系统的多个模块在不同的服务器上部署
高可用系统中部分节点失效时,其他节点能够接替他继续提供服务,则可以认为系统具有高可用性
集群一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务
负载均衡请求发送到系统时,通过某种方式把请求均匀分发到多个节点上,使系统中每个节点均匀的处理负载,则可以认为系统是负载均衡的
正向代理正向代理是服务器代替系统内部访问外部网络的过程
反向代理反向代理是外部请求访问系统时通过代理服务器转发到内部服务器的过程
十四次架构演进架构演进0
架构原型:单机架构
架构演进1
架构演进:Tomcat与数据库分开部署
演进原因:用户数的增长
技术问题:Tomcat和数据库之间竞争资源,单机性能不足以支撑业务
架构演进2
架构演进:引入本地缓存和分布式缓存
演进原因:用户数的增长
技术问题:并发读写数据库称为瓶颈
在Tomcat同服务器上或同JVM中增加本地缓存,并在外部增加分布式缓存,缓存热门商品信息或热门商品的html页面等。通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。其中涉及的技术包括:
使用memcached作为 ...
软件体系结构期末复习——软件体系结构风格
📙食用说明
emoji
说明
🥑
不考
🍌
了解
🍇
要考
🍉
重点
🚩
flag
🍌软件体系结构风格概述软件体系结构表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口,主要包括:构件、构件性质和构件之间的关系
软件框架设计的核心问题是:能否复用已经成型的体系结构方案不同系统的设计方案存在着许多共性问题,把这些共性部分抽取出来,就形成了具有代表性的和可广泛接受的体系结构风格
体系结构风格:体系结构设计方案的共性
软件体系结构风格包括
构件
连接件
约束:
诸如:拓扑限制和语义限制等
对于高质量的软件产品而言,首先要为其选择合适的体系结构风格,这样就能够更好地重用已有的设计方案和实现方案
利用软件体系结构风格中的不变部分,可以使系统大粒度地重用已有的实现代码
🍉 常用的软件体系结构风格数据流风格批处理和管道/过滤器
调用/返回风格主程序/子程序、层次结构和客户机/服务器
面向对象风格独立部件风格进程通讯和事件驱动
虚拟机风格解释器和基于规则的系统
数据共享风格数据库系统和黑板系统
🍉 管道/过滤器体系结构风格 ...
软件体系结构期末复习——概论
📙食用说明
emoji
说明
🥑
不考
🍌
了解
🍇
要考
🍉
重点
🚩
flag
🥑软件危机软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题
软件危机的具体表现
对开发成本和开发进度难以进行准确地估计
用户对软件产品不满意
软件产品的质量难以保证
软件产品维护非常困难
软件产品没有适当的文档资料
软件成本在计算机系统总成本中所占的比例逐年上升
软件开发效率的提高远远跟不上计算机应用快速普及的趋势
软件危机的成因
硬件生产效率的快速提高
用户需求不明确
软件产品的规模越来越大
软件产品开发的复杂度越来越高
整个软件开发过程缺乏正确的理论指导
软件产品生产效率较低
软件供需失衡
克服软件危机
人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败 。
要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。
在技术上,应该采用基于重用的软件生产技术;
在管理上,应该采用多维的工程管理模式。
🍌软件复用概念🚩 软件复用是指利用现有的软件资源来开发新应用系统的过程
...
Alertmanager指南
告警概述Prometheus的告警分为两部分。Prometheus服务器中的告警规则会将告警发送给一个Alertmanager。Altermanager管理这些告警,包括静默( silencing)、抑制(inhibition)、聚合(aggregation)以及通过电子邮件、呼叫通知系统和聊天平台等方式发送通知。
设置报警和通知的主要步骤如下:
设置和配置 Alertmanager。
配置 Prometheus 与 Alertmanager 进行通信。
在 Prometheus 中创建告警规则。
Alertmanager Alertmanager通过客户端应用程序处理告警,例如Prometheus服务器。它负责去重,分组和路由他们到正确的接收方集成,例如email,PageDuty或者OpsGenie。它还负责告警的静默和抑制。
下面的内容描述了Alertmanager的实现。查阅配置文档获取学习如何使用它们的更多详情
分组(Grouping)分组将享受性质的告警分类到同一个通知下。这在大规模停机的情况下尤为好用,因为在许多系统同时发生故障时,成百上千的告警可能会被同时触发。
示 ...
PromQL指南
声明本文是个人对Querying basics | Prometheus的翻译、整理和小部分扩展,翻译内容基于Prometheus版本: 2.43
本篇翻译的目的是为了帮助更多的读者了解Prometheus官方文档中的内容,同时为中文用户提供更便利地阅读体验
Prometheus的国际化工作在发文截止前(2023-04-24 11:22:20)还处于讨论阶段,所以我没有向官方提交PR,详情请看https://github.com/prometheus/docs/issues/2151。
如有任何版权问题或翻译错误,请您通过电子邮件联系我:956465331@qq.com或:ufovsmba@gmail.com。
基础概述Prometheus提供了一种称为PromQL(Prometheus Query Language)的函数式查询语言,让我们可以在真实的时间查询和整合时间序列数据。表达式的结果不单单可以在Prometheus表达式浏览器中表示为图表,表格数据,还能通过HTTP API被外部使用。
示例本文档仅供参考,对于学习,可能从几个示例入手会更简单
表达式语言数据类型在Promet ...
Prometheus入门指南
声明本文是个人对Getting started | Prometheus的翻译、整理和小部分扩展,翻译内容基于Prometheus版本: 2.43
本篇翻译的目的是为了帮助更多的读者了解Prometheus官方文档中的内容,同时为中文用户提供更便利地阅读体验
Prometheus的国际化工作在发文截止前(2023-04-24 11:22:20)还处于讨论阶段,所以我没有向官方提交PR,详情请看https://github.com/prometheus/docs/issues/2151。
如有任何版权问题或翻译错误,请您通过电子邮件联系我:956465331@qq.com或:ufovsmba@gmail.com。
概述什么是PrometheusPrometheus(普罗米修斯)是有个开源监控系统和告警开发工具最开始建立在SoundCloud.。它最开始创建于2012年,很多公司和组织已经开始使用Prometheus,而且项目拥有非常活跃的开发者和使用者社区。它现在是独立开源的项目和不依赖任何公司维护。为了强调和澄清项目的治理结构,Prometheus在2016年参加了 Cloud Nat ...
MIME类型
📖前言当今互联网中,我们所浏览的网页中通常会包含各种不同类型的文件,如图像、音频、视频以及其他的数据文件。当浏览器发出对这些不同类型文件的请求时,服务器需要知道它们的正确类型,以便能正确处理它们。MIME (Multipurpose Internet Mail Extensions) 类型就是用于描述在互联网上交换的不同类型文件的标准化方式。在本文中,我们将介绍 MIME 类型的概念、作用以及常见的 MIME 类型。
📝定义当我们在浏览器中访问一个网页时,浏览器需要根据HTTP响应头部的Content-Type字段来识别所接收的数据格式,才能够正确地渲染页面或处理数据。而这个Content-Type字段中所表示的数据格式类型就是MIME类型。
MIME类型(Multipurpose Internet Mail Extensions,通常翻译为多用途互联网邮件扩展类型或媒体类型)用于标记Internet上的文档、图片、视频等资源及其对应的内容类型。它最初的设计目的是为了应对电子邮件传输中多种类型文件的传输和呈现问题,随后被应用于HTTP协议的通信过程中。
MIME类型在IETF RF ...
UNIX时间戳
前言在日程编程中,我们经常需要处理时间相关的操作。不同的编程语言、计算机程序及框架采用各不相同的时间表示方法。然而,它们常常会使用一个名为“时间戳”(timestamp)的标记去表示特定事件发生时间的概念。本文将深入探讨“时间戳”这一概念,以及其中的 UNIX 时间戳。
时间戳时间戳(timestamp)是一个标记,用于标识一个特定事件发生的时间。通常情况下,时间戳表示自某个固定的起始时间点以来的时间长度,以秒、毫秒、微秒等为单位。时间戳是一个数字序列,可以用来标识事件的唯一性,比如计算机中文件的修改时间、网页的访问时间等。在计算机系统中,时间戳往往用于记录事件的发生时间,以便于对事件的追踪和分析。
UINXUNIX是一种操作系统,最初由AT&T贝尔实验室的Ken Thompson和Dennis Ritchie等人开发。UNIX操作系统的设计目标是提供一个可移植的、具有多用户、多任务和分时操作特性的操作系统。UNIX系统在计算机科学领域有着极高的影响力,它是开放源代码的,为后来Linux等操作系统的发展提供了重要的技术基础。UNIX系统广泛使用在服务器端等高性能计算领域,是互联 ...
Kafka3 指令指南
基础概念在 Kafka 目录下的 bin 目录中,我们可以看到很多 .sh 文件和一个 windows 目录,该目录包含了许多 .bat 文件。它们是什么?它们和 Kafka 的使用有何关系?
下面是一些基础概念的解释,我希望你可以通过下面的阅读找到答案。
Shell脚本Shell 编程语言是一种解释型语言,它允许程序员使用灵活的脚本语法来控制计算机系统。在 Linux 或 Unix 系统上,我们可以使用 vi 或其他文本编辑器编写 Shell 脚本,然后使用 sh 命令来执行它们。Shell 脚本通常以 .sh 扩展名结尾。
bat 脚本bat 脚本是一种在 Windows 系统上执行批处理命令的程序,用于处理各种 Windows 相关任务,例如编译程序、备份文件、管理系统设置、启动应用程序等等。在 Windows 上,我们可以使用记事本或其他文本编辑器编写 bat 脚本,然后使用 cmd命令来执行它们。bat 脚本通常以 .bat 扩展名结尾。
Kafka 指令Kafka 命令行工具提供了一组操作 Kafka 集群的命令。这些Kafka 命令行工具通常以 shell 脚本或 bat ...