Spring cloud架构解决四则运算
加、减、乘、除是最简单的四则运算,也是可以作为分布式计算的最简单的示例,因为涉及到这些运算的算术包括添加“()”后的复杂算术最后都可以拆解成独立的加法、减法、乘法、除法分别进行计算,再按照优先级的顺序多次运用基本四则运算完成,所以我们定义一个完整的算式是一个复杂任务,加、减、乘、除分别是四个独立的微服务,通过任务协调调用这些独立微服务就可以完成复杂任务。
先给出几个简单的定义:
- 表达式:即是要计算的算术式,例如a=123+233-123*(232-123/21)+234
- 计算器:加法、减法、乘法、除法
- 计算优先级:先括弧内、后括弧外;先乘除、后加减
- 系统要求:输入一个算术表达式,返回计算结果
Spring cloud 架构
Spring cloud架构算术表达式运算系统架构
四则运算微服务架构工程示例
- web html静态框架
这个是PC浏览器进行页面展示的工程,部署在服务端在浏览器运行,提供ajax的方式和表达式网关进行数据交换。 - Eureka微服务注册中心
工程名:eureka-server
功能:这个是spring cloud的微服务管理核心配置,完成后基本无需开发和升级。 - Config中心
工程名:config-server-eureka
功能:工程配置管理中心,能够将发布到git的配置文件进行统一的管理,方便切换不同的运行环境,完成后不再需要过多的开发和维护。 - Zuul网关filter/路由
工程名:arithmetic-gateway
功能:这个是四则运算业务的鉴权网关及相关业务路由微服务。 - 表达式解析
工程名:arithmetic-four-operations
功能:给UI端提供表达式执行结果的API,它能够接受来自上层网关路由过来的请求,并将表达式解析为若干个微服务请求,然后按照优先级顺序调用相关微服务接口,将最终的计算结果返回给路由网关,进而返回给web端。
这个工程中引入了spring-cloud-config客户端,即通过调研配置中心的服务获取部署在git上的环境变量,注意config配置文件为bootstrap.{properties|yml},该配置文件中的spring.application.name对应的必须和git上的配置文件名称一致。 - 加法微服务
工程名:arithmetic-add-service
功能:实际执行加法计算的微服务模块。 - 减法微服务
工程名:arithmetic-sub-service
功能:实际执行减法计算的微服务模块。 - 乘法微服务
工程名:arithmetic-mul-service
功能:实际执行乘法计算的微服务模块。 - 除法微服务
工程名:arithmetic-div-service
功能:实际执行除法法计算的微服务模块。
本工程的完整源代码
该工程代码经过验证均可正常运行。
码云git下载地址
网友评论