spring cloud微服務搭建(一)

martin fowler大神提出微服務的概念後,各類微服務的技術滿天飛,如今用的比較多的是spring cloud和阿里的dubbo,因爲dubbohtml

在16年10月份就中止更新了,不過好像前些天又更新了下,這裏咱們講解spring cloud技術前端

dubbo源碼地址:https://github.com/alibaba/dubbojava

spring cloud源碼地址:https://github.com/spring-cloudmysql

組件有:註冊中心+普通服務+斷路器+服務網關+分佈式追蹤+性能監控+消息總線+配置中心git

運用的java框架:Intellij idea + spring boot + mybatis + mysql + mavengithub

官網文檔:http://spring.io/docs/reference,主要用到了裏面的spring boot,spring cloud netflix,spring cloud sleuth,spring cloud streamspring

spring cloud系列文章目標:記錄本身的技術方便本身和其它人學習,不過推薦入門後多去看官方文檔,技術最好也有淘汰的一天,鍛鍊本身的學習能力纔是最重要的sql

1、註冊中心tomcat

首先新建一個spring boot項目,訪問https://start.spring.io/,命名目錄名稱和項目名稱安全

點擊下載,解壓壓縮包,打開項目,將修改maven的本地倉庫地址,maven的遠程倉庫地址修改爲阿里的maven地址,參考地址http://www.cnblogs.com/waterlufei/p/6498526.html

不改也能夠主要是慢,有時候慢挺能鍛鍊人的耐心的哈

訪問spring cloud的官網:http://projects.spring.io/spring-cloud/,將最新的版本控制copy下來

在項目的pom.xml中添加

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

<dependencyManagement>
    <dependencies>
       <dependency>
           <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Dalston.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
而後在src/main/resources/application.properties中加入配置文件

spring.application.name=eureka-server
server.port=1111
#設置hostname
eureka.instance.hostname=localhost

#防止註冊中心自我註冊
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
#註冊地址
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:1111/eureka/

而後在src/main/java/com/waterlufei/EurekaServerApplication中加入@EnableEurekaServer,做爲註冊中心的服務端啓動

而後咱們啓動項目,訪問localhost:1111

這樣咱們的註冊中心就啓動起來了

2、服務的註冊與發現

跟剛剛同樣咱們建立一個名叫Service-A的spring boot項目,在pom.xml加入:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>Dalston.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

在配置文件src/main/resources/application.properties中加入

spring.application.name=service-A
server.port=2222
eureka.instance.hostname=localhost
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:1111/eureka/

在主函數src/main/java/com/waterlufei/EurekaServerApplication

上面註解@EnableDiscoveryClient,做爲註冊中心的客戶端啓動並能發現其它服務,本身也能被別的服務發現

tomcat已經集成到dependency中了,啓動項目,訪問localhost:1111,發現服務A已經註冊到註冊中心了

若是有紅色警告不用管它,這是提示eureka開啓了安全模式,保護註冊的實例,就是說若是服務A掛了,仍是會在註冊中心顯示的

eureka默認開啓安全模式能夠關閉,在註冊中心服務EurekaServer的配置文件中加入

eureka.server.enable-self-preservation=false關閉安全模式

如今咱們訪問localhost:2222

發現沒有主頁面,咱們在resources文件夾下新建public文件夾,而後在public下面新建index.html,寫入內容,重啓服務A

訪問localhost:2222

因此咱們開發的時候,前端的頁面能夠放在resources/public文件夾下面

 開源中國源碼地址:https://git.oschina.net/wustxiabin/spring-cloud

 github源碼地址:    https://github.com/waterlufei/spring-cloud

相關文章
相關標籤/搜索