{"id":15159278,"url":"https://github.com/songjianhit/jiangateway","last_synced_at":"2025-04-02T08:31:03.742Z","repository":{"id":172348709,"uuid":"649176862","full_name":"SongJianHIT/JianGateWay","owner":"SongJianHIT","description":"JianGateWay，即见见的API网关😄","archived":false,"fork":false,"pushed_at":"2023-06-16T08:22:26.000Z","size":1235,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T16:51:25.397Z","etag":null,"topics":["http","java","nacos","netty"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SongJianHIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-04T03:08:35.000Z","updated_at":"2023-09-27T09:39:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"55464a77-12af-495c-a235-57eaaf8c3bb0","html_url":"https://github.com/SongJianHIT/JianGateWay","commit_stats":null,"previous_names":["songjianhit/jiangateway"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SongJianHIT%2FJianGateWay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SongJianHIT%2FJianGateWay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SongJianHIT%2FJianGateWay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SongJianHIT%2FJianGateWay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SongJianHIT","download_url":"https://codeload.github.com/SongJianHIT/JianGateWay/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246781983,"owners_count":20832949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["http","java","nacos","netty"],"created_at":"2024-09-26T21:02:24.362Z","updated_at":"2025-04-02T08:31:02.553Z","avatar_url":"https://github.com/SongJianHIT.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JianGateWay 简API网关\n\n## 明确需求\n\nJianGateWay 实现的是一个 API 网关，处于微服务架构中的入口位置，如下图：\n\n![image-20230615161200532](./assets/image-20230615161200532.png)\n\n对标 SpringCloud Gateway ，本项目开发 JianGateWay  网关功能包括：\n\n- **路由转发**\n- **负载均衡**\n- **熔断限流**\n- **校验鉴权**\n- **路径重写**\n- **日志监控**\n- **服务灰度发布**\n- .........（待扩展）\n\n## 技术选型\n\n- **原生 Java** ：作为中间件，尽可能薄\n- **Netty** ：高性能、易用的网络编程框架\n- **Nacos**：配置中心、注册中心\n- **Disruptor**：单线程能支撑每秒 600万 请求的高性能无锁缓存队列\n- **Redis + Lua**：内存数据库，请求计数统计\n- **Caffine**：高性能缓存，提升并发能力\n- **Json Web Tokens** ：跨域身份验证工具，实现用户校验鉴权\n- **Promethus + Grafana** ：系统监控及可视化\n- .......\n\n## 整体框架\n\n![未命名文件 (1)](./assets/%E6%9C%AA%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6%20(1).png)\n\n1. Common：公共模块，提供基本的工具类，定义常量、异常信息等\n2. Client：客户端模块，提供快速对接不同微服务技术栈的框架\n3. Core：核心模块，JianGateWay 的核心实现\n4. Register Center：注册中心模块，负载服务的发现、注册\n5. Config Center：配置中心模块，负载管理网关相关配置\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsongjianhit%2Fjiangateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsongjianhit%2Fjiangateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsongjianhit%2Fjiangateway/lists"}