微服务与 DevOps实践:技术架构与组织架构(3)

简介: 微服务与 DevOps实践:技术架构与组织架构(3)

9.4     总体架构

 

融数数据微服务总体架构(Graeae)如图 9.6 所示。


 

image.png


9.4.1    总体架构的特性

 

融数数据微服务总体架构有如下特性。

 

Graeae 架构与协议无关。该架构可以基于 Netty4、线程模型及 buffer pool 进行调整,以减少 GC 压力并通过线程切换提升性能协议。

 

遵循 protocol buffer 协议,可以做到通用性强、序列化性能好、压缩效率高。

 

语言中立,目前整个架构支持 JavaPython Go 三种语言的开发。

 

引入了熔断器机制、流量控制、服务治理。

 

基于 Proxy PaaS 平台进行分布式治理监控。

 

使用集成 Zipkin 的调用链监控,以及基于 Pinpoint APM 监控。

 

对于该架构而言,直接调用的性能好于反射调用,且使用 Netty4 线程模型优化。

 

9.4.2    具体实现

 

服务提供者 Endpoint 基于责任链模式(如图 9.7 所示)对 gRPC 进行封装,对屏蔽了 gRPC 框架的事件驱动采用同步调用方式,方便业务迁移。


image.png


Endpoint 封装了脚手架工具,提供基于 ProtoBuf IDL 接口定义语言,使用契约优先的方式定义服务,并可以自动生产服务端和客户端的代码框架。

 

代码优先意味着实现简单,能够快速执行。问题也很明显,可能和某个具体语言绑定,面对多语言环境,其打通成本较高。

 

契约优先的中立性提供了一个中间桥梁,让面向多语言成为了可能,基于契约的元信息为后续治理和演进提供了入口点。缺点是需要引入契约语言的学习,并与多语言进行适配。

 

Endpoint 采用生命周期自管理的方式,提供容器化的生命周期管理 API 和相应的 SPI,方便扩展及与 DevOps 工具结合。

 

外部管理(如 Tomcat)让用户不用关注自身的起始、消亡,但带来的不足是对生命周期的管理相对减弱、部署的依赖管理扩散。

 

进程自治可以加强其对自身生命周期的管理,高内聚,不将依赖扩散。在一定程度上能够带来部署的便利及不同部署环境的适应性(如云环境)。为优雅关闭提供切入点,进一步增强对系统的可控性。


 

从对环境适应性和对生命周期的管理能力考虑,进程自治有着不可忽略的优势。Endpoint 将配置与代码分离,提供多种方式的配置覆盖能力,使得改变配置无须重新

 

部署。

 

配置和代码一起进行的优点是使开发变得简单,但不足也很明显,即面对不同的环境需要部署多套代码,复杂度增加。

 

配置和代码分离后的优点是真正做到了只部署一套代码。配置信息按环境独立配置,不受环境制约,可随时调整。

 

集成 Spring Boot,提供自定义注解方式,能够快速启动服务,方便开发。

 

//服务提供方

 

public class SmsTemplateApplication {

 

public static void main(String[] args) {

 

new SpringApplicationBuilder().sources(SmsTemplateApplication.class)

 

.web(false).showBanner(false).run(args);

 

}

 

}

 

//服务实现

 

public class SmsTempletServiceImpl implements SmsTemplateService { @Autowired

 

private SmsTempletDao smsTempletDao;

 

@Transactional

 

public DeleteReply deleteById(IdRequest req) { return SmsTemplateReply.newBuilder().build(); }

 

}


 

利用 Proxy 部署和设置服务治理端点,进行分层治理,如图 9.8 和图 9.9 所示。


 

 


image.png



9.9


相关文章
|
6月前
|
数据采集 监控 API
移动端性能监控探索:iOS RUM SDK 技术架构与实践
阿里云 RUM SDK 作为一款性能体验监控采集工具,可以作为辅助 App 运维的强有力助手,提升您的问题排查效率。
385 55
|
6月前
|
存储 运维 分布式计算
零售数据湖的进化之路:滔搏从Lambda架构到阿里云Flink+Paimon统一架构的实战实践
在数字化浪潮席卷全球的今天,传统零售企业面临着前所未有的技术挑战和转型压力。本文整理自 Flink Forward Asia 2025 城市巡回上海站,滔搏技术负责人分享了滔搏从传统 Lambda 架构向阿里云实时计算 Flink 版+Paimon 统一架构转型的完整实战历程。这不仅是一次技术架构的重大升级,更是中国零售企业拥抱实时数据湖仓一体化的典型案例。
441 0
|
7月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
7月前
|
数据采集 存储 运维
MyEMS:技术架构深度剖析与用户实践支持体系
MyEMS 是一款开源能源管理系统,采用分层架构设计,涵盖数据采集、传输、处理与应用全流程,支持多协议设备接入与多样化能源场景。系统具备高扩展性与易用性,结合完善的文档、社区、培训与定制服务,助力不同技术背景用户高效实现能源数字化管理,降低使用门槛与运维成本,广泛适用于工业、商业及公共机构等场景。
300 0
|
9月前
|
算法 物联网 定位技术
蓝牙室内定位技术解决方案:核心技术架构与优化实践
本文探讨了蓝牙iBeacon与Lora结合的室内定位技术,分析其在复杂室内环境中的优势与挑战。通过三层架构实现高精度定位,并提出硬件、算法与部署优化方向,助力智慧仓储、医疗等场景智能化升级。
477 0
蓝牙室内定位技术解决方案:核心技术架构与优化实践
|
6月前
|
存储 SQL 消息中间件
从 ClickHouse 到 StarRocks 存算分离: 携程 UBT 架构升级实践
查询性能实现从秒级到毫秒级的跨越式提升
|
9月前
|
数据采集 人工智能 安全
开源赋能双碳:MyEMS 能源管理系统的架构与实践价值
在全球碳中和趋势与“双碳”目标推动下,能源管理趋向精细化与智能化。MyEMS是一款基于Python开发的开源能源管理系统,具备灵活适配、功能全面的优势,覆盖工厂、建筑、数据中心等多元场景。系统支持能源数据采集、分析、可视化及设备管理、故障诊断、AI优化控制等功能,提供“监测-分析-优化”闭环解决方案。遵循“国家+省级+接入端”三级架构,MyEMS在重点用能单位能耗监测中发挥关键作用,助力实现能源效率提升与政策合规。开源模式降低了技术门槛,推动“双碳”目标落地。
302 0
|
6月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
7月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,