Git Product home page Git Product logo

longkui's Introduction

logo

LongKui

LongKui, A high performance RPC framework based on Netty.

project java-version license

龙葵:千年不灭,唯情而已。古姜国公主,被封印在魔剑千年,只为了等待与王兄重逢。

背景

RPC:像调用本地方法一样调用远程服务。

介绍

LongKui 是一个分布式服务框架,提供高性能的 RPC 远程过程调用功能。拥有分布式、高性能、服务治理、注册中心、负载均衡及微内核架构等诸多特性。

特性

  • 基于 Netty 框架构建网络通讯层。高性能。
  • 多序列化方式:支持 Hessian2JsonXMLProtostuffKryo 等方式。
  • 多压缩方式:支持 SnappyDEFLATEGzipbzipLZ4LZO 等方式。
  • 多动态代理方式:支持 JDKCglibJavassistByte Buddy 等方式。
  • 注册中心:提供基于 Zookeeper 的服务注册与发现。
  • 负载均衡/软负载:提供多种负载均衡算法,包括随机/加权随机、轮询/加权轮询、一致性哈希等。
  • 多调用方式:支持同步 Sync、异步 Future、回调 Callback 和单向调用 Oneway 四种方式。
  • 微内核架构:增强 JDK 原生 SPI 机制(参考了 Dubbo 框架),使用 SPI 加载插件,可以轻松替换每个组件的实现,包括序列化器、压缩器、动态代理、注册中心、负载均衡算法等。用户只需实现相关接口,然后在 /META-INF/extensions 目录下配置实现类的类路径即可替换框架的默认实现。
  • 插件机制:通过插件实现高可扩展性,在 RPC 请求生命周期各个阶段注入插件,实现自定义的业务逻辑。
  • 泛化调用:不依赖服务提供方的 API 接口,用 Map 封装参数直接调用。
  • ......

快速开始

拉取代码

git clone https://github.com/llnancy/longkui.git

// todo

longkui's People

Contributors

llnancy avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

moexiong

longkui's Issues

[Feature] Remove EndBug/add-and-commit@v4 in license.yml

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

[Feature] Replacing maven with gradle to manage jar package dependencies

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

[Feature] Add checkstyle plugin

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

[Feature] Upgrade dependency version

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

[Bug] Need to click the restart or close button twice

Re-run the com.sunchaser.shushan.rpc.demo.server.DemoServerApplication#main method in IntelliJ IDEA, it seems that some threads cannot be closed at one time, and you need to click the restart or close button twice

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.