spring cloud微服務搭建(一)


martin fowler大神提出微服務的概念后,各種微服務的技術滿天飛,現在用的比較多的是spring cloud和阿里的dubbo,由於dubbo

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

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

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

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

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

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

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

一、注冊中心

首先新建一個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

這樣我們的注冊中心就啟動起來了

二、服務的注冊與發現

跟剛剛一樣我們創建一個名叫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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM