SpringBoot之SpringCloud體驗

前言:很早就發現cloud微服務,一直沒有嘗試弄,今天花了點時間跑了一下demo,cloud遠程調用是基於http rest風格調用的方式。感受沒有dubbo那麼方便,遠程調用像調用本地方法。由於我也是參考網上的博客寫的,只是瞭解的很淺的沒有深刻。若是之後在工做中接觸的話再花時間學習學習。java

 

1.註冊中心

 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.建立提供者服務

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.建立消費者服務

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

相關文章
相關標籤/搜索