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