文章插图
微服务框架 MSA
微服务是细粒度业务行为的重用 , 需要与业务能力及业务阶段相匹配 。微服务框架是实现微服务及分布式架构的关键组件 , 我们的微服务框架是基于开源 ServiceStack 来实现 。
它简单易用、性能好 , 文档自动生成、方便调试测试 , 调试工具 Swagger UI、自动化接口测试工具 SoapUI 。微服务的接口开放采用我们自主研发的微服务网关 , 通过治理后台简单的配置即可 。网关以 NIO、IOCP 的方式实现高并发 , 主要功能有鉴权、超时、限流、熔断、监控等 , 下图是 Swagger UI 调试工具 。
文章插图
搜索利器 Solr
分库分表后的关联查询 , 大段文本的模糊查询 , 这些要如何实现呢?显然传统的数据库没有很好的解决办法 , 这时可以借助专业的检索工具 。
全文检索工具 Solr 不仅简单易用性能好 , 而且支持海量数据高并发 , 只需实现系统两边数据的准实时或定时同步即可 。下图是 Solr 的工作原理 。
文章插图
更多工具
- 分布式协调器 ZooKeeper
- ZK 工作原理、配置中心、Master 选举、Demo , 一篇足以 。
- ORM 框架
- DApper.NET 语法简单、运行速度快 , 与数据库无关 , SQL 自主编写可控 , 是一款适合于互联网系统的数据库访问工具 。
- 对象映射工具 EmitMapper 和 AutoMapper
- EmitMapper 性能较高 , AutoMapper 易用性较好 。
- IoC 框架
- 控制反转 IoC 轻量级框架 Autofac 。
- DLL 包管理
- 公司内部 DLL 包管理工具 NuGet , 可解决 DLL 集中存储、更新、引用、依赖问题 。
- 发布工具 Jenkins
- 一键编译、发布、自动化测试、一键回滚 , 高效便捷故障低 。
【中小型研发团队对于架构的选择与思考】此篇以真实项目为背景 , 思想方法追求简单有效 , 主要内容包括 企业总体架构 、 单个项目架构设计 、 统一应用分层、 调试工具 WinDbg 。
说到这里顺便给大家推荐一个架构方面的交流学习群:650385180 , 里面会分享一些资深架构师整理的文档资料和录制的视频录像:有Spring , MyBatis , Netty源码分析 , 高并发、高性能、分布式、微服务架构的原理 , JVM性能优化这些成为架构师必备的知识体系 。还能领取免费的学习资源 , 相信对于已经工作和遇到技术瓶颈的码友 , 在这个群里会有你需要的内容 。
企业总体架构
当我们有了几百个上千个应用后 , 不仅仅需要单个项目的架构设计 , 还需要企业总体架构做顶层思考和指导 。大公司与小商贩的商业思维是一样的 , 但大公司比较难看到商业全貌和本质 。而小公司又缺乏客户流量和中间件的应用场景 , 中型公司则兼而有之 , 所以企业总体架构也相对好落地 。
企业总体架构需要在 技术 、 业务 、 管理 之间游刃有余地切换 , 它包括业务架构、应用架构、数据架构和技术架构 。附档是一份脱敏感信息后的真实案例 , 有参考 TOGAF 标准 。但内容以解决公司系统的架构问题为导向、以时间为主线 , 包括企业商务模型、架构现状、架构规划和架构实施 。
单个项目架构设计
单个项目的架构设计如同施工图纸 , 能直接指导工程代码的实施 。上一环是功能需求 , 下一环是代码实施 , 这是架构设计的价值所在 。从功能需求到用例 , 到用例活动图 , 到领域图、架构分层 , 到核心代码 , 它们之间环环相扣 。
做不好领域图可能源自没有做好用例活动图 , 因为用例活动图是领域图的上一环 。关注职责、边界、应用关系、存储、部署是架构设计的核心 , 下图是具体案例参考 。
推荐阅读
- 央视主持顾倩、歌手李韵菲携网红团队助力襄阳农产品电商博览会
- 讲透全流程+落地细节 如何从0-1搭建抖音电商团队?
- Riot.js 框架深入解析
- 这不是科幻!超级电子皮肤成功研发,可进行自我修复
- 淘宝店铺需要人员 组建淘宝团队要几人
- 微软|来自X86的反击!微软研发Android和Windows深度整合
- 梦幻西游手游研发问答第一弹 梦幻西游角色转换
- 微信研发新功能,或许有你最期待的
- 最深潜航器 海翼潜航器
- 微信外挂功能强大但可能犯法!这个研发团伙就被上海警方抓了