188 lines
7.3 KiB
HTML
188 lines
7.3 KiB
HTML
---
|
|
# The name of your project
|
|
title: Spring Cloud
|
|
|
|
badges:
|
|
|
|
|
|
# Customize your project's badges. Delete any entries that do not apply.
|
|
custom:
|
|
- name: Source (GitHub)
|
|
url: https://github.com/spring-cloud
|
|
icon: github
|
|
|
|
- name: StackOverflow
|
|
url: http://stackoverflow.com/questions/tagged/spring-cloud
|
|
icon: stackoverflow
|
|
|
|
|
|
---
|
|
<!DOCTYPE HTML>
|
|
<html lang="en-US">
|
|
|
|
|
|
{% capture billboard_description %}
|
|
|
|
Spring Cloud provides tools for developers to quickly build some of
|
|
the common patterns in distributed systems (e.g. configuration
|
|
management, service discovery, circuit breakers, intelligent routing,
|
|
micro-proxy, control bus, one-time tokens, global locks, leadership
|
|
election, distributed sessions, cluster state). Coordination of
|
|
distributed systems leads to boiler plate patterns, and using Spring
|
|
Cloud developers can quickly stand up services and applications that
|
|
implement those patterns. They will work well in any distributed
|
|
environment, including the developer's own laptop, bare metal data
|
|
centres, and managed platforms such as Cloud Foundry.
|
|
|
|
{% endcapture %}
|
|
|
|
{% capture main_content %}
|
|
|
|
Spring Cloud builds on Spring Boot by providing a bunch of libraries
|
|
that enhance the behaviour of an application when added to the
|
|
classpath. You can take advantage of the basic default behaviour to
|
|
get started really quickly, and then when you need to, you can
|
|
configure or extend to create a custom solution.
|
|
|
|
<span id="quick-start"></span>
|
|
## Quick Start
|
|
|
|
You can create a Config Server with a single annotation:
|
|
|
|
```groovy
|
|
@EnableConfigServer
|
|
class ConfigServer {
|
|
}
|
|
```
|
|
|
|
This app runs from the Spring Boot CLI (once the `spring-cloud-cli`
|
|
extensions are installed), e.g.
|
|
|
|
```
|
|
$ spring install org.springframework.cloud:spring-cloud-cli:1.0.0.BUILD-SNAPSHOT
|
|
$ spring run configserver.groovy -- --server.port=8888
|
|
```
|
|
|
|
Any other local application that includes `spring-cloud-config` as a
|
|
dependency will be able to contact this server and pre-initialize the
|
|
Spring `Environment` with external configuration managed by the
|
|
server. The Spring Boot CLI (with the Cloud extensions) will do this
|
|
automatically for all applications.
|
|
|
|
```groovy
|
|
@Controller
|
|
class ConfigClient {
|
|
}
|
|
```
|
|
|
|
Run this app with the Spring Boot CLI and then visit
|
|
http://localhost:8080/env (the `Environment` endpoint). Notice the
|
|
property sources that come from the config server at the top of the
|
|
results.
|
|
|
|
(N.B. does not work if you can't connect to
|
|
[github.com](https://github.com) because that's where the default
|
|
configuration repository lives.)
|
|
|
|
## Features
|
|
|
|
Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.
|
|
|
|
* Distributed/versioned configuration
|
|
* Service registration and discovery
|
|
* Routing
|
|
* Service-to-service calls
|
|
* Load balancing
|
|
* Circuit Breakers
|
|
* Global locks
|
|
* Leadership election and cluster state
|
|
* Distributed messaging
|
|
|
|
<a name="main-projects"></a>
|
|
|
|
## Main Projects
|
|
|
|
<!-- Spring Cloud Config -->
|
|
{% capture project_description %}
|
|
Centralized external configuration management backed by a git repository. The configuration resources map directly to Spring `Environment` but could be used by non-Spring applications if desired.
|
|
{% endcapture %}
|
|
|
|
{% include project_block.md site_url="http://cloud.spring.io/spring-cloud-config" repo_url="http://github.com/spring-cloud/spring-cloud-config" project_title="Spring Cloud Config" project_description=project_description %}
|
|
|
|
<!-- Spring Cloud Netflix -->
|
|
{% capture project_description %}
|
|
Integration with various Netflix OSS components (Eureka, Hystrix, Zuul, Archaius, etc.).
|
|
{% endcapture %}
|
|
|
|
{% include project_block.md site_url="http://cloud.spring.io/spring-cloud-netflix" repo_url="http://github.com/spring-cloud/spring-cloud-netflix" project_title="Spring Cloud Netflix" project_description=project_description %}
|
|
|
|
<!-- Spring Cloud Bus -->
|
|
{% capture project_description %}
|
|
An event bus for linking services and service instances together with distributed messaging. Useful for propagating state changes across a cluster (e.g. config change events).
|
|
{% endcapture %}
|
|
|
|
{% include project_block.md site_url="http://cloud.spring.io/spring-cloud-bus" repo_url="http://github.com/spring-cloud/spring-cloud-bus" project_title="Spring Cloud Bus" project_description=project_description %}
|
|
|
|
<!-- Spring Cloud Cloudfoundry -->
|
|
{% capture project_description %}
|
|
Integrates your application with Pivotal Cloudfoundry. Makes it easy to implement SSO and OAuth2 protected resources, and also to create a Cloudfoundry servive broker.
|
|
{% endcapture %}
|
|
|
|
{% include project_block.md site_url="/spring-cloud" repo_url="http://github.com/spring-cloud/spring-cloud-cloudfoundry" project_title="Spring Cloud for Cloud Foundry" project_description=project_description %}
|
|
|
|
<!-- Spring Cloud AWS -->
|
|
{% capture project_description %}
|
|
Easy integration with hosted Amazon Web Services. It offers a convenient way to interact with AWS provided services using well-known Spring idioms and APIs, such as the messaging or caching API. Developers can build their application around the hosted services without having to care about infrastructure or maintenance.
|
|
{% endcapture %}
|
|
|
|
{% capture site_url %}
|
|
{{ site.projects_site_url }}/spring-cloud-aws
|
|
{% endcapture %}
|
|
|
|
{% include project_block.md site_url=site_url repo_url="http://github.com/spring-cloud/spring-cloud-aws" project_title="Spring Cloud for Amazon Web Services" project_description=project_description %}
|
|
|
|
<!-- Spring Cloud Connectors -->
|
|
{% capture project_description %}
|
|
Makes it easy for PaaS applications in a variety of platforms to connect to backend services like
|
|
databases and message brokers (the project formerly known as "Spring Cloud").
|
|
{% endcapture %}
|
|
|
|
{% capture site_url %}
|
|
{{ site.projects_site_url }}/spring-cloud-connectors
|
|
{% endcapture %}
|
|
|
|
{% include project_block.md site_url=site_url repo_url="http://github.com/spring-cloud/spring-cloud-connectors" project_title="Spring Cloud Connectors" project_description=project_description %}
|
|
|
|
<!-- Spring Cloud Starters -->
|
|
{% capture project_description %}
|
|
Spring Boot-style starter projects to ease dependency management for consumers of Spring Cloud.
|
|
{% endcapture %}
|
|
|
|
{% include project_block.md site_url="/spring-cloud" repo_url="http://github.com/spring-cloud/spring-cloud-starters" project_title="Spring Cloud Starters" project_description=project_description %}
|
|
|
|
<!-- Spring Cloud CLI -->
|
|
{% capture project_description %}
|
|
Spring Boot CLI plugin for creating Spring Cloud component applications quickly in Groovy
|
|
{% endcapture %}
|
|
|
|
{% include project_block.md site_url="/spring-cloud" repo_url="http://github.com/spring-cloud/spring-cloud-cli" project_title="Spring Cloud CLI" project_description=project_description %}
|
|
|
|
{% endcapture %}
|
|
|
|
{% capture related_resources %}
|
|
|
|
### Sample Projects
|
|
|
|
* [Config Server](https://github.com/spring-cloud-samples/configserver)
|
|
* [Service Registry](https://github.com/spring-cloud-samples/eureka)
|
|
* [Circuit Breaker Dashboard](https://github.com/spring-cloud-samples/hystrix-dashboard)
|
|
* [Business Application](https://github.com/spring-cloud-samples/customers-stores) (Customers and Stores)
|
|
* [OAuth2 AuthorizationServer](https://github.com/spring-cloud-samples/authserver)
|
|
* [OAuth2 SSO Client](https://github.com/spring-cloud-samples/sso)
|
|
* [Integration Test Samples](https://github.com/spring-cloud-samples/tests)
|
|
|
|
{% endcapture %}
|
|
|
|
{% include project_page.html %}
|
|
</html>
|