204 架构设计的目的和原则

什么是框架,什么是架构?

  • 框架Framwork关注的是规范,可以是组件规范,例如MVC框架(MVC开发规范)。也可以是提供了基于规范来发开的产品,例如SpringMVC就是基于MVC的开发框架。
  • 架构Architecture关注的是结构,指软件系统的顶层结构。同一个系统,从不同角度分解,可以有不同的架构,例如业务逻辑角度、物理部署角度、开发规范角度。

相比较而言,架构比框架关注的东西更多,而且一个架构可能会使用多个框架。

点我阅读更多...

104 dubbo实现了哪些微服务组件

dubbo的整体架构

图片来源:http://dubbo.apache.org/docs/zh-cn/dev/sources/images/dubbo-framework.jpg

  • Config配置层。
  • Proxy动态代理层。
  • Registry注册中心层。
  • Cluster路由层。
  • Monitor监控层。
  • Protocol远程调用层。
  • Exchange信息交换层。
  • Transport网络传输层。
  • Serialize数据序列化层。

各层说明可靠参考dubbo光放文档 http://dubbo.apache.org/zh-cn/docs/dev/design.html

下面说明Dubbo实现各个微服务组件时,涉及到架构中的哪些层次。

点我阅读更多...

201 微服务-服务监控

监控对象

微服务监控对象可以按照从前端到后端的维度进行划分。

  • 用户端监控。在用户直接使用的功能上增加监控。例如某个功能用户的点击次数,点击按钮后的响应时间等等。
  • 接口监控。对后台服务提供的接口进行监控,这些接口既有前端与后端交互的接口,也有后端服务之间互相调用的接口。
  • 服务器监控。后台服务器健康状态的监控,例如CPU,内存,I/O等等。
  • 中间件监控。对Redis、Kafka、数据库等中间件的监控。
点我阅读更多...

201 微服务-服务调用

客户端调用服务端接口,需要解决以下几个问题。

服务端与客户端如何建立连接

由于服务端与客户端分布在不同的机器上,所以需要建立网络连接。

一般会采用基于TCP协议的HTTP或者socket进行通信。

常用的连接方式则有REST和RPC两种。

点我阅读更多...

502 Maven-外部依赖

依赖传递

通过在POM中配置<dependencies>标签,可以指定项目依赖的第三方包或者插件,示例:

<dependencies>
  <dependency>
    <groupId>group-a</groupId>
    <artifactId>artifact-a</artifactId>
    <version>1.0</version>
  </dependency>
</dependencies>  

Maven通过依赖传递,可以自动发现项目所有的依赖,A依赖B,B依赖C,C依赖D。在A的POM文件中不需要显示配置对C和D的依赖,Maven能够通过B和C POM文件中的依赖配置自动发现这些依赖关系。

点我阅读更多...