Skip to content

An easy-to-use, high-performance RPC(Remote Procedure Call) framework with builtin service registration & discovery, traffic management, fault tolerance, monitor tools and best practices for building enterprise-level microservices.

Notifications You must be signed in to change notification settings

pm6422/luix-rpc

Repository files navigation

LUIX RPC

LUI️X[ˈluːɪks] RPC is an easy-to-use, high-performance RPC(Remote Procedure Call) framework with builtin service registration & discovery, traffic management, fault tolerance, monitor tools and best practices for building enterprise-level microservices.

Official website

Requirements

Prior to building this project, it is necessary to install the JDK on your machine. The JDK can be installed using SDK Man.

sdk install java 21.0.1-amzn
Note
Java compatability: Java 21 above

Tech Stack

  • Java 11 ~ 21

  • Spring Boot 3.2.0

Using Docker

Install docker to simplify development, run:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

To start a mongodb database in a docker container, run:

docker-compose -f docker/mongodb.yml up -d

To start local Consul registry, run:

docker-compose -f docker/consul.yml up -d

To start local Prometheus and Grafana services, run:

docker-compose -f docker/monitoring.yml up -d

Then navigate to http:https://localhost:3000 in your browser to access Grafana with username: admin and password: admin

Using NodeJS

Install NodeJS to simplify local development, run:

apt install nodejs npm -y

Run multiple applications locally in two steps

1. Build application docker images

  • Run the command under the project root directory

npm run docker:build
  • Or run the below command if using ARM CPU

npm run docker:build:arm64

2. Run all the middleware and applications

  • Run authorization server, resource server, client, and initialize database in one command

npm run all:up

Application URLs

Username Password Authorities

louis

louis

user,admin,developer

Tests

To launch your application’s tests, run:

./mvnw verify

Code quality

Sonar is used to analyse code quality. You can start a local Sonar server (accessible on http:https://localhost:9001) with:

docker-compose -f docker/sonar.yml up -d

Note: we have turned off authentication in [docker/sonar.yml](docker/sonar.yml) for out of the box experience while trying out SonarQube, for real use cases turn it back on.

You can run a Sonar analysis with using the sonar-scanner or by using the maven plugin.

Then, run a Sonar analysis:

./mvnw -Pprod clean verify sonar:sonar

If you need to re-run the Sonar phase, please be sure to specify at least the initialize phase since Sonar properties are loaded from the sonar-project.properties file.

./mvnw initialize sonar:sonar

For more information, refer to the Code quality page.

About

An easy-to-use, high-performance RPC(Remote Procedure Call) framework with builtin service registration & discovery, traffic management, fault tolerance, monitor tools and best practices for building enterprise-level microservices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published