互联网架构模板:开发层和服务层技术

第88篇

极客时间《从0开始学架构》课程笔记。

标准技术框架

互联网的标准技术架构

开发层技术

1、开发框架

  • 指定一个大的技术方向,然后使用统一的开发框架,如Java 相关的开发框架 SSH、SpringMVC、Play,Ruby 的 Ruby on Rails,PHP 的 ThinkPHP,Python 的 Django 等
  • 使用统一的开发框架能够大大提升组织和团队的开发效率
  • 框架选择原则:优选成熟的框架,避免盲目追逐新技术

2、Web服务器

  • web服务器挑选流行的开源服务器,有能力的可以结合自己的业务做二次开发
  • 选择服务器主要和开发语言相关,Java 的有 Tomcat、JBoss、Resin 等,PHP/Python 的用 Nginx,或者直接选择Apache
  • 性能问题不是最高优先级的,等到业务发展到web服务器撑不住了再考虑

3、容器

  • 容器以Docker为代表,主要解决虚拟机启动慢、占资源多的问题
  • Docker容器技术虽然没有跨平台,但启动快,几乎不占用资源
  • Docker 可以随时启动和停止的特点,可以支持自动化运维、智能化运维
  • 设计模式将会偏向“微服务”方向发展,因为启动一个新的容器实例代价非常低

服务层技术

服务层的主要目标就是为了降低系统间相互关联的复杂度。

1、配置中心

  • 配置中心就是集中管理各个系统的配置
  • 配置中心的好处1:集中配置多个系统,操作效率高
  • 好处2:配置在一个集中的地方,检查方便,协作效率高
  • 好处3:配置中心可以实现程序化规则检查,避免常见错误
  • 好处4:配置中心等于备份了系统的配置,可以实现快速搭建环境和恢复业务
配置中心设计

2、服务中心

  • 服务中心就是为了解决跨系统依赖的“配置”和“调度”问题
  • 服务中心的实现一般有两种方式:服务名字系统和服务总线系统
  • 服务名字系统(Service Name System),是为了将 Service 名称解析为“host + port + 接口名称”,发起请求的还是请求方
  • 服务总线系统(Service Bus System),由总线系统完成调用,服务请求方都不需要直接和服务提供方交互了
服务总线系统与服务名字系统对比

3、消息队列

  • 消息队列就是为了实现跨系统异步通知的中间件系统,既可以“一对一”通知,也可以“一对多”广播
  • 引入消息队列系统后,系统整体结构会变得简洁和清晰
  • 消息生产和消息的消费解耦,实现更简单
  • 增加新的信息消费者,消息生产者完全不需要改动,扩展更方便
  • 消息队列系统可以做高可用、高性能,避免各子系统重复做
  • 业务子系统专注于业务即可,实现更加简单
  • 消息队列比较成熟的开源实现方案:RocketMQ、Kafka、ActiveMQ 等

你可能感兴趣的:(互联网架构模板:开发层和服务层技术)