揭秘CMP 5.0:微服务应用开发框架之SkyStack

7款Java 微服务框架 微服务的早期先驱包括 Netflix、Amazon 和 eBay 等公司。例如,2009 年,Netflix 开始从单体架构过渡到微服务架构,以更好地处理快速扩展的客户群。其他大公司也纷纷效仿,意识到单体架构模型在处理大规模复杂系统时存在局限性。 阅读详情

前言

在过去的十余年里面,软件开发行业逐渐分成了两个领域,一部分是企业应用开发,为客户开发,软件要安装到企业客户自己的资源上,客户负责运维(或者通过技术支持),一部分是互联网软件,为自己开发,自己开发并运维一套软件通过网络给最终用户使用。同时,这两个领域使用的技术栈也逐渐分化,前者主要关注功能实现,标准化,易安装,易运维,后者主要关注高并发,高可用,高性能及纵向伸缩性等。

随着微服务概念的提出,这两个领域似乎又形成了一个合流,都在微服务化。这里体现在:

由于SaaS 的兴起,使得一些企业应用厂商也开始采用互联网模式,遇到用户规模的问题。同时企业应用很难纯 SaaS 化,面对大客户的时候,势必面临私有部署的问题,所以必须探索一种既能支撑用户规模,同时要能方便私有化部署的架构。为了解决这些问题,我们在即将发布的SkyForm CMP5.0产品开发上使用了微服务应用架构。

微服务介绍

微服务出现之前,有很大一部分开发商都采用单体应用开发方式,我们先看一下微服务架构和传统开发中的单体应用架构的区别。

1.  微服务与单体应用的区别

单体应用特点:代码完全共享,数据库共享,整体部署,笨重,功能紧耦合,局部修改整体更新。

1.1单体应用

单体应用

单体应用的优点:部署简单

单体应用的缺点:维护性差,伸缩性差,开发成本高,技术选型困难,资源利用率底,故障全局性

1.2微服务

微服务特点:代码分离,功能解耦,数据独立,独立部署,轻量,局部修改局部更新

微服务的优点:维护性高,伸缩性强,开发成本底,技术选型简单,资源利用率高,故障隔离

微服务的缺点:部署复杂,说是缺点有点勉强,部署复杂可以通过运维手段可以解决,这里就不做过多讨论了。

 

微服务

2.  微服务架构模式


以上两张图的区别:右图中出现了一个Api网关,其主要作用包括:统一路由,统一鉴权,统一流控,统一协议,统一防攻击等。可见  有了Api网关微服务架构才算完整。

下图中加入了服务发现功能,这个是微服务的核心功能。

细心的读者可能发现了一个问题,Api网关是不是容易成为整个应用的瓶颈呢?答案是肯定的。不过这里给出了解决方案,请看下面:

通过使用Keepalived方式可以解决Api网关单点故障的问题,同时下图也是微服务的运行架构。

微服务之间的调用分为:同步调用和异步调用。

1)  同步调用:即时性较好,部署简单,但存在强耦合问题。同步调用一般采用内部通信的RPC,不过你要关注它的码流、序列化效率、线程模型是否高效、地址透明化等问题,减少内部通信的延迟。

2)  异步调用:服务之间的依赖关系充分解耦,同时可以处理较耗时的复杂业务,一般可以通过消息中间件或异步线程方式来实现。

根据不同的应用场景选择不同的调用方式,在实际的应用开发中,两种调用模式都是同时混用的。

SkyStack框架

我们对微服务做了简单的介绍,那么我们怎样快速开发一个微服务呢,下面开始介绍公司的自研框架Skystack。

1.  SkyStack产生背景

1)  软件设计原则:高内聚,低耦合,抽象共性,高度封装

2)  敏捷迭代,快速交付,应对万变的需求

3)  服务化设计,配置化开发

4)  云化驱动:横向扩展(集群),纵向扩展(分布式),Z向扩展(用户数据特性)

5)  最终目标:提高劳动生产率,保证产品质量

2.  SkyStack微服务框架技术栈

3.  SkyStack特点

1)  前后端分离,后端分层开发,层次清晰且意义明确,降低耦合度,提高复用率

2)  以服务化开发,业务功能以服务设计为驱动,开发团队结构,实现并行开发

3)  支持多语言国际化,根据业务场景支持分域切库

4)  异常统一处理机制:针对核心业务异常统一处理,标准化输出,支持多语言异常信息

5)  根据数据模型反向生成DAO源代码,且支持灵活扩展

6)  任意业务相关参数都是可配置的,即一切皆可配置

7)  部署灵活,任意服务都可独立部署,不依赖于任何容器,即任意云化部署

8)  严格按照开发规范设计,持续集成,降低软件维护成本

9)  ”填空题式“开发,节省大量开发工作量的同时,同时保证了产品质量。

4.  SkyStack组件介绍

skystack-base:微服务接口开发所依赖的基础组件

skystack-common:提供一些常用工具及公共类

skystack-core:skystack框架本身所依赖组件,扩展模块所依赖的核心模块

skystack-dbdriver:数据库访问所依赖的核心组件,内部使用mybatis

skystack-auth:api网关层统一处理用户的认证及权限

skystack-log:业务层统一处理业务日志的核心组件

skystack-web:提供基于socket或http的web服务,底层基于netty

skystack-rest:rest开发框架,用于开发rest服务,被wsg使用

skystack-wsg:api网关层所依赖的核心组件,提供请求路由及协议转换

skystack-dubbo:提供dubbo服务所使用的核心组件

skystack-ut:业务层做单元测试所要依赖的组件

skystack-httpclient:调用rest服务时所使用的开发组件,能够以面向对象方式调用rest服务,具有高效,快捷,易维护等特点。

skystack-generator:微服务开发手脚架,用于快速生成微服务代码框架,以便快速开发。 

5.  微服务应用开发的手脚架

为了快速开发和标准化工程,可以使用skystack-generator组件进行快速生成,具体步骤如下:

1)  通过使用skystack-generator组件生成微服务工程,可以在eclipse里面完成或通过命令行完成。生成的微服务工程包括:xxx,xxx-api,xxx-app,xxx-dubbo,xxx-pack,每个工程的意义如下:

ü  xxx:微服务的父工程

ü  xxx-api:微服务的接口工程

ü  xxx-app:微服务的核心业务工程

ü  xxx-dubbo:微服务发布dubbo服务的工程

ü  xxx-pack:微服务的打包工程

2)  将上述生成的微服务工程导入到eclipse中

3)  基于所生成的微服务工程编写自己的业务代码,同时进行单元测试

4)    对xxx工程(父工程)进行maven install,在xxx-pack工程的target目录下生成了一个打包好的压缩包(tar,zip等),将这个压缩包解压到任何机器的任意目录,进入bin下执行start即可。微服务的部署不会依赖任何第三方的服务器中间件(底层基于netty),只要有JDK8及以上版本即可。

在上面的图中可以看到,开发微服务应用只需在应用插槽中加入新的应用即可。底层的所有技术细节都被SkyStack所屏蔽,这些对开发人员都是透明的,因此开发人员只需关注核心业务开发,使他们的工作重点更加内聚,从而产出高质量、高效率的软件得到保障。

6.  微服务应用开发架构全景图

下图是微服务应用开发架构全景图,逻辑上分为七层:数据层、访问层、业务层、接口层、服务层、网关层及展现层。每一层都有明确的职责,蓝色模块代表核心业务,也是开发人员需要交付的,整个开发都是需要依赖SkyStack框架的。


总结

本质上,微服务的目的是想以一种架构模式,应对软件所服务的用户的规模增长及多变的复杂业务。没有微服务架构之前,大多数应用是以单体模式出现的,只有当规模或业务增长到一定程度,单体架构满足不了伸缩需求的时候,才考虑拆分。而微服务的目标是在一开始的时候就按照这种架构实现,是一种面向未来的架构,也就是说用开始的选择成本降低以后的重构成本。

在实际开发中,SkyStack的很多功能特性还需要后续升级完善,例如与Kubernetes的融合等。关于微服务的使用这里借用一句话:用经济学的观点来说,微服务是技术投资,单体应用是技术债务,技术有余力,那可以投资以期待未来收益,没余力那就只能借债支持当前业务,等待未来还债。


基于若依的微服务快速开发框架(积木报表 + 工作流 + 可视化设计器) 基于若依Cloud的Jove-Fast微服务项目,主要集成了积木报表,工作流flowable.采用前后端分离的模式后端采用Spring Boot、Spring Cloud & Alibaba。注册中心、配置中心选型Nacos,权限认证使用Redis。流量控制框架选型Sentinel.分布式锁选型redisson. 阅读详情

相关推荐

实现微服务的敏捷开发:Spring Cloud与DevOps的融合

在当今快速变化的市场环境中,敏捷开发和持续交付成为软件开发的关键。微服务架构通过将复杂的应用拆分成独立、易于管理的服务,为快速迭代和扩展提供了可能。Spring Cloud作为构建微服务的重要框架,与DevOps实践相结合,能够进一步提升开发效率和应用质量。本文将探讨如何通过融合Spring Cloud与DevOps实践,实现微服务的敏捷开发和持续交付。

crud的xiaodu 754

CMP云管理平台该如何构建?

随着云计算的大规模采用,云管理成为CTO和CIO未来几年要投资的重点。那么,在当前云环境下,我们该如何设置云管理平台?如何借助更敏捷、高效的方式替代传统的CMP模式?本文提炼了几大关键点! 1、简化云管理平...

cijianyou7809的博客 413

微服务框架最全详解(7款主流微服务框架)

微服务已经成为主流,也是大型架构的必经之路,目前国使用的微服务框架主要有:Spring Cloud、Spring Cloud Alibaba、ServiceMesh...等等,下面分别详解@mikechen。Envoy提供了负载均衡、熔断、故障注入等功能。Istio基于Envoy代理,提供了丰富的功能,包括流量管理、服务发现、熔断、故障注入、安全认证、监控和追踪等。微服务架构是一种软件开发和部署的架构风格,在微服务架构中,应用程序被拆分为多个小型、独立的服务单元。

cgk_ALEM的博客 5256

生于云、长于云,RocketMQ 5.0 再出发

万物皆云的时代,RocketMQ 让数字化转型更简单高效,也将消息、事件、流的价值最大程度释放。Apache RocketMQ 将不断推动技术演进与落地实践,帮助企业真正实现高质量数字化转型与创新。

阿里巴巴云原生的博客 1878

微服务常用的开发框架

微服务架构是一种通过将应用程序拆分为小型、独立的服务来构建应用程序的方法。针对微服务架构的开发,有许多流行的开发框架可供选择。在本文中,我们将介绍一些常用的微服务开发框架,并提供相应的源代码示例。这些是常用的微服务开发框架,它们提供了丰富的功能和工具,帮助开发人员更轻松地构建和管理微服务架构。无论您选择使用哪个框架,都可以根据自己的需求和偏好来进行选择。希望这篇文章对您有所帮助!

LaotLisp的博客 201

Floyd算法在社交网络中的应用:如何找到六度人脉的最短路径?

本文探讨了Floyd算法在社交网络分析中的核心应用,特别是如何利用该算法高效计算任意两人之间的最短路径,从而量化“六度人脉”理论。文章通过构建微型社交网络模型,详细拆解了Floyd算法的动态规划原理与代码实现,并展示了如何从计算出的最短路径距离矩阵中挖掘节点中心性、识别社群等关键洞察,为社交推荐、影响力分析等场景提供技术支撑。

blockchain9miner的博客 1003

【SpringCloud】最全最细!微服务框架

单体架构特点?简单方便,高度耦合,扩展性差,适合小型项目。例如: 学生管理系统分布式架构特点?松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案优点: 拆分粒度更小、服务更独立、耦合度更低缺点:架构非常复杂,运维、监控、部署难度提高。

u014685437的博客 5万+

使用BK3432芯片进行蓝牙开发的详细指南:编程手册与实际应用

BK3432是一款蓝牙4.2双模式芯片,支持蓝牙低功耗(BLE)和经典蓝牙(BR/EDR)模式。它集成了高性能的RF收发器、基带处理器、ARM9E内核、丰富的功能外设单元,并支持BLE应用的可编程协议和概要文件。蓝牙版本:4.2数据速率:最高支持2Mbps内核:ARM9ERF收发器:高性能、低功耗外设单元:包括UART、SPI、I2C、GPIO等功耗:超低功耗设计,适合电池供电的应用。

m0_57781768的博客 4447

09微服务架构常见框架

springcloud现在有很多版本,如:springcloud Azure,springcloud Alibaba,Spring Cloud AWS等等。但是他们的整体架构基本类似,基础单元都是构建于springboot之上。是微服务系统的一站式解决方案,微服务框架中常见的组件如:服务发现注册、配置、消息、负载均衡、熔断、限流、监控等在各个框架中都有。国内用的比较多的是springcloud 原生和springcloud Alibaba。我们这边以springcloud Alibaba为例做相应的介绍。

rainyonelove的专栏 5635

基于 Wi-Fi 的室内定位系统

目前,随着国内外相关从业人员的研究,研究者们提出了众多室内定位技术的理论与方法。在此仅讨论基于 Wi-Fi 的室内定位技术。 WI-FI室内定位 近年来Wi-Fi技术飞速发展,城市中的公共场所如大型超市商场、学校、企业等都已经广泛部署Wi-Fi。Wi-Fi室内定位技术已经出现了很多具有代表性的研究成果,如RADAR系统、Nibble系统、Weyes系统等室内定位系统。2012年,Google把Wi...

温染的笔记 9567

WinForm轻松打造AntDesign现代化工具栏

摘要: 本文介绍如何在WinForm中利用AntdUI库实现AntDesign风格工具栏,包括安装配置、动态生成按钮/下拉菜单、布局优化及主题美化。通过AntButton、AntDropdown等控件结合事件绑定,可快速构建支持图标、工具提示、权限控制的现代化工具栏,并解决常见图标加载、布局错乱问题。最后提供代码示例与响应式设计技巧,助你打造高效美观的WinForm界面。 (字数:150)

java专栏 1593

微服务开发框架主流技术总结

微服务生态环境中所使用到的一些主要技术,知识点。

Crush9_的博客 2371

海外购物商城源码 带即时通讯IM源码

在海外购物商城中,即时通讯IM源码可以为用户提供更便捷、高效的沟通方式,帮助解决跨国交易中的语言和文化差异问题。总之,即时通讯IM源码在海外购物商城中扮演着重要的角色,可以为用户提供更方便、高效的沟通方式,解决跨国交易中的语言和文化差异问题。(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买)实时翻译:即时通讯IM源码提供实时翻译功能,能够快速准确地翻译不同语言之间的文字、语音、视频等信息,帮助用户克服语言障碍。

很酷的站长的博客 259

【从零开始学微服务】07.微服务常用的开发框架

大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。微服务架构该怎么落地?选用什么样的技术栈?

万猫学社 3271

【人工智能之深度学习】18. 金融风控实战:TCN时序卷积网络构建信用卡欺诈实时检测系统

摘要:信用卡欺诈交易识别是金融风控的核心环节,其面临欺诈样本占比低(仅0.1%)、实时响应要求高(毫秒级)等挑战。本文基于IEEE-CIS公开数据集,构建基于时序卷积网络(TCN)的欺诈检测系统,通过捕捉用户交易行为的时序模式识别异常。详细阐述全流程:从数据预处理(构造交易序列特征)、TCN模型设计(轻量级架构适配实时场景),到实时检测部署(异步处理确保低延迟)。实验显示,该系统精确率达63%、召回率89%,误杀率仅0.2%,推理延迟8ms,较XGBoost等传统模型性能显著提升。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1131

【WRF-Chem第二期】WRF-Chem有关 namelist 详解

【WRF-Chem第二期】WRF-Chem有关 namelist 详解

WW、forever的博客 2156

常见的微服务架构技术栈【一文秒懂】

企业可根据自身的需求、预算、技术团队能力等因素,从上述流行技术中选择合适的技术进行组合和搭配,以构建一个高效、可靠和可扩展的微服务架构。这些技术的不断发展和创新,为企业级微服务项目提供了更多的选择和可能性,同时也推动了微服务架构向更高级和复杂的方向发展。

Tommy_____的博客 3271

pi-coding-agent 完整详解

pi-coding-agent是一个由Mario Zechner开发的专业AI编程助手,基于Node.js和TypeScript构建。核心功能包括:1)多级思考模式(ThinkingLevel),从none到ultra控制推理深度;2)对话压缩(compaction)管理长对话记忆;3)WebSocket实时通信支持流式交互。该智能体支持代码生成、调试、重构等专业编程任务,采用AI Agent架构,具备工具调用和多轮记忆能力。项目结构通常包含server、agent、config等模块,可通过二次开发扩展功

大坡3D软件开发 2422

Laravel企业信息化管理平台

一款 PHP 语言基于 Laravel5.8、Layui、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁剪等等一系列个性化、轻量级的组件,是一款真正意义上实现组件化开发的敏捷开发框架,框架已集成了完整的RBAC权限架构和常规基础模块,同时支持多主题切换,可以根据自己喜欢的风格选择

weixin_50196917的博客 5793

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Sprout:一款高效、可扩展的微服务框架

]() ## 项目简介 Sprout 是一个基于 Go 语言开发的微服务框架,旨在帮助开发者快速构建高可用、高性能的服务。该框架提供了一套完整的工具集,包括 API 网关、服务注册与发现、熔断、限流等功能。 ## 功能特性 1. **API 网关**: Sprout 提供了一个内置的 API 网关,可以对请求进行路由、过滤、权限控制等操作。 2. **服务治理**:通过集成 Etcd,Spro

gitblog_00056的博客 1921

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

常见微服务框架

它利用Spring Boot的开发便利性巧妙地简化了分布式系统基 础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家 公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。:服务实例将自身服务信息注册到注册中心。

weixin_62221994的博客 518

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Spring Cloud】微服务开发框架简单介绍与使用示例

通过上述示例,我们创建了一个简单的 Spring Cloud 微服务架构,包括服务注册与发现、配置中心、服务提供者、服务消费者和网关等组件。每个微服务可以独立开发和部署,并通过 Eureka 进行注册和发现。Spring Cloud 提供了一整套解决方案来管理和优化微服务架构中的常见问题,帮助开发者构建更稳定、高效的微服务应用程序。随着业务需求的增加,您可以根据具体需求进一步扩展微服务架构,并结合 Spring Cloud 的其他功能来满足更多复杂场景下的开发需求。

u013675821的博客 1822

微服务开发框架主流技术介绍

微服务开发框架主流技术介绍

m0_74276138的博客 355

企业级微服务快速开发框架介绍

在科技不断发展的当下,很多企业已经倾向于使用企业级微服务快速开发框架来提升办公效率了。

Gzlcxxjs的博客 519

微服务框架

在分布式系统中,服务可能失败导致雪崩,Hystrix 是防雪崩利器,具有服务降级、服务熔断、服务隔离、监控等防止雪崩的技术。服务降级:接口调用失败调用本地方法返回空。服务熔断:接口调用失败进入熔断方法返回错误信息。服务隔离:隔离服务之间相互影响。服务监控:记录服务调用的运行指标。在分布式系统中,一个业务因跨越不同数据库或不同微服务而包含多个子事务,要求所有子事务同时成功或失败,这就是分布式事务。例如某电商系统下单操作,需请求订单服务、账户服务、库存服务。

晨绪的博客 1109

微服务框架SpringCloud

微服务是一种经过良好架构设计的分布式架构方案。能解决单体架构的缺点.

m0_70967938的博客 733
上一篇: 浅谈vSphere高可用性
下一篇: 浅谈Grafana在SkyForm CMP 5中的运用
SkyForm_
博客等级 码龄9年 7粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值