美文网首页
用四则运算解析微服务

用四则运算解析微服务

作者: 李征兵 | 来源:发表于2019-09-25 09:14 被阅读0次

    Spring cloud架构解决四则运算

    加、减、乘、除是最简单的四则运算,也是可以作为分布式计算的最简单的示例,因为涉及到这些运算的算术包括添加“()”后的复杂算术最后都可以拆解成独立的加法、减法、乘法、除法分别进行计算,再按照优先级的顺序多次运用基本四则运算完成,所以我们定义一个完整的算式是一个复杂任务,加、减、乘、除分别是四个独立的微服务,通过任务协调调用这些独立微服务就可以完成复杂任务。

    先给出几个简单的定义:

    1. 表达式:即是要计算的算术式,例如a=123+233-123*(232-123/21)+234
    2. 计算器:加法、减法、乘法、除法
    3. 计算优先级:先括弧内、后括弧外;先乘除、后加减
    4. 系统要求:输入一个算术表达式,返回计算结果

    Spring cloud 架构

    Spring cloud架构

    算术表达式运算系统架构

    四则运算微服务架构

    工程示例

    1. web html静态框架
      这个是PC浏览器进行页面展示的工程,部署在服务端在浏览器运行,提供ajax的方式和表达式网关进行数据交换。
    2. Eureka微服务注册中心
      工程名:eureka-server
      功能:这个是spring cloud的微服务管理核心配置,完成后基本无需开发和升级。
    3. Config中心
      工程名:config-server-eureka
      功能:工程配置管理中心,能够将发布到git的配置文件进行统一的管理,方便切换不同的运行环境,完成后不再需要过多的开发和维护。
    4. Zuul网关filter/路由
      工程名:arithmetic-gateway
      功能:这个是四则运算业务的鉴权网关及相关业务路由微服务。
    5. 表达式解析
      工程名:arithmetic-four-operations
      功能:给UI端提供表达式执行结果的API,它能够接受来自上层网关路由过来的请求,并将表达式解析为若干个微服务请求,然后按照优先级顺序调用相关微服务接口,将最终的计算结果返回给路由网关,进而返回给web端。
      这个工程中引入了spring-cloud-config客户端,即通过调研配置中心的服务获取部署在git上的环境变量,注意config配置文件为bootstrap.{properties|yml},该配置文件中的spring.application.name对应的必须和git上的配置文件名称一致。
    6. 加法微服务
      工程名:arithmetic-add-service
      功能:实际执行加法计算的微服务模块。
    7. 减法微服务
      工程名:arithmetic-sub-service
      功能:实际执行减法计算的微服务模块。
    8. 乘法微服务
      工程名:arithmetic-mul-service
      功能:实际执行乘法计算的微服务模块。
    9. 除法微服务
      工程名:arithmetic-div-service
      功能:实际执行除法法计算的微服务模块。

    本工程的完整源代码

    该工程代码经过验证均可正常运行。
    码云git下载地址

    相关文章

      网友评论

          本文标题:用四则运算解析微服务

          本文链接:https://www.haomeiwen.com/subject/rrsiuctx.html