主要提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。 可以跟spring boot框架一起使用,会让你开发微服务架构的云服务非常好的方便。
4.0.0
com.lwq
springcloud-eureka
0.0.1-SNAPSHOT
jar
springcloud-eureka
http://maven.apache.org
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-starter-eureka-server
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
eureka
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
server.port=8888
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}
4.0.0
com.lwq
springcloud-provider
0.0.1-SNAPSHOT
jar
springcloud-provider
http://maven.apache.org
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
provider
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
server.port=8002
spring.application.name=service-provider
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Value("${server.port}")
private String serverPort;
/**
* 访问路径:http://localhost:8002/getFuture
* @return
*/
@RequestMapping("/getFuture")
public List getFuture() {
List list = new ArrayList<>();
list.add("不积跬步,无以至千里;");
list.add("不积小流,无以成江海。");
list.add("出自端口号:"+serverPort);
return list;
}
}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@EnableEurekaClient
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}
4.0.0
com.lwq
springcloud-consumer-resttemplate
0.0.1-SNAPSHOT
jar
springcloud-consumer-resttemplate
http://maven.apache.org
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
resttemplate
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
server.port=8001
spring.application.name=service-consumer
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class SpringConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
public class ConsumerService {
@Autowired
private RestTemplate restTemplate;
public List getProviderFuture() {
return restTemplate.getForObject("http://service-provider/getFuture", List.class);
}
}
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.lwq.springcloud_consumer_resttemplate.service.ConsumerService;
@RestController
public class CosumerController {
@Autowired
private ConsumerService consumerService;
/**
* 项目访问路径:http://localhost:8001/getProviderFuture
* @return
*/
@RequestMapping("/getProviderFuture")
public List getProviderFuture(){
return consumerService.getProviderFuture();
}
}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@EnableEurekaClient
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}
4.0.0
com.lwq
springcloud-consumer-feign
0.0.1-SNAPSHOT
jar
springcloud-consumer-feign
http://maven.apache.org
MS:SpringCloud Feign 消费者
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-starter-feign
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
feign
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
server.port=8003
spring.application.name=service-consumer02
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient("service-provider")
public interface ConsumerService {
@RequestMapping("/getFuture")
public List getProviderFuture();
}
import com.lwq.springcloud_consumer_feign.service.ConsumerService;
@RestController
public class ConsumerController {
@Autowired
private ConsumerService consumerService;
/**
* http://localhost:8003/getProviderFuture
* @return
*/
@RequestMapping("/getProviderFuture")
public List getProviderFuture(){
return consumerService.getProviderFuture();
}
}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}
最后值得一提的是SpringCloud相较于Dubbo来说更为全面,拥有服务治理,配置服务,网关路由,异常处理等,比Dubbo更全面,尤其是在结合SpringBoot框架时只需添加依赖,使用方便,简化配置文件。在集群中各功能组件协调工作时使用SpringCloud架构项目能承受更高并发量,具有更强大的容错高可用性。
项目代码下载地址链接: https://pan.baidu.com/s/1Z_mx6vpyOwtbmZisM8BB_Q 提取码: 79xs