用四则运算解析微服务

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下载地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,362评论 6 544
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,577评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,486评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,852评论 1 317
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,600评论 6 412
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,944评论 1 328
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,944评论 3 447
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,108评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,652评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,385评论 3 358
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,616评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,111评论 5 364
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,798评论 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,205评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,537评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,334评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,570评论 2 379

推荐阅读更多精彩内容

  • 互联网架构微服务已经成为主流,Go 语言如何去打造呢? 万字长文全面解析 GraphQL,携程微服务背景下的前后端...
    flaygo阅读 813评论 0 2
  • 【IT168 调查报告】如果在诸多热门云计算技术中,诸如容器、微服务、DevOps、OpenStack 等,找出一...
    gaolloag阅读 780评论 0 12
  • 白驹过隙间,到敦煌已经99天了,心里撮小火,总想说的什么,写的什么,无奈于太忙,被推着走的太急躁。 时间一直都窜的...
    鸣沙山下的支教时光阅读 437评论 2 8
  • hi 2018-02-10 18:11评论(0) 腊月二十五,周六,离过年越来越近,感觉过年很清净就越没劲,让我想...
    易友阅读 78评论 0 0
  • 学到 概念: 我们的直觉和客观概率往往是不符的,行为经济学家把这种人类自以为是的概率,叫做心理概率。心理概率和客观...
    你若盛开_清风自来阅读 1,450评论 0 1