开箱即用的Dubbo模版

开箱即用的Dubbo模版

前言

近期做的项目是一个采用Dubbo架构的微服务项目,由于之前虽然学习过Dubbo架构但是一直没有机会独自搭建过,于是趁着这个机会凭借着自己浅薄的理解自己完整地搭建了一个开箱即用的spring-dubbo-demo

正文

开箱即用的Dubbo模版

这里简单介绍一下这个项目的的结构

spring-dubbo-demo

  • spring-dubbo-api:这个模块主要存放对外提供的dubbo接口。
  • spring-dubbo-common:存放着一些常用的工具类、自定义标签、枚举类等。
  • spring-dubbo-dao:提供数据访问模块,比如mysql数据库。
  • spring-dubbo-middleware:用于连接消息中间件,如消息队列。
  • spring-dubbo-gateway:项目的网关模块,用于负载均衡、限流等。
  • spring-dubbo-producer:模拟producer业务模块。
  • spring-dubbo-comsumer:模拟comsumer业务模块。

根据项目中各个模块的关系,简单描绘了这个项目的架构图:

在这里插入图片描述

项目的技术栈

Nacos服务治理中心和配置中心

Nacos提供了四个主要功能

  • 服务发现和服务运行状况检查(服务治理)Nacos使服务易于注册自己并通过DNSHTTP接口发现其他服务。Nacos还提供服务的实时运行状况检查,以防止向不正常的主机或服务实例发送请求。
  • 动态配置管理:动态配置服务使您可以在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序和服务的需求,这使配置更改更加有效和敏捷。
  • 动态DNS服务Nacos支持加权路由,使您可以更轻松地在数据中心内的生产环境中实施中间层负载平衡,灵活的路由策略,流控制和简单的DNS解析服务。它可以帮助您轻松实现基于DNS的服务发现,并防止应用程序耦合到特定于供应商的服务发现API。
  • 服务和元数据管理(分布式配置)Nacos提供了易于使用的服务仪表板,可帮助您管理服务元数据,配置,kubernetes DNS,服务运行状况和指标统计信息。

Nacos既可以作为服务治理中心(可以替代 Spring Cloud Eureka)也可以作为配置中心(可替代 Spring Cloud Config)。
Nacos作为一个单独的服务进行部署,不需要用户搭建项目作为服务治理节点。

具体的使用可参考我的博客:Nacos服务治理中心和配置中心

Gateway微服务网关

Gateway提供了一个用于在Spring MVC之上构建API网关的库。Spring Cloud Gateway旨在提供一种简单而有效的方法来路由到API,并为它们提供跨领域的关注点,例如:安全性,监视/指标和弹性。

Spring Cloud Gateway可以实现以下功能:

  • 建立在Spring Framework 5Project ReactorSpring Boot 2.0之上
  • 能够匹配任何请求属性上的路由。谓词和过滤器特定于路由
  • Hystrix断路器集成
  • Spring Cloud DiscoveryClient集成
  • 易于编写的谓词和过滤器
  • 请求速率限制,即限流
  • 路径改写

具体的使用可参考我的博客:微服务网关-Gateway

ElasticJob分布式定时器

ElasticJob是一种分布式调度解决方案,由两个单独的项目ElasticJob-LiteElasticJob-Cloud组成。

通过灵活的调度,资源管理和作业管理功能,它创建了适合Internet场景的分布式调度解决方案,并通过开放式架构设计提供了多元化的作业生态系统。它为每个项目使用统一的作业API。开发人员只需要一次编写代码,就可以随意部署。

具体的使用可参考我的博客:Elastic-job实现分布式定时任务

RocketMQ消息队列

Apache RockerMQ是一个分布式消息传递引擎,轻量级的数据处理平台。

它具有以下的特性:

  • 低延迟: 高压下在1毫米内响应延迟超过99.6%。
  • 财务导向:具有跟踪和审核功能的高可用性。
  • 产业可持续发展:万亿级消息容量。
  • 大数据友好:具有通用集成功能的批处理传输实现大批量吞吐。
  • 兼容性好:提供开放式分布式消息传递和流传输标准。
  • 万亿级容量:给定足够的磁盘空间,可以在不损失性能的情况下累计邮件。

具体的使用可参考我的博客:SpringBoot整合RocketMQ实现消息队列

knife4j接口调试

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,具有小巧,轻量,并且功能强悍的优点。
Knife4j提供两大核心功能:文档说明 和 在线调试

  • 文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用swagger-bootstrap-ui能根据该文档说明,对该接口的使用情况一目了然。
  • 在线调试:提供在线接口联调的强大功能,自动解析当前接口参数,同时包含表单验证,调用参数可返回接口响应内容、headersCurl请求命令实例、响应时间、响应状态码等信息,帮助开发者在线调试,而不必通过其他测试工具测试接口是否正确,简洁、强大。

具体的使用可参考我的博客:SpringBoot使用knife4j进行在线接口调试

源码

项目源码可从的我的github中获取:github源码地址

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40990818/article/details/108571161