{"id":19885238,"url":"https://github.com/dinstone/clutch","last_synced_at":"2026-05-13T04:38:31.276Z","repository":{"id":56208352,"uuid":"105126405","full_name":"dinstone/clutch","owner":"dinstone","description":"Clutch is a service registry and discovery component, that provides an infrastructure to publish and discover various resources, such as service proxies, HTTP endpoints, data sources.","archived":false,"fork":false,"pushed_at":"2022-09-09T08:45:10.000Z","size":138,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-11T18:47:07.681Z","etag":null,"topics":["service-discovery"],"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/dinstone.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}},"created_at":"2017-09-28T09:02:47.000Z","updated_at":"2022-07-08T09:26:51.000Z","dependencies_parsed_at":"2022-08-15T14:40:51.378Z","dependency_job_id":null,"html_url":"https://github.com/dinstone/clutch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinstone%2Fclutch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinstone%2Fclutch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinstone%2Fclutch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinstone%2Fclutch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dinstone","download_url":"https://codeload.github.com/dinstone/clutch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241313179,"owners_count":19942417,"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":["service-discovery"],"created_at":"2024-11-12T17:33:42.201Z","updated_at":"2026-05-13T04:38:31.246Z","avatar_url":"https://github.com/dinstone.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clutch\nClutch is a service registry and discovery component, that provides an infrastructure to publish and discover various resources, such as service proxies, HTTP endpoints, data sources.\n\n## Introduction\nA service provider can:\n* publish a service record\n* un-publish a published record\n* update the status of a published service (down, out of service…​)\n\nA service consumer can:\n* lookup services\n* bind to a selected service and use it\n* release the service once the consumer is done with it\n* listen for arrival, departure and modification of services.\n\n## Quick Start\n### add dependency:\n```xml\n\u003cdependency\u003e\n\t\u003cgroupId\u003ecom.dinstone.clutch\u003c/groupId\u003e\n\t\u003cartifactId\u003eclutch-zookeeper\u003c/artifactId\u003e\n\t\u003cversion\u003e1.1.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n### service registry\n```java\n    ZookeeperRegistryConfig config = new ZookeeperRegistryConfig().setZookeeperNodes(\"localhost:2181\");\n    ZookeeperServiceRegistry registry = new ZookeeperServiceRegistry(config);\n    \n    ServiceDescription description = new ServiceDescription();\n    String serviceName = \"TestService\";\n    description.setName(serviceName);\n    description.setId(\"service-provider-\" + System.currentTimeMillis());\n    description.setHost(\"localhost\");\n    description.setPort(80);\n    registry.register(description);\n```\n### service discovery\n```java\n    ZookeeperRegistryConfig config = new ZookeeperRegistryConfig().setZookeeperNodes(\"localhost:2181\");\n    ZookeeperServiceDiscovery discovery = new ZookeeperServiceDiscovery(config);\n    \n    ServiceDescription description = new ServiceDescription();\n    String serviceName = \"TestService\";\n    description.setName(serviceName);\n    description.setId(\"service-consumer-1\");\n    description.setHost(\"localhost\");\n    description.setPort(0);\n\n\tdiscovery.listen(description);\n\tList\u003cServiceDescription\u003e plist = discovery.discovery(serviceName, null);\n    for (ServiceDescription psd : plist) {\n    \t\tSystem.out.println(psd);\n    }\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdinstone%2Fclutch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdinstone%2Fclutch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdinstone%2Fclutch/lists"}