OOX - 使用 JavaScript 构建分布式实时系统
前言 在微服务系统选型时, 架构师们往往采用 Java 技术栈, 例如 Spring* / Dubbo 等. 使用这类框架的好处就是, 你无需质疑它的可靠性, 因为大家都在使用它, 稳定. 它也很方便, 队列监控, 配置注册, 一应俱全, 你无需头疼有什么是它实现不了的. 但它在使用时, 总有那么一点不爽, 繁杂的配置文件, xml / yaml / json / properties. 使用过度的抽象和设计, Java 开发者们总是喜欢设计新的模式解决不存在的问题. 这导致了很多问题, 项目越大维护越困难, 代码冗余量巨大, 越来越像一个缝合怪, 新成员接触项目时,需要大堆的项目文档和长期的跟随学习才能对代码进行更改. // 以上仅为个人观点, 不喜勿喷 所以 Java 开发者头发少, 不是没有原因的 doge ;) 拯救头发, 刻不容缓! 现在, 我们推出 Java 开发者非常熟悉的 JavaScript服务开发框架 - OOX OOX 安装 npm install -g oox 开发您的第一个 API 服务 // gateway.js exports.signIn = async ( username, password ) => { // 您的登录逻辑 return 用户登录凭证 } exports.signUp = async ( username, password, authcode ) => { // 您的注册逻辑 return 是否注册成功 } 仅需一行代码, 即刻启动您的 API 服务 oox gateway.js port=9000 访问也非常简单, 无论什么语言框架, 采用最朴素的调用方式 POST / HTTP/1.1 Host: 127.0.0.1:9000 Content-Type: application/json { "action": "signUp", "params": [ "username", "password", "010543" ] } 分布式能力 OOX 使用 P2P 服务发现模式, 所以需要至少 1 个节点, 作为创世节点, 提供连接初始化. 后续节点仅需连接任意边缘节点,即可加入 OOX 分布式网络, 获取无穷分布式能力. 详见文档 - 示例 迁移成本 您的所有 Node 模块, 所有 JS 文件, 都可以 0 更改作为微服务节点, 几乎0成本迁移. 何种操作在何时何地进行执行, 完全由您掌控,真正实现分布式运算, 节省运维成本. 唯二需要注意的是, 原先的本地同步调用在变成微服务架构后, 需要更改为异步调用, 系统默认的负载均衡算法为 随机节点选择, 如需更符合业务模式的算法, 需自行更改. 可靠性 目前已有 3 个项目完全使用 OOX 开发, 行业涉及新零售, 在线支付, 物联网, 金融等, 其中某金融平台使用 OOX 作为核心服务层, 日均服务数千用户, 处理亿级资金交易. 使用 OOX 完全满足项目发展需求, 且极低冗余, 极易扩展, 上手简单, 开发调试容易. 发展计划 每周发布 OOX 源码解构 每月一个真实项目示例, 微服务开发治理, 非常简单 官方服务实现, 主要是Mointor, 分布式链路联调 OOX Package, 像 npm 一样发布 / 获取服务 陆续强大功能追加完善