Menu

微服务系统:解惑、技术选型

2018年4月3日 - Java Web 开发

后端类开发总结 / 预测

在商言商

“我们了解到的其中一件事是:如果你不能提高上市速度,毫无疑问,市场将发生变化,无论你对产品的设计、构建、部署或对员工的培训有多好,都不会完全适合市场需求,只因为晚了一点点。” 来源

微服务的根:敏捷开发

瀑布式开发

敏捷开发

我们遵循以下原则:
我们最重要的目标,是通过持续不断地
及早交付有价值的软件使客户满意。

欣然面对需求变化,即使在开发后期也一样。
为了客户的竞争优势,敏捷过程掌控变化。

经常地交付可工作的软件,
相隔几星期或一两个月,倾向于采取较短的周期。

业务人员和开发人员必须相互合作,
项目中的每一天都不例外。

激发个体的斗志,以他们为核心搭建项目。
提供所需的环境和支援,辅以信任,从而达成目标。

不论团队内外,传递信息效果最好效率也最高的方式是
面对面的交谈。

可工作的软件是进度的首要度量标准。

敏捷过程倡导可持续开发。
责任人、开发人员和用户要能够共同维持其步调稳定延续。

坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

以简洁为本,它是极力减少不必要工作量的艺术。

最好的架构、需求和设计出自自组织团队。

团队定期地反思如何能提高成效,
并依此调整自身的举止表现。

模块拆分(组件化)、服务拆分、分布式、集群、负载均衡、微服务、DevOps、前后端分离

模块拆分

服务拆分

分布式

分布式

集群

集群

负载均衡

负载均衡

微服务

DevOps

这个包在我本地运行没有问题,部署到服务器出问题了,那肯定是你那边环境有问题呀(开发者说)

你们到底是怎么开发的,一部署上去,CPU 和 内存的占用立马暴增(运维人员说)

前后端分离

微服务团队

引入微服务带来的技术问题

微服务是如何解决

客户端如何访问这些服务?

服务是如何通信?

这么多服务,怎么找?

这么多服务,服务挂了怎么办?

难点

多套系统的数据

微服务架构的数据一致性问题

最终一致性

微服务的主要组件

Java 的微服务方案:Spring Boot、Spring Cloud

最终个人在技术选型上的选择

资料