# 介绍

Moonquakes是一个微服务解决方案。由3部分组成。一个golang组件、一个maven依赖和一个php框架。

每部分都包含一个服务端和客户端,消息体是JSON-RPC协议,服务端可以用http协议或tcp协议进行通信。

通过客户端请求服务端的方式。

请求的消息体例:

{
  "id": "1604283212",
  "jsonrpc": "2.0",
  "method": "IntRpc/Add",
  "params": {
    "a": 1,
    "b": 6
  }
}

响应的消息体例:

{
  "id": "1604283212",
  "jsonrpc": "2.0",
  "result": 7
}

更多关于JSON-RPC协议的见: JSON-RPC (opens new window)

# 为什么用JSON-RPC

  • 简单并且轻量级(但功能强大)
  • 易于调试
  • 网络开消小

# 获取demo

demo包含3个分支: main分支、consul分支和nacos分支。main分支展示了如何用节点ip在3种语言的项目间进行直接通信。consul分支和nacos分支展示了如何用注册发现在3种语言的项目间进行通信。

# 直接使用ip

  • 使用ip
# 克隆代码
git clone [email protected]:sunquakes/moonquakes.git

cd moonquakes

# 切换到main分支
git switch main

# 编译镜像
docker-compose build

# 启动容器
docker-compose up

# 服务和发现

  • 使用注册中心consul
# 克隆代码
git clone [email protected]:sunquakes/moonquakes.git

cd moonquakes

# 切换到consul分支
git switch consul

# 编译镜像
docker-compose build

# 启动容器
docker-compose up
  • 使用注册中心nacos
# 克隆代码
git clone [email protected]:sunquakes/moonquakes.git

cd moonquakes

# 切换到nacos分支
git switch nacos

# 编译镜像
docker-compose build

# 启动容器
docker-compose up