### 徐长龙分布式服务管理的关键知识点 #### 一、背景与个人介绍 - **演讲者**: 徐长龙,微博广告平台部门成员,@thinkpc。 - **身份**: PHP微服务Dora-RPC的作者,具有四年PHP基础架构经验。 #### 二、互联网现状分析 1. **快速迭代**: 为了适应市场需求和技术发展,项目需频繁进行功能更新和产品形态调整。 2. **竞争激烈**: 在争夺市场份额或吸引投资的过程中,公司往往需要采取高强度的工作模式,例如加班文化。 3. **用户规模**: 用户数量庞大且增长迅速,经常出现短时间内流量翻倍的情况。 4. **技术更迭**: 技术领域变化迅速,新的工具和技术层出不穷。 5. **业务需求**: 实际操作中,企业更注重快速实施和快速改版的能力,而不是追逐最新的技术趋势。 #### 三、框架结构的混乱问题 - **多个项目混杂**: MVC模型被多个项目共用,导致Model和Module的功能界限模糊。 - **目录和命名不规范**: 文件和目录命名混乱,缺乏统一的标准。 - **代码质量低下**: 存在大量功能集中在一个文件中的情况,不利于维护和扩展。 - **旧版系统的局限性**: 使用的老版本商业开源系统可能无法满足当前的需求,尤其是对于高并发和大规模流量的支持。 - **URL重写规则复杂**: 过多的URL重写规则使得通过URL很难定位到具体的代码入口。 #### 四、服务化与解耦合的重要性 - **服务化的初次尝试**: - 解耦合: 减少项目间的依赖,确保跨项目的API调用。 - 接口标准化: 明确每个接口的功能,确保单一职责原则。 - 提升开发效率: 将业务逻辑下沉,前端专注于界面搭建。 - 文档化: 通过文档化接口提高复用性和可维护性。 - 跨部门协作: 科学化管理跨部门调用,提高合作效率。 - 内部服务: 服务仅对内部网络开放,确保安全性。 - **服务化拆分案例**: - 前端: 只保留ViewController和公共开发库。 - 后端: 将Model和DAO封装成HTTP接口。 - 接口设计: 接口设计遵循RESTful风格,返回JSON格式数据。 - 通用服务: 计划提供独立的通用服务,如计数、排行、位置服务等。 #### 五、框架结构调整 - **新架构设计**: - 前端: 主要负责视图展示和用户交互。 - 后端: 负责业务逻辑处理和服务提供。 - 异常处理: 完善的异常处理机制确保系统稳定性。 #### 六、部署结构调整 - **数据中心部署**: - Nginx作为反向代理服务器,分发请求至不同的应用服务器。 - PHP应用服务器处理业务逻辑并返回响应。 - Memcached和Redis作为缓存存储。 - MySQL数据库采用主从复制,提高读写分离能力。 #### 七、总结 - **核心思想**: 通过对现有系统进行重构和服务化改造,实现了系统的解耦合和模块化,提高了开发效率和系统稳定性。 - **实践成果**: 通过具体的技术手段和架构调整,成功解决了原有系统中存在的问题,并为未来的扩展打下了坚实的基础。 - **展望未来**: 随着技术的发展和服务化思路的进一步推广,可以预见该方法将在更多领域得到应用和发展。
- 粉丝: 2
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助