互联网架构模板:开发层和服务层技术
2019-05-27 本文已影响0人
短暂瞬间
第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 等