{"id":15014297,"url":"https://github.com/fengjiachun/jupiter","last_synced_at":"2026-10-19T12:43:00.953Z","repository":{"id":46782757,"uuid":"44820217","full_name":"fengjiachun/Jupiter","owner":"fengjiachun","description":"Jupiter是一款性能非常不错的, 轻量级的分布式服务框架","archived":false,"fork":false,"pushed_at":"2023-06-20T16:35:47.000Z","size":9839,"stargazers_count":1504,"open_issues_count":16,"forks_count":553,"subscribers_count":160,"default_branch":"master","last_synced_at":"2026-10-08T05:54:19.182Z","etag":null,"topics":["cluster","distributed-systems","hessian","high-performance","java","jupiter","kryo","microservice","netty","netty4","nio","protostuff","rpc","rpc-framework","service-consumer","service-discovery","service-provider","service-registry","socket","spring"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fengjiachun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-10-23T15:04:14.000Z","updated_at":"2026-10-07T10:17:10.000Z","dependencies_parsed_at":"2022-08-22T03:00:46.762Z","dependency_job_id":"caf17b5f-fd46-4d59-baf7-345f1a744f1e","html_url":"https://github.com/fengjiachun/Jupiter","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/fengjiachun/Jupiter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengjiachun%2FJupiter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengjiachun%2FJupiter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengjiachun%2FJupiter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengjiachun%2FJupiter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fengjiachun","download_url":"https://codeload.github.com/fengjiachun/Jupiter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengjiachun%2FJupiter/sbom","scorecard":{"id":396773,"data":{"date":"2025-08-11","repo":{"name":"github.com/fengjiachun/Jupiter","commit":"6bffde84535bc32cb676a99e3b8d7c3e14894747"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 2/25 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"28 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-5mg8-w23w-74h3","Warn: Project is vulnerable to: GHSA-7g45-4rm6-3mm3","Warn: Project is vulnerable to: GHSA-mvr2-9pj6-7w5j","Warn: Project is vulnerable to: GHSA-389x-839f-4rhx","Warn: Project is vulnerable to: GHSA-xq3w-v528-46rv","Warn: Project is vulnerable to: GHSA-6mjq-h674-j845","Warn: Project is vulnerable to: GHSA-7286-pgfv-vxvh","Warn: Project is vulnerable to: GHSA-6pqx-v9g4-5hc8","Warn: Project is vulnerable to: GHSA-36p3-wjmg-h94x","Warn: Project is vulnerable to: GHSA-hh26-6xwr-ggv7","Warn: Project is vulnerable to: GHSA-4gc7-5j7h-4qph","Warn: Project is vulnerable to: GHSA-4wp7-92pw-q264","Warn: Project is vulnerable to: GHSA-g5mm-vmx4-3rg7","Warn: Project is vulnerable to: GHSA-4487-x383-qpph","Warn: Project is vulnerable to: GHSA-8crv-49fr-2h6j","Warn: Project is vulnerable to: GHSA-f26x-pr96-vw86","Warn: Project is vulnerable to: GHSA-ffvq-7w96-97p7","Warn: Project is vulnerable to: GHSA-g8hw-794c-4j9g","Warn: Project is vulnerable to: GHSA-rcpf-vj53-7h2m","Warn: Project is vulnerable to: GHSA-v596-fwhq-8x48","Warn: Project is vulnerable to: GHSA-558x-2xjg-6232","Warn: Project is vulnerable to: GHSA-564r-hj7v-mcr5","Warn: Project is vulnerable to: GHSA-9cmq-m9j5-mvww","Warn: Project is vulnerable to: GHSA-wxqc-pxw9-g2p8","Warn: Project is vulnerable to: GHSA-vmq6-5m68-f53m","Warn: Project is vulnerable to: GHSA-668q-qrv7-99fm","Warn: Project is vulnerable to: GHSA-6v67-2wr5-gvf4","Warn: Project is vulnerable to: GHSA-pr98-23f8-jwxv"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T19:12:29.289Z","repository_id":46782757,"created_at":"2025-08-18T19:12:29.289Z","updated_at":"2025-08-18T19:12:29.289Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38356471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cluster","distributed-systems","hessian","high-performance","java","jupiter","kryo","microservice","netty","netty4","nio","protostuff","rpc","rpc-framework","service-consumer","service-discovery","service-provider","service-registry","socket","spring"],"created_at":"2024-09-24T19:45:26.127Z","updated_at":"2026-10-19T12:43:00.469Z","avatar_url":"https://github.com/fengjiachun.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](/LICENSE)\n[![Maven Central](https://img.shields.io/maven-central/v/org.jupiter-rpc/jupiter.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.jupiter-rpc%22%20AND%20jupiter)\n[![Build Status](https://travis-ci.org/fengjiachun/Jupiter.svg?branch=master)](https://travis-ci.org/fengjiachun/Jupiter)\n[![Code Quality: Java](https://img.shields.io/lgtm/grade/java/g/fengjiachun/Jupiter.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/fengjiachun/Jupiter/context:java)\n[![Total Alerts](https://img.shields.io/lgtm/alerts/g/fengjiachun/Jupiter.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/fengjiachun/Jupiter/alerts)\n\n#### Jupiter:\n- Jupiter 是一款性能非常不错的, 轻量级的分布式服务框架\n\n#### Jupiter Architecture:\n\n           ═ ═ ═▷ init         ─ ─ ─ ▷ async       ──────▶ sync\n    ----------------------------------------------------------------------------------------\n\n                                ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─\n                                           ┌ ─ ─ ─ ┐ │\n               ─ ─ ─ ─ ─ ─ ─ ─ ─│ Registry  Monitor ───────────────────────────┐\n              │                            └ ─ ─ ─ ┘ │                         │\n                                └ ─ ─△─ ─ ─ ─ ─△─ ─ ─                          ▼\n              │                                                           ┌ ─ ─ ─ ─\n            Notify                   ║         ║                            Telnet │\n              │         ═ ═ ═ ═ ═ ═ ═           ═ ═ ═ ═ ═ ═ ═ ═ ═         └ ─ ─ ─ ─\n                       ║                                         ║             ▲\n              │    Subscribe                                  Register         │\n                       ║                                         ║             │\n              │  ┌ ─ ─ ─ ─ ─                          ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─    │\n                            │─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ▷           ┌ ─ ─ ─ ┐ │   │\n              └ ▷│ Consumer           Invoke          │ Provider  Monitor ─────┘\n                            │────────────────────────▶           └ ─ ─ ─ ┘ │\n                 └ ─ ─ ─ ─ ─                          └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─\n\n    ---------------------------------------------------------------------------------------\n\n\n#### [RELEASE-NOTES](/docs/release-notes.md)\n\n#### 性能:\n- 小数据包请求(不带业务)在四核刀片服务器上可达到17w+的tps, 详情见 [Benchmark](https://github.com/fengjiachun/Jupiter/wiki/Benchmark)\n- [参考: 多个 RPC 框架的 Benchmark 见这里](https://github.com/hank-whu/rpc-benchmark)\n\n#### 文档:\n- [High performance RPC with netty](/docs/static_files/high_performance_rpc_with_netty.md)\n- [High performance RPC with netty.pdf](/docs/static_files/high_performance_rpc_with_netty.pdf)\n- [Wiki](https://github.com/fengjiachun/Jupiter/wiki)\n- [其他文档](https://github.com/fengjiachun/doc/tree/master/jupiter)\n- [发展路线](https://github.com/fengjiachun/Jupiter/wiki/RoadMap)\n\n#### 一次 RPC 调用:\n\n\u003cimg src=\"docs/static_files/jupiter-rpc.png\" width=\"1600\"/\u003e\n\n\u003cp align=\"right\"\u003e感谢 @远墨 提供的图\u003c/p\u003e\n\n#### 快速开始:\n\n##### 工程依赖:\n+ JDK1.8 或更高版本\n+ 依赖管理工具: Maven3.x 版本\n\n##### [最新版本OSS下载](https://oss.sonatype.org/#nexus-search;quick~org.jupiter-rpc)\n##### [最新版本Maven中心仓库下载](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.jupiter-rpc%22%20AND%20jupiter)\n##### Maven依赖:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.jupiter-rpc\u003c/groupId\u003e\n    \u003cartifactId\u003ejupiter-all\u003c/artifactId\u003e\n    \u003cversion\u003e${jupiter.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n##### 简单调用示例:\n###### 1. 创建服务接口:\n\n```java\n@ServiceProvider(group = \"test\", name = \"serviceTest\")\npublic interface ServiceTest {\n    String sayHelloString();\n}\n\n@ServiceProvider:\n    - 建议每个服务接口通过此注解来指定服务信息, 如不希望业务代码对jupiter依赖也可以不使用此注解而手动去设置服务信息\n        + group: 服务组别(选填, 默认组别为'Jupiter')\n        + name: 服务名称(选填, 默认名称为接口全限定名称)\n```\n\n###### 2. 创建服务实现:\n\n```java\n@ServiceProviderImpl(version = \"1.0.0\")\npublic class ServiceTestImpl implements ServiceTest {\n\n    @Override\n    public String sayHelloString() {\n        return \"Hello jupiter\";\n    }\n}\n\n@ServiceProviderImpl:\n    - 建议每个服务实现通过此注解来指定服务版本信息, 如不希望业务代码对jupiter依赖也可以不使用此注解而手动去设置版本信息\n        + version: 服务版本号(选填, 默认版本号为'1.0.0')\n```\n\n###### 3. 启动注册中心:\n\n###### - 选择1: 使用 jupiter 默认的注册中心:\n\n```java\npublic class HelloJupiterRegistryServer {\n\n    public static void main(String[] args) {\n        // 注册中心\n        RegistryServer registryServer = RegistryServer.Default.createRegistryServer(20001, 1);\n        try {\n            registryServer.startRegistryServer();\n        } catch (InterruptedException e) {\n            e.printStackTrace();\n        }\n    }\n}\n```\n\n###### - 选择2: 使用 [zookeeper](https://zookeeper.apache.org/doc/trunk/zookeeperStarted.html) 作为注册中心:\n\n```xml\n默认注册中心只建议在测试环境使用, 线上建议使用 zookeeper 实现\n\n// 设置使用 zookeeper 作为注册中心\nJServer server = new DefaultServer(RegistryService.RegistryType.ZOOKEEPER)\nJClient client = new DefaultClient(RegistryService.RegistryType.ZOOKEEPER)\n\n在 server 和 client 中配置 jupiter-registry-zookeeper 依赖(jupiter-all 包含 jupiter-registry-zookeeper)\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.jupiter-rpc\u003c/groupId\u003e\n    \u003cartifactId\u003ejupiter-registry-zookeeper\u003c/artifactId\u003e\n    \u003cversion\u003e${jupiter.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n###### 4. 启动服务提供(Server):\n\n```java\npublic class HelloJupiterServer {\n\n    public static void main(String[] args) throws Exception {\n        JServer server = new DefaultServer().withAcceptor(new JNettyTcpAcceptor(18090));\n        // provider\n        ServiceTestImpl service = new ServiceTestImpl();\n        // 本地注册\n        ServiceWrapper provider = server.serviceRegistry()\n                .provider(service)\n                .register();\n        // 连接注册中心\n        server.connectToRegistryServer(\"127.0.0.1:20001\");\n        // 向注册中心发布服务\n        server.publish(provider);\n        // 启动server\n        server.start();\n    }\n}\n```\n\n###### 5. 启动服务消费者(Client)\n\n```java\npublic class HelloJupiterClient {\n\n    public static void main(String[] args) {\n        JClient client = new DefaultClient().withConnector(new JNettyTcpConnector());\n        // 连接RegistryServer\n        client.connectToRegistryServer(\"127.0.0.1:20001\");\n        // 自动管理可用连接\n        JConnector.ConnectionWatcher watcher = client.watchConnections(ServiceTest.class);\n        // 等待连接可用\n        if (!watcher.waitForAvailable(3000)) {\n            throw new ConnectFailedException();\n        }\n\n        ServiceTest service = ProxyFactory.factory(ServiceTest.class)\n                .version(\"1.0.0\")\n                .client(client)\n                .newProxyInstance();\n\n        service.sayHelloString();\n    }\n}\n```\n\n[Server/Client 代码示例](/jupiter-example/src/main/java/org/jupiter/example/round)\n\n###### 新特性\n\nv1.3 新增 `InvokeType.AUTO`, 当你的接口返回值是一个 `CompletableFuture` 或者它的子类将自动适配为异步调用, 否则为同步调用\n[具体 demo 请参考这里](/jupiter-example/src/main/java/org/jupiter/example/round/AutoJupiterClient.java)\n\n##### 结合Spring使用示例:\n###### 1. [Server端配置](/jupiter-example/src/main/resources/spring-provider.xml):\n\n```xml\n\u003cjupiter:server id=\"jupiterServer\" registryType=\"default\"\u003e \u003c!-- registryType=\"zookeeper\" 代表使用zk作为注册中心 --\u003e\n    \u003cjupiter:property registryServerAddresses=\"127.0.0.1:20001\" /\u003e\n\u003c/jupiter:server\u003e\n\n\u003c!-- provider --\u003e\n\u003cbean id=\"serviceTest\" class=\"org.jupiter.example.ServiceTestImpl\" /\u003e\n\n\u003cjupiter:provider id=\"serviceTestProvider\" server=\"jupiterServer\" providerImpl=\"serviceTest\"\u003e\n    \u003cjupiter:property weight=\"100\"/\u003e\n\u003c/jupiter:provider\u003e\n```\n\n###### 2. [Client 端配置](/jupiter-example/src/main/resources/spring-consumer.xml):\n\n```xml\n\u003cjupiter:client id=\"jupiterClient\" registryType=\"default\"\u003e \u003c!-- registryType=\"zookeeper\" 代表使用zk作为注册中心 --\u003e\n    \u003cjupiter:property registryServerAddresses=\"127.0.0.1:20001\" /\u003e\n\u003c/jupiter:client\u003e\n\n\u003c!-- consumer --\u003e\n\u003cjupiter:consumer id=\"serviceTest\" client=\"jupiterClient\" interfaceClass=\"org.jupiter.example.ServiceTest\"\u003e\n    \u003cjupiter:property version=\"1.0.0.daily\" /\u003e\n    \u003cjupiter:property serializerType=\"proto_stuff\" /\u003e\n    \u003cjupiter:property loadBalancerType=\"round_robin\" /\u003e\n    \u003cjupiter:property timeoutMillis=\"3000\" /\u003e\n    \u003cjupiter:property clusterStrategy=\"fail_over\" /\u003e\n    \u003cjupiter:property failoverRetries=\"2\" /\u003e\n    \u003cjupiter:methodSpecials\u003e\n        \u003c!-- 方法的单独配置 --\u003e\n        \u003cjupiter:methodSpecial methodName=\"sayHello\" timeoutMillis=\"5000\" clusterStrategy=\"fail_fast\" /\u003e\n    \u003c/jupiter:methodSpecials\u003e\n\u003c/jupiter:consumer\u003e\n```\n\n[SpringServer/SpringClient 代码示例](/jupiter-example/src/main/java/org/jupiter/example/spring)\n\n##### [更多示例代码](/jupiter-example/src/main/java/org/jupiter/example)\n\n\n#### 其他\n- qq交流群: 397633380\n- 邮件交流: jiachun_fjc@163.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffengjiachun%2Fjupiter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffengjiachun%2Fjupiter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffengjiachun%2Fjupiter/lists"}