精华内容
下载资源
问答
  • 微服务应用有哪些
    2021-11-09 16:48:05

    微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

    市面上常用的微服务框架有如下这些:

    Dubbo

    Dubbo是阿里多年构建生产级分布式微服务的技术结晶,服务治理能力非常丰富,在国内技术社区具有很大影响力,目前github上有超过16k星。Dubbo本质上是一套基于Java的RPC框架,当当Dubbox扩展了Dubbo支持RESTful接口暴露能力。

    RESTful

    基于Spring的框架本质上可以认为是一种RESTful框架(不是RPC框架),序列化协议主要采用基于文本的JSON,通讯协议一般基于HTTP。RESTful框架天然支持跨语言,任何语言只要有HTTP客户端都可以接入调用,但是客户端一般需要自己解析payload。目前Spring框架也支持Swagger契约编程模型,能够基于契约生成各种语言的强类型客户端,极大方便不同语言栈的应用接入,但是因为RESTful框架和Swagger规范的弱契约特性,生成的各种语言客户端的互操作性还是有不少坑的。

    gRPC

    gRPC是谷歌近年新推的一套RPC框架,基于protobuf的强契约编程模型,能自动生成各种语言客户端,且保证互操作。支持HTTP2是gRPC的一大亮点,通讯层性能比HTTP有很大改进。Protobuf是在社区具有悠久历史和良好口碑的高性能序列化协议,加上Google公司的背书和社区影响力,传播效果杠杠滴。

    RestCloud

    RestCloud定位是一款轻量级面向企业应用层的微服务治理及低代码开发平台,通过本平台可以快速的开发企业级前后端分离的业务系统以及基于微服务架构的微应用系统,本平台通过建立数据模型和业务模型能够无代码快速的发布服务并对服务的运行状况进行监控,同时也能基于数据模型快速生成Java代码并快速发布为Rest服务,同时也提供基于注解式的开发模式,系统能自动通过注解扫描自动发布Rest服务并生成国际标准的OpenAPI3.0接口文档,在本平台开发的Rest服务自动支持MongoDB和RDBS关系数据库,同时针对关系数据库可以很好的支持跨数据库事务功能。

    更多相关内容
  • 微服务应用

    2018-09-26 15:25:29
    “12要素”英文全称是The Twelve-Factor App,来源于Heroku平台的实践。Heroku平台创始人Adam Wiggins汇总了这些实践经验,发布了一个“十二要素应用宣言(The Twelve-Factor App)”。
  • 那当微服务应用运行在容器中的时候,我们会遇到哪些常见问题?我们又该如何解决呢?企业应用在向微服务架构转型的过程中,微服务如何划分是最基本的问题。我们可以通过业务架构的梳理来理解业务,并同时使用领域设计...
  • 微服务的出现就是用来解决这个问题的——把一个庞大的单体应用横向切割成若干个微服务,每个微服务只做一件事,但它仍然包含展现层、应用层和数据层。微服务单独运行,对外暴露 API 接口供其他程序调用。所以说,...
  • 因此,业务领域建模就成了微服务应用功能架构的核心,每个微服务都围绕业务领域概念来定义,并将实现架构及其所依赖的其他组件(如数据库等)封装在该微服务中,从而实现了高度解耦。应用实现架构整洁架构、六边形...

    2005年Peter Rodgers 提出微 Web 服务(Micro-Web-Service)的概念,2014 年,Martin Fowler 与 James Lewis 共同提出了微服务的概念,从 SOA 架构到服务化架构,再到微服务架构,是一个逐步演进的过程,我们知道微服务架构包含功能架构、技术架构和部署单元三个方面,今天我们就从这3个方面讲讲微服务架构:

    1.功能架构

    在分层的单体架构中,关注点在技术层面,包括应用的持久化存储、UI、业务规则等。

     单体架构是按照技术维度分层的,导致业务领域概念不清晰,业务领域概念会涉及展现层、业务规则和持久化存储等。分层架构的设计初衷不是容纳业务领域概念,因此,当应用的业务领域需求发生变更时,必须每一层都要进行修改。如果架构是按照技术分层的话,那么变更需求需要跨层进行协作,可见分层架构不具备演进性。

    因此, 业务领域建模就成了微服务应用功能架构的核心, 每个微服务都围绕业务领域概念来定义,并将实现架构及其所依赖的其他组件(如数据库等)封装在该微服务中,从而实现了高度解耦。每个微服务都包含所有元素,并通过REST之类的协议与其他微服务通信。因为一个微服务不需要知道其他被调用的微服务的实现细节,从而避免了不当的耦合。每个微服务都通过无共享架构来实现低耦合,从而方便自身的变更。

    2.实现架构

    应用实现架构有整洁架构、六边形架构和分层架构三种,我们知道这三种架构的展现方式和解决问题的出发点不一样,但其架构思想与微服务架构高内聚、低耦合的设计原则高度一致。

    整洁架构的用例层、六边形架构的应用程序层,分层架构的应用层都承担着应用逻辑管理的角色,通过服务组合和编排为前端提供粗粒度的服务。应用的需求会根据用户体验、操作习惯、市场环境以及管理流程的变化而变化,这往往会导致前端逻辑和流程的多变。但无论前端如何变化,核心领域逻辑基本保持稳定,从而在架构层面协调业务逻辑与应用逻辑。

    这三种实现架构正是通过分层来控制需求变化对应用的影响的,从而确保从外向内受需求的影响逐渐减少。面向用户的展现层可以快速响应外部需求进行调整和发布,应用层通过服务组合和编排实现业务流程的快速适配上线,领域层基本不需要做太多的变动。这样设计的好处是,可以保证领域层的核心业务逻辑不会因为外部需求和流程的变化而发生调整。

    对于基于微服务的应用,推荐使用整洁架构,整洁架构包含:

    业务实体层(领域建模)∶它是微服务的核心所在,具体表现形式就是领域模型。

    用例层(领域服务)∶用例层负责协调接口适配器层与业务实体层,与业务实体层进行交互,用例层是主要的交互方式。

    接口适配器层(应用服务):接口适配器层只负责为业务实体层和用例层中的领域对象协调任务、分配工作,使它们相互协作。

    框架与驱动层(用户界面):该层一方面负责向用户显示信息和解释用户命令,执行前端界面逻辑。另一方面负责与底层基础设施进行交互,向其他层提供通用的技术能力,该层主要包括两类适配代码∶主动适配代码和被动适配代码。

    3.部署单元

    部署单元的大小在很大程度上决定了应用的耦合性及灵活性。大的部署单元很难演进(如单体架构、SOA、ESB架构等),因为每次变更都需要进行协调,而小的部署单元为低耦合的架构提供了很多方便。每个微服务都是一个部署单元,可以实现独立部署,确保在更新一个微服务时不会影响其他微服务,从而实现其演进式的架构目的。

    严格按照领域拆分是微服务的一个关键原则,通过领域拆分对微服务进行隔离,使得每个微服务在技术上都能实现无共享架构。同时各微服务在物理部署上也都是分离的,并且在每个微服务中都封装了完整的实现架构,从而可以轻松地进行替换和演进。开发人员可以单独处理每个微服务,因为微服务都是高度解耦的。

    总的来说,按照业务领域来拆分每一个微服务应用,每一个微服务都包含全技术栈服务,从部署的角度来说,每个微服务完全独立开发、部署的,为应用实现低耦合提供了方便。

    展开全文
  • 当你决定采用微服务,你将经历从单一应用到一个复杂系统的转变过程。在这个系统里,你会遇到很多无法预测的行为,因为团队和服务在持续地发生变化,它们被创建、被修改,然后被销毁。系统的快速变更能力为你的组织...
  • php微服务框架有哪些

    2021-03-22 21:41:36
    Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。Tars是将腾讯内部使用的微服务架构TAF(Total Application...

    Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。

    d9acbdbc8618ba4a9c749b8d02f80ac7.png

    Tars是将腾讯内部使用的微服务架构TAF(Total Application Framework)多年的实践成果总结而成的开源项目。(推荐学习:PHP视频教程)

    Tars这个名字来自星际穿越电影人机器人Tars,电影中Tars有着非常友好的交互方式,任何初次接触它的人都可以轻松的和它进行交流,同时能在外太空、外星等复杂地形上,超预期的高效率的完成托付的所有任务。拥有着类似设计理念的Tars也是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。

    目前该框架在腾讯内部,有100多个业务、1.6多万台服务器上运行使用。

    PHP-msf 是 Carema360 开发的PHP微服务框架,目前我没有实际用过,但是市面上的微服务框架要么在推崇Spring系,要么是 go/node,由于想用 PHP 搞微服务,就顺便搜了下 PHP 的微服务框架,发现了 php-msf。

    php-msf 的文档少得可怜,就是简单的介绍了一下。不过如果熟悉 MVC 的 PHP 开发框架的话,只要熟练一下 API 就可以了,其他倒没什么。

    作为微服务框架,与 Docker 一定是有联系的, 而我觉得 php-msf 在这方面做得很不错,而且有自己的 Docker 镜像列表来 pull,省去自己配置环境的麻烦。

    swoft是基于swoole协程2.x的高性能PHP微服务框架,内置http服务器。框架全协程实现,性能优于传统的php-fpm模式。

    没有swoole之前,php一直被"誉“为世界上最好的语言。swoole横空出世后,php就成了宇宙最好的语言了...

    swoft是基于swoole的高性能协程全栈框架。看了 swoft官网介绍, 瞬间觉得是一个牛逼闪闪的框架。

    想要使用swoole,如果自己手工造一个框架,时间成本太高,而且对自己的代码质量没什么信心(好吧,这才是主要原因...),如果将swoole与流行的框架,如laravel,yii2,thinkphp结合,会遇到不少坑,而且这些框架显得过于笨重。权衡之下,swoft这种专为swoole为生的框架,对于懒人来说,就很适合了。使用swoft的缺点在于这个框架用的人目前并不多,基本上除了官方文档,没有其他学习资源,也没找到基于swoft的开源项目。

    更多PHP相关技术文章,请访问PHP图文教程栏目进行学习!

    展开全文
  • Java微服务架构有哪些功能?

    千次阅读 2022-06-07 14:39:07
    Java微服务架构的功能

    1.微服务的自动化部署

    Java微服务架构中,系统会被拆分为若干个微服务,每个微服务又是一个独立的运行程序。单体架构中的应用程序只需要部署一次,而微服务架构中有多少服务就需要部署多少次。随着服务数量的增加,部署的难度就会增加。业务的粒度划分的越细,微服务的数量就越多。因此就出现了自动化部署工具,例如Docker容器自动化部署技术方便了微服务项目下各模块在服务器上的部署。

    2.服务集中化管理

    微服务系统是按照业务单元来划分的,服务数量越多,管理起来越复杂。在这里微服务提供了集中化管理组件Config,这样可以在Config配置文件中统一配置,很大程度方便了人们对项目的集中化管理。

    3.支持熔断机制

    雪崩效应:

    在讲熔断机制之前,我们先来了解一下“雪崩”效应。微服务架构就是分布式的,在分布式系统中,服务之间是相互依赖的,如果一个服务出现了故障或者网络延迟,在高并发的情况下,会导致线程阻塞,在很短的时间内该服务的线程资源会消耗殆尽,最终使得该服务不可用,这就是“雪崩”效应。

    熔断机制:

    熔断机制是应对雪崩效应的一种微服务链路保护机制。我们在各种场景下都会接触到熔断这两个字。高压电路中,如果某个地方的电压过高,熔断器就会熔断,对电路进行保护。股票交易中,如果股票指数过高,也会采用熔断机制,暂停股票的交易。同样,在微服务架构中,熔断机制也是起着类似的作用。当一条链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。

    如何学习微服务架构?

    史上最全面的springcloud微服务技术栈课程

    Java基础入门:

    java零基础自学首Java入门教程(含Java项目和Java真题)

    Javaweb核心基础

    JavaWeb基础教程,Java web从入门到企业实战完整版

    展开全文
  • 分布式跟踪-如何对微服务应用进行延迟分析Distributed tracing
  • 主流Java微服务框架有哪些?-开课吧

    千次阅读 2021-10-19 16:39:20
    SpringBoot这么牛是道理的,它太成熟了,功能特性极其丰富,不管你的需求多复杂,都能满足你。 还内置了各种通用的功能,例如安全认证等等,开箱即用,非常方便。 SpringBoot配置优先的理念大大简化了开发,通过...
  • python中的微服务框架Istio、Dubbo和nameko三种 1.Istio Istio是一个用来连接、管理和保护微服务的开放平台,使用Istio可以建立已部署服务网络,且Istio具备负载均衡、服务间认证、监控等功能。 2.Dubbo Dubbo...
  • 微服务架构和它们都千丝万缕的联系。前几天我们的CTO焦总发表了一篇文章:《从前世看今生,从JavaEE到微服务》,推荐大家看看,对微服务的来龙去脉讲得非常清楚。这些年来,我们帮助一些客户在分布式/微服务架构...
  • 1. 微服务涉及哪些技术 1.1、基础技术 首先每个微服务都可以看作是单机架构,所以最基础的就要要求你掌握单机架构的知识,单机架构最少量要求掌握的知识包括: java mysql springboot mybatis,mybatis-plus linux ...
  • 机器学习在微服务应用异常诊断中的应用.pdf
  • 微服务架构的应用性能监控.pdf
  • 本节会体验一下Istio的简单路由功能,并了解整个微服务的调用流程1)在default命令空间开启自动注入功能2)部署服务3)查看服务部署状态4)应用路由规则,
  • 微服务应用架构模式 郭峰DaoCloud CTO & 联合创始人 内容提要 1应用架构升级 2微服务的核心模式 3微服务的拆分模式 4微服务的部署模式 5微服务的通信模式 6微服务的发布模式 业务模式的敏态需求 企业需要敏捷的业务...
  • 12Spring Boot Admin:微服务应用监控1
  • 微服务应用与实践
  • 但常用的Java微服务框架有哪些呢? 1、Spring Boot Spring Boot是Spring的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便。创建Spring Boot旨在自启动任何类型的Spring项目,而不仅仅是微服务应用...
  • 传统应用系统架构的瓶颈 曾经为物业管理公司架构设计并领导开发过一个互联网+物业增值服务平台项目,刚接手这个系统的时候,这个平台在最初的1.0版本采用的是比较标准的单体应用,Java、Tomcat、MySQL,功能服务也...
  • 微服务应用开发指南.docx
  • 微服务架构是一种架构风格和架构思想,它倡导我们在传统软件应用架构的基础上,将系统业务按照功能拆分为更加细粒度的服务,所拆分的每一个服务都是一个独立的应用,这些应用对外提供公共的API,可以独立承担对外...
  • 微服务背后大的理念是将大型、复杂且历时长久的应用在架构上设计为内聚的服务,这些服务能够随着时间的流逝而演化。微服务这个术语强烈建议服务应该是很小的。社区中有些人甚至建议构建10-100代码行(LOC)的服务。...
  • SpringBoot微服务架构应用-video.zip,SpringBoot微服务架构应用-video,07_springboot的JD案例.avi,获取更多资源.jpg,01_springboot简介.avi,06_springboot整合REDIS集群.avi,05_spirngBoot整合REDIS单机版.avi,03_...
  • 使用React组件创建微服务应用程序
  • 基于数据采集的工业微服务应用.pdf
  • EDAS微服务应用同城容灾最佳实践.docx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 219,964
精华内容 87,985
热门标签
关键字:

微服务应用有哪些