文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
微服务的概念最早在 2012 年提出 , 在 Martin Fowler 的大力推广下 , 微服务在 2014 年后得到了大力发展 。 今天我们通过一组手绘图来梳理下微服务的核心架构 。
什么是微服务?微服务 Microservices 之父 , 马丁.福勒 , 对微服务大概的概述如下:
就目前而言 , 对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style )。
但通常在其而言 , 微服务架构是一种架构模式或者说是一种架构风格 , 它提倡将单一应用程序划分成一组小的服务 , 每个服务运行独立的自己的进程中 , 服务之间互相协调、互相配合 , 为用户提供最终价值 。
服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API )。 每个服务都围绕着具体业务进行构建 , 并且能够被独立地部署到生产环境、类生产环境等 。
另外 , 应尽量避免统一的、集中式的服务管理机制 , 对具体的一个服务而言 , 应根据业务上下文 , 选择合适的语言、工具对其进行构建 , 可以有一个非常轻量级的集中式管理来协调这些服务 。 可以使用不同的语言来编写服务 , 也可以使用不同的数据存储 。
根据马丁.福勒的描述 , 我总结了以下几点:
①小服务
小服务 , 没有特定的标准或者规范 , 但他在总体规范上一定是小的 。
②进程独立
每一组服务都是独立运行的 , 可能我这个服务运行在 Tomcat 容器 , 而另一个服务运行在 Jetty 上 。 可以通过进程方式 , 不断的横向扩展整个服务 。
③通信
过去的协议都是很重的 , 就像 ESB , 就像 SOAP , 轻通信 , 这意味着相比过去更智能更轻量的服务相互调用 , 就所谓 smart endpoints and dumb pipes 。
这些 Endpoint 都是解耦的 , 完成一个业务通信调用串起这些 Micro Service 就像是 Linux 系统中通过管道串起一系列命令业务 。
过去的业务 , 我们通常会考虑各种各样的依赖关系 , 考虑系统耦合带来的问题 。 微服务 , 可以让开发者更专注于业务的逻辑开发 。
- 电子商务|腾讯回应财付通被罚:已全部完成整改
- 百度|派财经 · 一周热闻:工信部因电信网络诈骗约谈阿里云、百度云;腾讯回应APP暂停更新
- 编程|腾讯,搬起石头砸自己的脚!
- 电子商务|官方点名才重视?腾讯公开回应,马化腾该好好反思了
- 腾讯|腾讯惨了,旗下即将发布的APP被勒令必须先检测后上架,现有可继续用
- 阿里巴巴|互联网公司不敢赚钱?阿里腾讯十年来净利润首亏损,该换挡了?
- 百济神州|腾讯净利润下跌,马化腾却早已在“闷声发大财”?
- 腾讯|冠名华为,赛力斯SF5以三合一电驱系统亮相,能否冲击轿跑系列
- 腾讯|有没有靠谱又赚钱的副业求推荐?
- 腾讯|数据安全厂商“全知科技”完成数亿元B轮融资