Java基础、中级、高级、架构面试资料

微服务架构入门

JAVA herman 3595浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

什么是软件架构?

软件架构是一个系统的基本组织,体现在系统的各个组件(如web服务器,应用服务器,数据库,存储,通信等),组件之间的关系,以及系统的外部环境(如发布环境,共享服务器,专用服务器,云发布等)。 还包括指导系统设计和演化的原理。

什么是微服务软件架构?

微服务就是开发一个单纯的,小型的,有意义的功能作为一个单一服务。每个服务都有自己的进程,通过轻量级的协议进行通信,发布在一个或者多个服务器上。

微服务架构的好处

  • 每个微服务都是一个小的,专注实现一个特定功能或商务需求的服务
  • 微服务可以由一个小的开发组独立的发布(一般2到5个开发者)
  • 微服务松耦合,这意味着服务之间可以独立的开发和部署
  • 微服务可以由不同的开发语言开发
  • 微服务允许持续集成工具容易且灵活的自动集成部署(如Jenkins, Hudson, bamboo 等).
  • 新的团队成员可以很快融入到开发中
  • 微服务易于理解, 开发人员容易修改和维护, 这是因为这种架构下服务之间的代码都是独立的,团队很小,目标明确
  • 微服务允许你充分采用最新的技术(框架,编程语言,编程实践等)
  • 微服务仅包含商业逻辑代码,不会混合HTML, CSS等其它UI组件
  • 规模扩大时微服务很容易扩展
  • 微服务可以部署在中低档的服务区上
  • 易于继承第三方的服务
  • 每个微服务都有自己的存储能力。但这一点依赖你的需求, 微服务也可以使用同一的数据库如Mysql, Oracle

微服务的不足

  • 微服务可能带来过多的操作
  • 要求要有DevOps技能
  • 可能会有重复的工作
  • 分布式系统管理起来相对复杂
  • 由于分布式部署的问题分析问题比较困难
  • 当服务很多的时候管理整个系统就很麻烦

微服务适合什么样的需求?

当你需要支持跨屏的应用(比如桌面,web,手机,智能电视,可穿戴设备或者未来你不知道的情况)。
(译者按:微服务岂止这些?当你的应用规模急速扩大时,需要将已有的架构进行重构,减少系统组件的紧耦合,就可以考虑微服务的架构)

哪些公司使用了微服务的架构

很多规模很大的物联网公司都采用了微服务的架构,如Twitter, Netflix, Amazon, eBay, 国内的大型互联网公司如淘宝等,都从最初的铁板一块,组件都整体糅合在一起架构演化成微服务的架构。
(译者按:据公开的资料, 07年淘宝开始走向服务化)

微服务之间如何通信

如何实现依赖你的需求。一般开发人员会使用HTTP/REST + JSON或Protobuf,但是法无定式,有很多的选择。

为何现在人人都在谈论微服务?

SOA的概念都有15年了,随着RESTful的web服务的流行和更便利的JSON格式的广泛采用, 创建可以互相调用服务更加的容易和快捷。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 微服务架构入门