Dubbo

【行业资讯】smart-doc 2.0.2 发布,Java 零注解 API 文档生成工具

两盒软妹~` 提交于 2020-12-29 19:14:44
smart-doc 是一款同时支持 java restful api 和 Apache Dubbo rpc 接口文档生成的工具,smart-doc 颠覆了传统类似 swagger 这种大量采用注解侵入来生成文档的实现方法。 smart-doc 完全基于接口源码分析来生成接口文档,完全做到零注解侵入,你只需要按照 java 标准注释编写,smart-doc 就能帮你生成一个简易明了的 markdown 或是一个像 GitBook 样式的静态 html 文档。如果你已经厌倦了 swagger 等文档工具的无数注解和强侵入污染,那请拥抱 smart-doc 吧! 功能特性 支持接口 debug。 零注解、零学习成本、只需要写标准 java 注释。 基于源代码接口定义自动推导,强大的返回结构推导。 支持 Spring MVC,Spring Boot,Spring Boot Web Flux(controller 书写方式)。 支持 Callable,Future,CompletableFuture 等异步接口返回的推导。 支持 JavaBean 上的 JSR303 参数校验规范,支持分组验证。 对 json 请求参数的接口能够自动生成模拟 json 参数。 对一些常用字段定义能够生成有效的模拟值。 支持生成 json 返回值示例。 支持从项目外部加载源代码来生成字段注释(包括标准规范发布的

领域驱动设计,让程序员心中有码(四)

梦想与她 提交于 2020-12-29 03:40:45
题图 from unsplash 我一直认为,程序员也是艺术家,他们撰写的每一行代码,是献给这大好世界的优美诗篇。不同的人,写的代码也许风格迥异。有的,如春风化雨润物无声,有的,如高山流水,曲高和寡,还有的如旱日春雷,先声夺人。而如果说,代码是诗篇,那么代码的分层艺术绝对是最先映入读者眼帘的序幕了。 分层,一直以来是一个非常经典的软件工程学问题,提到分层,无论是资深或者新入门的开发者,或多或少都有自己的理解。 在8年前,我刚参加工作时,有幸参与了比较多项目的研发和维护过程,这些项目的开发者,大多是比我年长几岁的软件开发者。在他们的开发习惯中,往往会倾向于直接在代码中写入用户界面、数据库访问等支持代码,甚至有相当一部分情况下,会把代码写入到用户界面中,这意味着在用户界面层,往往会写入大量的代码,说不定会超过上万行代码。我觉得可以将这种设计,理解为“单层架构“。 再后来的项目开始有了一点点改变,这个时候的架构,被成为“三层架构“。在.NET开发史上,三层架构成为一种历史悠久的框架,从十年前开始,一直到今天,依然是.NET开发者最为熟练的技术框架。如图所示,三层架构在客户端和数据库之间增加了一个中间层,将有效的业务规则、数据访问等放在业务层中进行处理。界面层主要使用对数据的绑定渲染,再通过数据层实现数据的提交处理。有的开发者说,三层架构通吃一切项目,似乎所有的项目都可以用三层架构来套用

【微服务架构】SpringCloud之Hystrix断路器(六)

怎甘沉沦 提交于 2020-12-29 01:58:55
一:什么是Hystrix 在分布式环境中,许多服务依赖项中的一些将不可避免地失败。Hystrix是一个库,通过添加延迟容差和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,停止其间的级联故障以及提供回退选项,从而提高系统的整体弹性。 Hystrix旨在执行以下操作 1:对通过第三方客户端库访问(通常通过网络)的依赖关系提供保护并控制延迟和故障。 2:隔离复杂分布式系统中的级联故障。 3:快速发现故障,尽快恢复。 4:回退,尽可能优雅地降级。 5:启用近实时监控,警报和操作控制。 二:为什么需要Hystrix? 大型分布式系统中,一个客户端或者服务依赖外部服务,如果一个服务宕了,那么由于我们设置了服务调用系统超时时间,势必会影响相应时间,在高并发的情况下大多数服务器的线程池就出现阻塞(BLOCK),影响整个线上服务的稳定性。 (图片官方图片) 当一切都健康时,请求可以看起来像这样 当许多后端服务系统中的一个宕掉时,整个用户请求: 如果多个客户端调用同一个异常服务的时候,出现的情况是: 三:Hystrix解决什么问题? 分布式架构中的应用程序具有几十个依赖关系,每个依赖关系在某个时刻将不可避免的出现异常。如果应用程序不与这些外部故障隔离,则可能出现线程池阻塞,引起系统雪崩。 1 2 3 4 例如,对于依赖 30 个服务的应用程序

应用上云新模式,Aliware 全家桶亮相杭州云栖大会

怎甘沉沦 提交于 2020-12-29 00:41:12
全面上云带来的变化,不仅是上云企业数量上的攀升,也是企业对云的使用方式的转变,越来越多的企业用户不仅将云作为一种弹性资源,更是开始在云上部署架构和应用,借助 Serverless 等技术,开发人员只需聚焦于业务代码,省去了对底层资源的维护,同时底层资源用起来会更节省。 9 月 26 日,在杭州云栖大会 - 企业数字化转型专场的现场,阿里云的架构师、产品经理和客户、合作伙伴全面分享了企业上云的新模式,并发布了简单、丰富、开放和低成本的 PaaS 产品服务集 – Aliware 全家桶。 更高效、更节省的应用托管平台 Web 应用托管上云的利器 阿里云Web应用托管服务(Web+)是一款用来运行并管理 Web 类、移动类和 API 类应用程序的 PaaS 产品。支持 Java、Python、Node.js、PHP、Ruby 和 Go 等多种语言编写并构建应用程序。客户在无需管理底层基础设施的情况下,便可简单、高效、安全而又灵活的对应用进行部署、伸缩、调整和监控。例如,深圳奥哲网络科技有限公司基于 Web 应用托管服务的自动生成环境,无须每次都要手动部署并交付系统给客户。 云上 Serverless 神器 Serverless 应用引擎(简称 SAE )是阿里云首个基于将 Serverless 架构和微服务架构完美融合的 PaaS 类产品,解决了用户的效率和成本问题

dubbo 解决既是消费者又是提供者 Duplicate application configs 的问题

左心房为你撑大大i 提交于 2020-12-28 02:50:38
dubbo 解决既是消费者又是提供者 Duplicate application configs 的问题 参考文章: (1)dubbo 解决既是消费者又是提供者 Duplicate application configs 的问题 (2)https://www.cnblogs.com/iathanasy/p/8034104.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4438370/blog/4845676

Java Web从前端到后台常用框架介绍

拜拜、爱过 提交于 2020-12-26 19:06:12
一、SpringMVC Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 模型(Model ) 封装了应用程序的数据和一般他们会组成的POJO。 视图(View) 是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释。 控制器(Controller ) 负责处理用户的请求,并建立适当的模型,并把它传递给视图渲染。 Spring的web模型 - 视图 - 控制器(MVC)框架是围绕着处理所有的HTTP请求和响应的DispatcherServlet的设计。 Spring Web MVC处理请求的流程 具体执行步骤如下 : 1、 首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤; 2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView

领域驱动设计,让程序员心中有码(五)

爷,独闯天下 提交于 2020-12-26 06:02:31
题图 From unsplash 本系列是由溪源的《领域驱动设计》读书笔记梳理而成,已经是写到第五篇了,为溪源的坚持点赞。 1 从搬砖谈领域对象   有一个古老的故事,大概是这样的。作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子。还有一个人说,我在建立一座巨大的城市。不同的思维模式决定了不同的发展,十年过后,第一个工人,还是在挖洞,而第二个则成为了工头。第三个最终却成为了大设计师。   在软件开发领域,往往会使用搬砖这个词来形容我们所开发的每个功能模块,实际上也确实如此,如果把我们需要完成的每个项目,比作一座高楼大厦,那么在项目中所完成的各种模块,也确实是我们在计算机世界中利用砖块设计出来的精美建筑构建。而从领域驱动的角度来说,可以把关系,类比为建筑工程图纸中使用的各种辅助线,也可以把领域驱动中所涉及的各个对象,类比成砖块,这些砖块,大概有两种:一种是实体(Entity),一种是值对象(Value Object),而使用这些对象的工具,则成为服务(Service),完成的各个建筑构建,被成为包或者模块(Module). 2 关联关系   在介绍领域驱动设计的第三篇文章《 领域驱动设计,让程序员心中有码(三) 》中,笔者提到了UML中常用的几种关系,而关联关系是一种最为常见的关系。在软件设计过程中,无所不在的关联

Dubbo 自定义异常,你是怎么处理的?

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-26 00:57:33
前言 记录 Dubbo 对于自定义异常的处理方式. 实现目标 服务层异常,直接向上层抛出, web 层统一捕获处理 如果是系统自定义异常,则返回 {"code":xxx,"msg":yyy} 其中 code 对应为 错误码 , msg 对应为异常信息 如果非系统自定义异常,返回 {"code":-1,"msg":"未知错误"} ,同时将异常堆栈信息输出到日志,便于定位问题 项目架构 先来张系统架构图吧,这张图来源自网络,相信现在大部分中小企业的分布式集群架构都是类似这样的设计: 简要说明下分层架构: 通常情况下会有专门一台 堡垒机 做统一的代理转发,客户端(pc,移动端等)访问由 nginx 统一暴露的入口 nginx 反向代理,负载均衡到 web 服务器,由 tomcat 组成的集群, web 层仅仅是作为接口请求的入口,没有实际的业务逻辑 web 层再用 rpc 远程调用注册到 zookeeper 的 dubbo 服务集群, dubbo 服务与数据层交互,处理业务逻辑 前后端分离,使用 json 格式做数据交互,格式可以统一如下: 1 { 2 "code" : 200 , //状态码:200成功,其他为失败 3 "msg" : "success" , //消息,成功为success,其他为失败原因 4 "data" : object  //具体的数据内容,可以为任意格式 5 }

Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法

故事扮演 提交于 2020-12-26 00:20:58
Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法 参考文章: (1)Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法 (2)https://www.cnblogs.com/yuanchaoyong/p/9758053.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4437974/blog/4841510