All Projects → roytan883 → moleculer-go

roytan883 / moleculer-go

Licence: MIT License
moleculer go implementation

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to moleculer-go

moleculer-java
Java implementation of the Moleculer microservices framework
Stars: ✭ 39 (+129.41%)
Mutual labels:  nats, moleculer
Go Micro Boilerplate
The boilerplate of the GoLang application with a clear microservices architecture.
Stars: ✭ 147 (+764.71%)
Mutual labels:  nats, rpc
Hemera
🔬 Writing reliable & fault-tolerant microservices in Node.js https://hemerajs.github.io/hemera/
Stars: ✭ 773 (+4447.06%)
Mutual labels:  nats, rpc
bifrost
Communications library & daemon for Go. Modular transports, links, pubsub (NATS), quic-over-websocket, libp2p, RPC, encryption, testing, and more.
Stars: ✭ 63 (+270.59%)
Mutual labels:  nats, rpc
netty-learning
bio, nio到 netty各种使用案例, 包含基础使用案例,各api使用方法,零拷贝,websocket,群聊,私聊,编码,解码,自定义协议,protobuf等使用案例,rpc服务器,客户端等等学习
Stars: ✭ 49 (+188.24%)
Mutual labels:  rpc
nats-connector-spark
A Spark Publish/Subscribe NATS Connector
Stars: ✭ 24 (+41.18%)
Mutual labels:  nats
ethereum-client
ethereum rpc client
Stars: ✭ 34 (+100%)
Mutual labels:  rpc
cli
Command Line Interface for @imqueue
Stars: ✭ 20 (+17.65%)
Mutual labels:  rpc
simple-rpc-plus
使用netty和zookeeper技术实现的远程调用框架
Stars: ✭ 16 (-5.88%)
Mutual labels:  rpc
thinkgo
Public libraries and components for glang development.
Stars: ✭ 14 (-17.65%)
Mutual labels:  rpc
seeed-ambd-firmware
This RTL8720DN firmware export a RPC server interface through hardware SPI/UART port to MCU.
Stars: ✭ 20 (+17.65%)
Mutual labels:  rpc
filecoin-client
Golang的轻量级filecoin客户端,支持离线签名,基本满足钱包交易所充值提现逻辑
Stars: ✭ 50 (+194.12%)
Mutual labels:  rpc
ethjs-rpc
A super simple module for making low level queries to the Ethereum RPC layer.
Stars: ✭ 14 (-17.65%)
Mutual labels:  rpc
go-hpc
HTTP RPC codec for Gorilla RPC v2.
Stars: ✭ 29 (+70.59%)
Mutual labels:  rpc
Pudding
Pudding 是一款迷你级分布式服务框架
Stars: ✭ 24 (+41.18%)
Mutual labels:  rpc
litchi
这是一款分布式的java游戏服务器框架
Stars: ✭ 97 (+470.59%)
Mutual labels:  rpc
simpleRPC
Simple RPC implementation for Arduino.
Stars: ✭ 28 (+64.71%)
Mutual labels:  rpc
scala-json-rpc
Let your servers and clients communicate over function calls! JSON-RPC 2.0 library for Scala and Scala.js
Stars: ✭ 38 (+123.53%)
Mutual labels:  rpc
rpc
自己编写的rpc调用框架,配置简单,使用更简单,如果您感觉有用请点赞,纯个人手写
Stars: ✭ 29 (+70.59%)
Mutual labels:  rpc
database
Advanced Database Access Service for Moleculer microservices framework
Stars: ✭ 22 (+29.41%)
Mutual labels:  moleculer

moleculer-go

This is Moleculer implementation for go (>=1.9.x). Currently only support NATS as transporter.

moleculer(nodejs) info :

Moleculer is a fast, modern and powerful microservices framework for NodeJS (>= v6.x).

Moleculer: https://github.com/ice-services/moleculer

Website: https://moleculer.services

Documentation: https://moleculer.services/docs

How to use, refer to example :

run:

go run .\examples\moleculer-go-demo.go -s nats://192.168.1.69:12008

output:

INFO[09-28 14:37:19.580887] broker.Call demoService.actionA start
INFO[09-28 14:37:19.581886] run actionA, req.Params = map[arg2:123 arg1:aaa]
INFO[09-28 14:37:19.582886] broker.Call demoService.actionA end, res: map[res1:AAA res2:123]
INFO[09-28 14:37:19.582886] broker.Call demoService.actionA end, err: <nil>
INFO[09-28 14:37:19.582886] broker.Call demoService.actionB start
INFO[09-28 14:37:19.582886] run actionB, req.Params = map[arg1:bbb arg2:456]
INFO[09-28 14:37:19.583886] broker.Call demoService.actionB end, res: map[res2:456 res1:BBB]
INFO[09-28 14:37:19.583886] broker.Call demoService.actionB end, err: <nil>
INFO[09-28 14:37:19.583886] broker.Emit user.create start
INFO[09-28 14:37:19.583886] broker.Emit user.create end, err: <nil>
INFO[09-28 14:37:19.583886] broker.Broadcast user.delete start
INFO[09-28 14:37:19.583886] broker.Broadcast user.delete end, err: <nil>
INFO[09-28 14:37:19.583886] run onEventUserCreate, req.Data = map[user:userA status:create]
INFO[09-28 14:37:19.583886] run onEventUserDelete, req.Data = map[user:userB status:delete]

Performance

ENV: one receiver process and one sender process on WIN10(i7-2600), NATS Server on Ubuntu Server 14.04(i7-4790K)

broker.Call demoService.bench goroutineNum[1] callCount[10000] use[6.0100862s] req/s[1663] minLatency[999.9µs] maxLatency[5.0021ms]
broker.Call demoService.bench goroutineNum[5] callCount[50000] use[5.9192496s] req/s[8447] minLatency[999.9µs] maxLatency[10.0015ms]
broker.Call demoService.bench goroutineNum[10] callCount[100000] use[6.3480519s] req/s[15752] minLatency[1.0002ms] maxLatency[12.0096ms]
broker.Call demoService.bench goroutineNum[50] callCount[500000] use[10.052548s] req/s[49738] minLatency[1ms] maxLatency[25.0064ms]

Status :

Not support REQB and EVENTB right now. Please KEEP disableBalancer: false in nodejs moleculer

v0.5.0

Now use Moleculer Protocol Version = "3"

  • MOL.DISCOVER
  • MOL.DISCOVER.nodeID
  • MOL.INFO
  • MOL.INFO.nodeID
  • MOL.HEARTBEAT
  • MOL.REQ.nodeID
  • MOL.REQB.action
  • MOL.RES.nodeID
  • MOL.EVENT.nodeID
  • MOL.EVENTB.event
  • MOL.PING
  • MOL.PING.nodeID
  • MOL.PONG.nodeID
  • MOL.DISCONNECT
  • internal $node.xxx
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].