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

用四则运算解析微服务

作者: 李征兵 | 来源:发表于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