springcloud搭建篇

springcloud微服務
微服務:拆分、單一、獨立、組件化。將一個複雜的龐大的項目拆分成一個一個的小項目獨立的運行,通過接口的方式組裝成一個大項目。

springcloud是基於springboot的一套實現微服務的框架。
提供了微服務開發所需要的配置管理,服務管理,斷路器,智能路由,微代理,控制總線,全局鎖,策略競選,分佈式會話和集羣狀態管理等組件。
springcloud的五大組件:
服務的註冊發現 Netflix Eureka
配置中心 spring cloud config
負載均衡 Netflix Ribbon
斷路器 Netflix Hystrix
路由 (網關) Netflix Zuul

    今日學習總結

springcloud的集羣搭建
三個註冊中心的搭建集羣:
搭建maven項目

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.7.RELEASE</version>
        <relativePath />
    </parent>

  <properties>
        <!--main方法類 -->
        <start-class>com.cc.yonyou.ServicEureka1</start-class>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Dalston.SR4</spring-cloud.version>
        <swagger.version>2.2.2</swagger.version>
    </properties>

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

        <!--表示爲web工程 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--暴露各種指標 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

    </dependencies>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!--打包跳過測試插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

項目的啓動類:

@EnableEurekaServer
@SpringBootApplication
public class ServicEureka1 
{
    public static void main( String[] args )
    {
        SpringApplication.run(ServicEureka1.class, args);
    }
}

注意: 在啓動類 @EnableEurekaServer 這個註解註冊中心服務
接下來還需要在全局配置中心配置(這是重點):

# 配置端口號
server.port=12001
# 是否向註冊中心註冊自己
eureka.client.register-with-eureka=false
# 是否需要檢索服務
eureka.client.fetch-registry=false
# 項目的名稱
spring.application.name=eureka-server
# 訪問的ip別名
eureka.instance.hostname=master
#   將自己註冊到backup、king這個Eureka上面去   同時這也是註冊中心的請求地址
eureka.client.serviceUrl.defaultZone=http://backup:12002/eureka/,http://king:12003/eureka/
# 顯示ip地址
eureka.instance.preferIpAddress=true
# eureka服務清理間隔(單位是毫秒)
eureka.server.eviction-interval-timer-in-ms=4000
# 關閉eureka自我保護
#eureka.server.enable.self.preservation=false

同理在創建兩個同樣的項目
只需要修改全局配置文件即可

這個時候重點來了: 如果這三個項目都是在windows系統下:則需要修改hosts文件:eureka.client.serviceUrl.defaultZone=http://backup:12002/eureka/,http://king:12003/eureka/
在hosts文件種添加:
127.0.0.1 backup
127.0.0.1 king
如果放在服務器上,同樣需要修改hosts文件
vi /etc/hosts
修改問對應的服務器的 ip號即可
此時:springcloud註冊中心的集羣纔算搭建完成:
接下來就是向註冊中心中 註冊服務:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章