Spring cloud特性
- 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
服务注册与发现代码示例:
项目名称 端口号
spring-cloud-client 3333
spring-cloud-server 1111
spring-cloud-service 2222
eureka服务器(eclipse运行/spring-cloud-server/src/main/java/com/mmhlive/sc/Server.java)
服务注册后(eclipse运行/spring-cloud-service/src/main/java/com/mmhlive/sc/ServiceRegister.java)
代码相关:
环境
jdk7
eclipse jee Mars.1 Release (4.5.1)
gradle 2.2.1
win7 64位
代码下载地址:
http://pan.baidu.com/s/1c1AufNq
运行步骤:
1、初始化代码
/spring-cloud-server/scripts/gradle-eclipse.bat
/spring-cloud-service/scripts/gradle-eclipse.bat
/spring-cloud-client/scripts/gradle-eclipse.bat
导入3个项目到eclipse
执行
/spring-cloud-server/src/main/java/com/mmhlive/sc/Server.java
/spring-cloud-service/src/main/java/com/mmhlive/sc/ServiceRegister.java
/spring-cloud-client/src/test/java/ClientTest.java
代码简单介绍:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = WebApp.class)
@WebAppConfiguration
public class ClientTest {
@Autowired
RemoteService remoteService;//fegin方式调用服务,通过eureka服务器
@Autowired
private RestTemplate restTemplate;//直接调用服务
@Test
public void test() {
Map<String, Object> params = Maps.newHashMap();
params.put("a", 1);
params.put("b", 2);
String xxx = restTemplate.getForObject("http://localhost:2222/add?a=1&b=3", String.class);
System.out.println(xxx);
System.out.println(remoteService.add(3, 8));
}
}