1、微服务将整个业务系统拆分为相对独立的业务模块,并强调各个微服务都可以独立测试、独立部署、独立运行;微服务之间是一种真正的低耦合。
2、SOA面向服务的设计。
3、微服务架构作为SOA来开发设计。
4、搭建微服务的过程包括代码静态检查、AWS基础设计构建、Docker映像构建及部署、持续交付流水线、服务的日志聚合以及监控和告警。
5、单块构建应用的系统中,不同职责的部分逐渐被划分到了如下三个层次:
表示层,聚焦数据显示和用户交互。
业务逻辑层,聚焦业务逻辑处理。
数据访问层,聚焦数据的存储与访问。
6、单块构架的优势
易于开发
易于测试
易于部署
易于水平伸缩
7、单块构架面临的挑战
用户增多后导致并发请求数增多和响应面的问题,以及用户增多后带来的大数据量的问题。
随着业务组织的不断扩张,需求不断增加,代码库也在急剧膨胀。在这种情况下,单块构架的可维护性、灵活性也在降低,而测试成本、构建成本以及维护成本也在显著增加。
交互周期长
新人培养周期长
技术选型成本高
可扩展性差
8、互联网时代的产品通常有几个特点:创新成本低、需求变化快,用户群体庞大。
9、轻量级通信机制通常指语言无关、平台无关的交互方式。
10、对于轻量级通信的格式而言,XML或者JSON的解析和使用基本与平台无关、平台无关。对于轻量级通信的协议而言,通常基于HTTP,能让服务间的通信变得标准化并且无状态化。目前,REST是实现服务之间互相协作的轻量级通信机制之一。
11、如果使用Java的RMI作为通信协议,则通信的两端必须采用运行在JVM之上的开发语言实现。
12、单个构架中,功能的开发、测试的开发、测试、构建以及部署耦合度较高,相互影响。
13、在微服务架构中,每个服务都是一个独立的业务单元,当对某个服务进行改变时,对其他服务不会产生影响。换句话说,服务和服务之间是独立的。
14、微服务是传统SOA定义的一个子集。
15、SOA包括云计算、敏捷。微服务、DevOps和持续交付。
16、REST是设计风格而不是标准。REST通常使用HTTP、URL和XML以及JSON协议和标准。
17、REST以资源为中心,将外部访问的所有信息定义成不同的资源,并使用HTTP的verbs,映射为操作资源的行为。
18、日志聚合
19、监控与告警
20、微服务与轻量级通信机制
21、RPC又称过程调用,是一种典型的分布式节点间同步同步通信的实现方式。远程过程调用采用客户端/服务器端的模式,请求的发起者是客户端,提供相应的是服务器端。
22、RPC使用代理存根(Stub/Skeleton)的方式,屏蔽了通信双方底层的调用细节,让客户端不必显式区分当前代码级别的方法调用是本地调用还是远程调用,因此使分布式节点间的通信变得简单。但RPC是依赖于编程语言或者特定平台的,因此限制了客户端和服务端采用的技术。
23、REST通过资源表述、状态转移以及统一接口,REST将客户端的请求、服务器端的响应基于资源联系起来,逐渐形成了一种以资源为核心、以HTTP为操作方式的,与语言无关。平台无关的通信机制。
24、消息队列解耦了消息发布者和消费者之间的关系,使得二者可以借助于队列的方式完成异步通信。常用的消息队列有RabbitMQ、ActiveMQ以及ZeroMQ。
25、微服务的各种测试:单元测试、接口测试、集成测试、组件测试、端到端测试