定制app开发SpringCloud微服务架构

什么是

定制app开发微服务架构的基础是将定制app开发的那个应用程序开发为定制app开发一组小型独立服务,定制app开发这些独立服务在自己的定制app开发进程中运行,定制app开发独立开发和部署。

SpringCloud Alibaba微服务:

Spring Cloud Alibaba 是Spring Cloud定制app开发的一个子项目,致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。


核心组件

服务限流降级:

默认支持WebServlet、OpenFeign、RestTemplate、Spring Cloud GateWay、RocketMQ限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级Metrics监控

服务注册与发现:

基于Spring Cloud服务注册与发现标准,借助Nacos进行实现,默认还继集成了Ribbon支持

分布式配置管理:

基于Nacos支持分布式系统中的外部化配置,配置更改时自动刷新

消息驱动能力:

基于spring Cloud Stream为微服务应用构建消息驱动能力

分布式事务:

使用@GlobalTransactional注解,高效并且对业务零侵入地解决分布式事务问题

分布式任务调度:
提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker上执行。

IVProjects (工作区/空项目)
├── 01-sca   //(微服务父工程)
     ├── sca-provider            //服务提供方法
     ├── sca-consumer         //服务消费方法
     ├── sca-gateway            //网关服务

相关配置:

一:配置JDK编译环境

聚合工程在编译时,需要对相关依赖的工程进行一起编译,所以要做一些配置

 指定JDK编译版本:

 配置工作区中项目编码方式

 第二步:配置项目pom.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <!--当前工程的坐标-->
  7. <groupId>com.jt</groupId>
  8. <artifactId>01-sca</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10. <dependencyManagement>
  11. <dependencies>
  12. <!--spring boot 核心依赖版本定义(spring官方定义)-->
  13. <dependency>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-dependencies</artifactId>
  16. <version>2.3.2.RELEASE</version>
  17. <type>pom</type>
  18. <scope>import</scope>
  19. </dependency>
  20. <dependency>
  21. <groupId>org.springframework.cloud</groupId>
  22. <artifactId>spring-cloud-dependencies</artifactId>
  23. <version>Hoxton.SR9</version>
  24. <type>pom</type>
  25. <scope>import</scope><!--引入三方依赖的版本设计-->
  26. </dependency>
  27. <dependency>
  28. <groupId>com.alibaba.cloud</groupId>
  29. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  30. <version>2.2.6.RELEASE</version>
  31. <type>pom</type>
  32. <scope>import</scope>
  33. </dependency>
  34. </dependencies>
  35. </dependencyManagement>
  36. <dependencies>
  37. <dependency>
  38. <groupId>com.alibaba</groupId>
  39. <artifactId>fastjson</artifactId>
  40. </dependency>
  41. <!--mybatis依赖包-->
  42. <dependency>
  43. <groupId>com.baomidou</groupId>
  44. <artifactId>mybatis-plus-boot-starter</artifactId>
  45. <version>3.3.1.tmp</version>
  46. </dependency>
  47. <dependency>
  48. <groupId>org.springframework.boot</groupId>
  49. <artifactId>spring-boot-starter-web</artifactId>
  50. </dependency>
  51. <dependency>
  52. <groupId>mysql</groupId>
  53. <artifactId>mysql-connector-java</artifactId>
  54. </dependency>
  55. <!--lombok 依赖,子工程中假如需要lombok,不需要再引入-->
  56. <dependency>
  57. <groupId>org.projectlombok</groupId>
  58. <artifactId>lombok</artifactId>
  59. <scope>provided</scope><!--provided 表示此依赖仅在编译阶段有效-->
  60. </dependency>
  61. <!--单元测试依赖,子工程中需要单元测试时,不需要再次引入此依赖了-->
  62. <dependency>
  63. <groupId>org.springframework.boot</groupId>
  64. <artifactId>spring-boot-starter-test</artifactId>
  65. <!-- <scope>test</scope>&lt;!&ndash;test表示只能在test目录下使用此依赖&ndash;&gt;-->
  66. <exclusions>
  67. <exclusion><!--排除一些不需要的依赖-->
  68. <groupId>org.junit.jupiter</groupId>
  69. <artifactId>junit-jupiter-engine</artifactId>
  70. </exclusion>
  71. </exclusions>
  72. </dependency>
  73. <dependency>
  74. <groupId>com.alibaba</groupId>
  75. <artifactId>fastjson</artifactId>
  76. <version>1.2.60</version>
  77. <scope>compile</scope>
  78. </dependency>
  79. <!--其它依赖...-->
  80. </dependencies>
  81. <build>
  82. <plugins>
  83. <!--通过maven-compiler-plugin插件设置项目
  84. 的统一的jdk编译和运行版本-->
  85. <plugin>
  86. <groupId>org.apache.maven.plugins</groupId>
  87. <artifactId>maven-compiler-plugin</artifactId>
  88. <!--假如本地库没有这个版本,这里会出现红色字体错误-->
  89. <version>3.8.1</version>
  90. <configuration>
  91. <source>8</source>
  92. <target>8</target>
  93. </configuration>
  94. </plugin>
  95. </plugins>
  96. </build>
  97. </project>

Spring-Cloud一套完整的服务就需要以下部分中间件。

核心组件:

微服务指多个服务模块,而多个服务模块就需要一个服务注册中心,将多个模块融合在一起。并且可以进行模块相互之间互相调用。---Nacos

每个模块创建好后,需要统一的网关路径,设置路径跳转。所有的模块路径接口,都可以在网关服务中进行配置。 ---Gateway

登录安全认证框架:


Nacos服务注册中心:

Sentinel限流熔断:

网关Gateway:

消息中间件:

ES分析引擎实时搜索:

Redis缓存:

下面忽略:所有微服务相关中间件在上面都有对应文章

在vo包下编辑SysResult对象(SysResult.java)

说明: 该对象主要负责前端项目与后端项目的数据交互. 几乎所有的后台服务器的返回值都是SysResult对象.

  1. package com.jt.vo;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import lombok.experimental.Accessors;
  6. import java.io.Serializable;
  7. @Data
  8. @Accessors(chain = true)
  9. @NoArgsConstructor
  10. @AllArgsConstructor
  11. public class SysResult implements Serializable {
  12. private Integer status; //200业务执行成功 201业务执行失败
  13. private String msg; //服务器的提示信息
  14. private Object data; //封装后台返回值
  15. public static SysResult fail(){
  16. return new SysResult(201,"业务执行失败",null);
  17. }
  18. public static SysResult success(){
  19. return new SysResult(200,"业务执行成功",null);
  20. }
  21. //服务器返回业务数据
  22. public static SysResult success(Object data){
  23. return new SysResult(200,"业务执行成功",data);
  24. }
  25. public static SysResult success(String msg,Object data){
  26. return new SysResult(200,msg,data);
  27. }
  28. }

lamda表达式遍历数组:

  1. List<String> datas = new ArrayList<>();
  2. //遍历
  3. datas.forEach(item->{
  4. System.out.println(item);
  5. });

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发