前言:很早就發現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