【AICon】硅谷视野+中国实践,汇聚全球顶尖技术的 AI 科技盛会 >>> 了解详情
写点什么

完整微服务化示例:使用 Apache ServiceComb 进行微服务开发、容器化、弹性伸缩

  • 2019-12-25
  • 本文字数:1224 字

    阅读完需:约 4 分钟

完整微服务化示例:使用 Apache ServiceComb 进行微服务开发、容器化、弹性伸缩

微服务架构作为新兴领域的架构模式,已步入产品化形态,与容器化、集群等一起成为了当下热点。而微服务、Docker、kubernetes 之间的关系,究竟这三者之间是什么样的关系,分别能在微服务领域发挥什么作用,却常给入门的读者和用户带来些许迷茫感。


本文使用一个简单的普适性的微服务示例,从业务场景入手,到微服务架构设计、实现、容器化、集群部署、压测、弹性伸缩、资源控制,端到端以最直白的方式演示了这三者的关系,会给读者带来不一样的真切的理念体验和感受,增强对系列概念的理解。

普适性微服务化示例

为了读者能更容易了解 ServiceComb 微服务框架的功能以及如何用其快速开发微服务,所以提供大家耳熟能详的例子,降低学习曲线的同时,增加趣味性,加深理解。


本文中假设我们成立了一家科研公司,处理复杂的数学运算,以及尖端生物科技研究,并为用户提供如下服务:


  • 黄金分割数列计算

  • 蜜蜂繁殖规律 (计算每只雄蜂/雌蜂的祖先数量)


但是我们如何将公司的这些强大运算能力提供给我们的消费者呢?


首先我们通过认证服务保障公司的计算资源没有被滥用, 同时我们对外提供 Rest 服务让用户来进行访问。下面的视频展示具体的服务验证调用的情况。

业务场景

让我们先对业务场景进行总结分析


1.为了公司持续发展,我们需要对用户消费的运算能力收费,所以我们聘用了门卫认证用户,避免不法分子混入。


2.为了提供足够的黄金分割数量运算能力,我们需要雇佣相应的技工。


3.为了持续研究蜜蜂繁殖规律,公司建立了自己的蜂场,需要相应的养蜂人进行管理研究。


4.为了平衡技工、养蜂人、和门卫的工作量和时间,我们建立了告示栏机制,让当前有闲暇的人员发布自己的联系方式,以便我们能及时联系技能匹配的人员以服务到来的用户。


5.因为运算能力成本高昂,我们将运算项目进行了归档,以便未来有相同请求时,我们能直接查询项目归档,节省公司运算成本。


6.面对上述复杂的场景,我们又聘用了部门经理来管理公司成员和设施


7.最后,当公司日益壮大,用户数量暴涨时,我们还需要招聘更多技工、养蜂人、和门卫,所以增加了人力资源部门



公司结构 (系统架构)


到现在业务场景已经比较清晰,我们把上述职务部门和设施画成公司组织结构图。


现在公司组织结构已经完整,让我们着手搭建相应部门。


本文转载自微服务蜂巢公众号。


原文链接:https://mp.weixin.qq.com/s?__biz=MzUxNTEwNTg5Mg==&mid=2247488670&idx=1&sn=7556990599cea8e0fd80ed54b9f39026&chksm=f9bae195cecd688332940d0b296909e8130d828104c36c20f49d76d43561f626eae24bd0c1ef&scene=0&xtrack=1&key=17fbc717c1803f309d535a4bdbc0f9c0d8d2089a5c7e455df8c0a5e6d824a6534b8476d2ad151cd45ed10eb7a15577914596444e867d96f615c277fc05fe951cef48de8b7d0732dcb4bc74f5c0e2f95a&ascene=14&uin=MTI5MjAyNjcyMQ%3D%3D&devicetype=Windows+10&version=62070158&lang=zh_CN&exportkey=AfH3CzqE%2F1ENttvg815y9Uo%3D&pass_ticket=oGcazNeaRfkuszcDU0L7jpfeTFZ3%2FULBAbPnhurUkiyW7DLvBVsoC%2Fh5OWX1zIsH


2019-12-25 18:11640

评论

发布
暂无评论
发现更多内容

开始每周写作计划

M1racle

翻译和产品本地化的区别是什么?

葛仲君

翻译 本地化 全球化 产品开发

内存对齐

泰伦卢

c c++ C#

MySQL中 int(11)和 int(10) 到底有没有区别?

周三不加班

MySQL 字符宽度 数据库数据类型

【译】【UX】一个页面可以有多个面包屑导航吗?

Yukun

用户研究 UX 面包屑导航

DDD 实践手册(4. Aggregate — 聚合)

Joshua

设计模式 领域驱动设计 架构模式

写作的意义到底是什么

董一凡

写作

centos7 maven私服自动启动

kcnf

Redis 6.0 新特性-多线程连环13问!

牧码哥

redis 多线程 io

从一道面试题来看计算机基础知识的重要性

周三不加班

数组 堆栈 函数栈 函数栈调用

金融「中台」十宗罪

FinClip

中台 企业中台 业务中台

Clickhouse 性能测试

久吾尔岂

当我们谈到ThreadLocal的时候,我们在谈什么?

Jason

Java 多线程 ThreadLocal

聊聊苹果账号的那些事儿

不要艾特我

iphone

笔记:《如何系统思考》之如何做到系统思考

wiflish

思维方式

各大公司面试题分类整理

是小毛吖

面试 后端

一个平凡程序员的年度总结

小智

程序员 人生

关于GDB你需要知道的技巧

泰伦卢

c c++ C#

业务代码的救星——Java 对象转换框架 MapStruct 妙用

周三不加班

MapStruct 对象转换

css常见问题总结

靖仙

CSS css3

面试指南 | 终于要跟大家见面了,我有点紧张。

Apache Flink

大数据 flink 流计算 实时计算

C++定时器的实现

泰伦卢

c c++ C#

《TCP/IP详解》概述

网瘾少年SEC

TCP 网络协议 IP

写字工具更新史

Bonaparte

学习 读书笔记

浅谈SpringCloud之服务注册中心Eureka

北漂码农有话说

从删库到跑路?

芦苇

产品 职业 产品经理 职业素养 职业道德

开源商业模式促进金融业科技生态的发展

FinClip

开源 金融科技

Python3.6.1官方文档练习——初入江湖(一)

小匚

Python python3.x 入门

一次线上服务高 CPU 占用优化实践

挖坑的张师傅

性能优化 JVM cpu

机会是留给不停寻找他们的人,而不是原地等待的人

非著名程序员

程序员 提升认知 机会 行动派

C++线程池的实现

泰伦卢

c++ C# 线程池

完整微服务化示例:使用 Apache ServiceComb 进行微服务开发、容器化、弹性伸缩_文化 & 方法_ServiceComb_InfoQ精选文章