# mocha2 **Repository Path**: open-byte/mocha2 ## Basic Information - **Project Name**: mocha2 - **Description**: Mocha2是在Mocha1.x的基础上升级而来,采用RAFT协议,是一个开源的优秀注册中心,支持服务发现、服务治理,服务分发、集群部署。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-26 - **Last Updated**: 2025-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mocha Registry ![项目架构图](docs/images/mocha.png "项目架构图") #### 介绍 Mocha2(摩卡)是一个开源的优秀注册中心,支持服务发现、服务治理,服务分发、集群部署。 #### 软件架构 ![项目架构图](docs/images/arch.png "项目架构图") #### 与 mocha 1.x 的区别 mocha2.x在服务端引入自研的RAFT底层框架,以替代原有的P2P(由http实现)协议,提高服务端集群之间的通讯效率。 - [mocha 1.x 一个优秀的开源注册中心](https://gitee.com/open-byte/mocha) - [airy-raft 一个基于Java实现的轻量级RAFT底层框架](https://gitee.com/open-byte/airy-raft) #### 安装教程 1. 从gitee或github上拉取源码到本地 2. 提供一个mysql环境版本>8,执行docs/mysql下的gk.sql的建表脚本 3. 从deployment文件中获取mocha-server.jar,启动服务端。 4. 编译打包mocha-client,并安装到本地maven仓库或远程私有仓库。 5. 客户端按需引入client sdk, #### 服务端单机模式 修改mocha-server的application.properties配置 ~~~properties ## cluster mocha.server.cluster.enabled=false ~~~ #### 服务端集群模式 修改mocha-server的application.properties配置 ~~~properties ## cluster mocha.server.raft.ip=127.0.0.1 mocha.server.raft.single-mode=false mocha.server.raft.peers=127.0.0.1:19091;127.0.0.1:19092;127.0.0.1:19093 ~~~ - ip:ip地址 - single-mode:是否为单机模式,单机模式适用于测试和开发 - peers:集群地址,以;分割 #### 客户端配置 Maven依赖 - 因为当前只发布到JitPack仓库所以,还需额外在pom.xml文件中引入仓库地址 ~~~xml jitpack.io https://www.jitpack.io ~~~ - 再引入maven坐标 ~~~xml org.openbyte mocha-client 2.0 ~~~ 基础配置: ~~~yaml # 应用服务 WEB 访问端口 server: port: 8081 spring: application: name: order cloud: mocha: discovery: app-id: ${spring.application.name} servers: - 'http://192.168.126.1:8765/mocha@accessKey=mocha&accessSecret=mocha' - 'http://192.168.126.1:8766/mocha@accessKey=mocha&accessSecret=mocha' common-metadata: region: fuzhou zone: jifang1 ~~~ #### 使用事项 1. 如果某个Mocha Server节点配置了访问令牌和秘钥,则客户端也需要同样配置令牌和秘钥 - 服务端配置示例: ~~~properties ## client mocha.server.client.enable-auth=true mocha.server.client.access-key=mocha mocha.server.client.access-secret=mocha ~~~ - 客户端地址配置示例: ~~~ http://192.168.126.1:8765/mocha@accessKey=mocha&accessSecret=mocha ~~~ #### 最佳实践 - 集群模式下,建议配置三个以上节点 #### 功能界面 ![功能界面](docs/images/func01.png "功能界面") ![功能界面](docs/images/func02.png "功能界面") ![功能界面](docs/images/func03.png "功能界面") #### 参与贡献 1. 非常欢迎您来参与共建该项目,如果有什么建议和意见也欢迎提出。 2. 您可以 Fork 本仓库、新建 Feat_xxx 分支、提交代码、新建 Pull Request来参与本项目