# arithmetic **Repository Path**: crazyicelee/arithmetic ## Basic Information - **Project Name**: arithmetic - **Description**: 四则运算演示微服务基本概念 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-09-25 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Spring cloud架构解决四则运算 加、减、乘、除是最简单的四则运算,也是可以作为分布式计算的最简单的示例,因为涉及到这些运算的算术包括添加“()”后的复杂算术最后都可以拆解成独立的加法、减法、乘法、除法分别进行计算,再按照优先级的顺序多次运用基本四则运算完成,所以我们定义一个完整的算式是一个复杂任务,加、减、乘、除分别是四个独立的微服务,通过任务协调调用这些独立微服务就可以完成复杂任务。 #### 先给出几个简单的定义: 1. 表达式:即是要计算的算术式,例如a=123+233-123*(232-123/21)+234 2. 计算器:加法、减法、乘法、除法 3. 计算优先级:先括弧内、后括弧外;先乘除、后加减 4. 系统要求:输入一个算术表达式,返回计算结果 #### Spring cloud 架构 ![Spring cloud架构](https://upload-images.jianshu.io/upload_images/3901411-3786d077406213d5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) #### 算术表达式运算系统架构 ![四则运算微服务架构](https://upload-images.jianshu.io/upload_images/3901411-7fd50d6d55e03a72.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) #### 工程示例 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 功能:实际执行除法法计算的微服务模块。