Spring Cloud 分布式架构、微服务

引言

JeeSite Spring Cloud 是基于 Spring Cloud Finchley 的一个分布式系统套件的整合。

特点:用经典开发模式,开发分布式应用,两个字【简单】,一个字【快】。

更多资料:Spring Cloud 官方文档

代码下载

https://gitee.com/thinkgem/jeesite4-cloud

技术选型

  • 分布式系统套件版本:Spring Cloud Finchley
  • 服务治理注册与发现:Spring Cloud Netflix Eureka
  • 服务容错保护限流降级:Spring Cloud Netflix Hystrix
  • 分布式统一配置中心:Spring Cloud Config
  • 网关路由代理调用:Spring Cloud Gateway
  • 声明式服务调用:Spring Cloud OpenFeign
  • 分布式链路追踪:Spring Cloud Zipkin

子项目介绍

快速运行

  • 初始化数据库(下载最新的mysql脚本): https://gitee.com/thinkgem/jeesite4/attach_files
  • 配置 /jeesite-cloud-config/../cloud-config/application.yml 分布式统一配置文件 JDBC 和 Redis 等信息。
  • 按顺序运行以下启动类的main方法(启动完成一个再启下一个):
    • /jeesite-cloud-eureka/../EurekaApplication.java
    • /jeesite-cloud-config/../ConfigApplication.java
    • /jeesite-cloud-gateway/../GatewayApplication.java
    • /jeesite-cloud-module-core/../CoreApplication.java
    • /jeesite-cloud-module-test1/../Test1Application.java
    • /jeesite-cloud-module-test2/../Test2Application.java
  • 以上都启动成功后,浏览器访问网关项目地址即可:
    • 访问地址:http://127.0.0.1:8980/js system admin
    • 若访问报错,请再等待一会,可能服务未完全启动完成

调用实例演示

网关代理模块调用

模块之间互相调用

  • test2 模块调用 test1 模块(单表):http://127.0.0.1:8980/js/a/test2/testData/list
    • 服务消费者位置:jeesite-cloud-module-test2/../web/TestData2Controller.java
    • 服务提供者位置:/jeesite-cloud-module-test1/../service/TestDataService.java
  • test1 模块调用 test2 模块(树表):http://127.0.0.1:8980/js/a/test1/testTree/list
    • 服务消费者位置:jeesite-cloud-module-test1/../web/TestTree1Controller.java
    • 服务提供者位置:/jeesite-cloud-module-test2/../service/TestTreeService.java

Spring Cloud 官方文档

https://cloud.spring.io/spring-cloud-static/Finchley.SR3/single/spring-cloud.html