前言:很早就发现cloud微服务,一直没有尝试弄,今天花了点时间跑了一下demo,cloud远程调用是基于http rest风格调用的方式。感受没有dubbo那么方便,远程调用像调用本地方法。由于我也是参考网上的博客写的,只是了解的很浅的没有深刻。若是之后在工做中接触的话再花时间学习学习。java
SpringCloud的注册中心不须要借助第三方,这点仍是很方便,不须要多维护 好比 zookeeper 相似的软件。spring
1.1 先导入依赖app
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
1.2 若是maven更新不下来须要导入maven
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
1.3 配置 properties文件分布式
server.port=8080 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
依赖eureka-server以后 程序会默认把本身当成客户端来注册本身,须要设置为falseide
1.4 在主程序开启微服务
@EnableEurekaServer
1.5 访问 localhost:8080查询注册中心服务学习
2.1 导入相同的依赖测试
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
2.2 配置 properties文件fetch
spring.application.name=service server.port=8081 eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/
2.3 建立提供服务
/** * Created by http://my.oschina.net/wangnian on 2016/8/15. */ @RestController public class ProviderController { private final Logger logger = LoggerFactory.getLogger(ProviderController.class); @RequestMapping(value = "/test", method = RequestMethod.GET) public String test(@RequestParam String str) { logger.info("进入了方法 str:{}", str); return str; } }
2.4 在服务主程序上加入开启
@EnableDiscoveryClient
2.5 启动以后查下注册中心界面 localhost:8080
3.1 导入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency>
3.2 配置 properties文件
spring.application.name=test server.port=8083 eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/
3.3 建立FeignClient
@FeignClient("service") public interface ConsumerClient { @RequestMapping(method = RequestMethod.GET, value = "/test") String test(@RequestParam("str") String str); }
3.4 建立控制器
@RestController public class ConsumerController { @Autowired ConsumerClient computeClient; @RequestMapping(value = "/test", method = RequestMethod.GET) public String test(String str) { return computeClient.test(str); } }
3.5 在主程序开启
@EnableDiscoveryClient @EnableFeignClients
3.6 启动程序并测试
访问消费者服务的控制器
提供服务的日志
这是一个很简单的DEMO,简单的了解一下提供者 消费者 注册中心的三者的依赖关系。对于springCloud更多的分布式....等之后再去弄。由于服务与服务以前都是http调用,在参数和请求的方式和请求的地址都高耦合。我仍是推荐使用dubbo。
博客地址:http://my.oschina.net/wangnian/blog