微服务架构之服务治理
服务治理(SOA Governance) 起源于 SOA 面向服务架构,随微服务架构的火热而变的普及,但其最终目的是要对微服务框架下的大量微服务可能出现的问题进行治理。
服务治理本身一个大而泛的概念,没有明确的官方或标准化组织对其给出定义;服务治理的概念、内涵和实践,在业界还没有达成共识,更无法形成行业标准。随着系统的复杂程度越来越高,服务治理的需求越来越紧迫,并已成为一大痛点。
服务治理(SOA Governance) 起源于 SOA 面向服务架构,随微服务架构的火热而变的普及,但其最终目的是要对微服务框架下的大量微服务可能出现的问题进行治理。
服务治理本身一个大而泛的概念,没有明确的官方或标准化组织对其给出定义;服务治理的概念、内涵和实践,在业界还没有达成共识,更无法形成行业标准。随着系统的复杂程度越来越高,服务治理的需求越来越紧迫,并已成为一大痛点。
Spring Cloud Alibaba 为分布式应用开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,可以轻松地使用 Spring Cloud 开发应用程序。
依托 Spring Cloud Alibaba,只需添加一些注解和少量配置,就可将Spring Cloud 应用接入到 Alibaba 的分布式解决方案中,通过 Alibaba 中间件来快速搭建分布式应用系统。
Spring Cloud Alibaba 为基于 Spring Cloud 构建的分布式微服务架构提供了另一种选择,与 Spring Cloud 原生的一系列组件并不存在冲突,基本上是完全兼容。
Spring官方文档 > Spring Cloud Alibaba,Github > alibaba/spring-cloud-alibaba/wiki,Gitee > Spring-Cloud-Alibaba。
MQ 消息中间件基本都支持延时消息或消息过期处理相关功能,可以使用此功能来实现消息队列。
使用 MQ 实现延时队列的基本逻辑,是将消息发送到普通队列,让消息自动过期被转发路由到死信队列,消费者订阅死信队列。
Centos 7 在一些设置上与之前的版本存在较大的差异,如防火墙不再采用 iptables
命令,改用firewalld
。
systemctl
是 CentOS 7 的服务管理工具中主要的工具,它融合之前service
和chkconfig
的功能于一体。
我们是世界的意识,意识推动世界的发展。—— 彭蒂.马拉斯卡
《第六次浪潮》,2018年6月第1版。于 2021年03月20日开始阅读,这本书主要描述对未来的研究,在这个时间点读比较有意思的是可以对书中的观点进行印证。
常用的定时任务的实现方式:
基于 Redisson 的最佳实践应用 Redisson 实现了延时队列(Delayed Queue )功能,可以直接拿来使用。
Redis 从 2.8.0 版本开始提供了 键空间通知 特性。键空间通知允许客户端订阅发布/订阅通道,以便接收以某种方式影响Redis 数据集的事件。
可以基于 Redis 的键空间通知中的 键过期事件通知来实现延时队列的功能。
Redis 的 Sorted Set 数据类型是一个有序集合,不可重复集合。有序集合的每个元素都有一个用于排序的权重(score)属性。
此类型非常适合用于制作排行榜,同样可以借助权重(score)属性作为元素的延时时间来实现延时队列的功能。
最近项目用到了延时队列,是基于 Redis 的 Sorted Set
数据类型和 ZRANGEBYSCORE
命令实现的。
延时队列还有其他实现方式,可以根据项目环境和业务需要选择适当的方案,这里做个汇总和记录。