All Projects → 2YSP → ship-gate

2YSP / ship-gate

Licence: other
Use SpringWebFlux,Netty and Nacos to build high performance,responsive API gateways.

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to ship-gate

piccolo
Netty4长连接网关
Stars: ✭ 19 (-86.23%)
Mutual labels:  netty, gateway, nacos
Lamp Cloud
lamp-cloud 基于Jdk11 + SpringCloud + SpringBoot的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
Stars: ✭ 4,125 (+2889.13%)
Mutual labels:  gateway, nacos
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+2357.97%)
Mutual labels:  netty, gateway
hanzo-cloud
SpringCloud(Hoxton.SR5) + SpringBoot(2.3.0.RELEASE)的 SaaS型微服务后端脚手架。授权中心开发完毕。文档地址:https://www.kancloud.cn/hanzo/hanzo
Stars: ✭ 15 (-89.13%)
Mutual labels:  gateway, nacos
Spring Boot Demo
spring boot demo 是一个Spring Boot、Spring Cloud的项目示例,根据市场主流的后端技术,共集成了30+个demo,未来将持续更新。该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户密码设计)、actuator(服务监控)、cloud-config(配置中心)、cloud-gateway(服务网关)等模块
Stars: ✭ 323 (+134.06%)
Mutual labels:  netty, gateway
xmutca-rpc
Xmutca-rpc是一个基于netty开发的分布式服务框架,提供稳定高性能的RPC远程服务调用功能,支持注册中心,服务治理,负载均衡等特性,开箱即用。
Stars: ✭ 18 (-86.96%)
Mutual labels:  netty, nacos
gateway
API proxy gateway base on netty and okHttp.
Stars: ✭ 21 (-84.78%)
Mutual labels:  netty, gateway
Java Note
后端研发——笔记
Stars: ✭ 54 (-60.87%)
Mutual labels:  netty, nacos
cheshuo
🎃A lightweight game server framework. Based on Springboot and Netty. Using ProtoBuf as communication between client and server.
Stars: ✭ 23 (-83.33%)
Mutual labels:  netty
scriptbox
Script box is a full VAS application for demonstrate kannel.js, shorty and smpp usage
Stars: ✭ 19 (-86.23%)
Mutual labels:  gateway
lightify-binary-protocol
Documentation of the OSRAM Lightify Binary Protocol for communication between Lightify Gateway and applications
Stars: ✭ 26 (-81.16%)
Mutual labels:  gateway
couper
Couper is a lightweight API gateway designed to support developers in building and operating API-driven Web projects
Stars: ✭ 60 (-56.52%)
Mutual labels:  gateway
dog
Full repository for the Dog gateway
Stars: ✭ 21 (-84.78%)
Mutual labels:  gateway
php-ipg-ir
IPG (Internet Payment Gateway) manager for Iran Banking System
Stars: ✭ 26 (-81.16%)
Mutual labels:  gateway
Azure-AKS-ApplicationGateway-WAF
No description or website provided.
Stars: ✭ 16 (-88.41%)
Mutual labels:  gateway
laravel-multi-payment
Laravel online gateway payment package with multi driver support
Stars: ✭ 22 (-84.06%)
Mutual labels:  gateway
Spring5-ReactJS
ReactJS, Spring5, Spring Reactive, Spring Security, Spring Rest, Hibernate
Stars: ✭ 28 (-79.71%)
Mutual labels:  springwebflux
ToughProxy
ToughProxy 是一个代理服务器, 目标是提供一个综合性的代理服务软件,支持 socks5,socks4, http, https代理协议, 针对 Socks5 提供完善的认证机制,以及提供流量控制策略,访问控制策略。
Stars: ✭ 44 (-68.12%)
Mutual labels:  netty
nacos-nginx-template
通过Nacos让Nginx拥有服务发现能力
Stars: ✭ 76 (-44.93%)
Mutual labels:  nacos
srpc
一款轻量 高性能的RPC框架,基于netty,整合spring,支持注册中心,多种序列化,负载均衡等
Stars: ✭ 78 (-43.48%)
Mutual labels:  netty

High Performance,Responsive API Gateways

Description

This is a high Performance,Responsive API Gateway based on SpringWebFlux and Netty.

Now it only supports HTTP protocol forward,it is for learning communication only.

Project structure

  • Ship-admin: gateway management console,supports config route rule etc.
  • Ship-server: gateway server,core function module.
  • Ship-ship-client-spring-boot-starter: gateway client,automatically register service information to the registration center.
  • Ship-gate-example: an example of how to use the gateway
  • Ship-common: some common codes,like pojo,constants,tools etc.

Features

  • Support custom your own plugins
  • Support A/B test and grayscale publishing
  • Support multiple load balancing strategies
  • Support HTTP protocol,include GET,PUT,POST etc.
  • Support version-based dynamic routing rules
  • Support interface authentication (not implemented)

Usage

1.nacos

You can refer to this(https://nacos.io/en-us/docs/quick-start.html) to install the nacos.

2.create db

Use the ship.sql in the project to create database first.

3. ship-admin

You need change some config in application.yml.

config item Must Desc
server.port Yes Ship-admin start port
ship.server-web-socket-url Yes websocket url of ship-server
spring.datasource.* Yes Db config
nacos.discovery.server-addr Yes address of nacos

then start the ship-admin,the login address of management backend is http://localhost:9001/user/login/page ,default account admin/1234.

4. backend project

New a springboot project and dependency in pom.xml.

 <dependency>
            <groupId>cn.sp</groupId>
            <artifactId>ship-client-spring-boot-starter</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

Next change some config in application.yml.

config item Must Desc
nacos.discovery.server-addr Yes address of nacos
ship.http.app-name Yes your app name of backend project,eg: order
ship.http.version Yes version of app,eg:gray_1.0
ship.http.context-path Yes base path of this project,must be same with app-name,eg: /order
ship.http.port Yes the port of project,same with sever.port
ship.http.admin-url Yes the url of ship-admin,eg: 127.0.0.1:9001

If you think it's trouble,you can just use the ship-gate-example for test.

5. ship-server

It's most important part of ship-gate,similarly you must config some option.

config item Must Option value Desc
nacos.discovery.server-addr Yes address of nacos
ship.gate.load-balance No random,round,weightRound load balance algorithm,default round
ship.gate.time-out-millis No time out millis of gateway,default 3000ms
ship.gate.cache-refresh-interval No default 10s
ship.gate.web-socket-port Yes websocket port to listen

Finally start ship-sever and just have fun!

Architecture diagram

网关设计

Prerequisite

  • JDK1.8+

  • MySQL

  • Nacos 1.3+

    If you want to know more details or have any question,please click here or contact me in time.

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].