springCloud入門搭建(一)

之前項目一直使用dubbo+zookeeper+SSM搭架項目,本次用springCloud來創建一下項目

中文文檔:https://springcloud.cc/

官方文檔:http://projects.spring.io/spring-cloud/#quick-start

本人使用eclipse搭建,本項目同樣使用MAVEN,具體操作步驟如下:

一、創建註冊中心 spring-boot主項目,用於方便管理項目

1.1 新建maven 項目 next

1.2 選擇 create a simple project  然後 next

1.3 填寫相關內容, 注意packaging 選擇pom,然後finish

1.4 修改pom文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.jony.demo</groupId>
	<artifactId>spring-root</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>

	<!-- 建議用1.4.0以後的版本之前的可能可能導致部分功能不能使用 包衝突 會出現註冊問題 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.13.RELEASE</version>
	</parent>
	<modules>
		<module>spring-demo-register</module><!--註冊中心項目 -->
	</modules>
	<!-- spring-cloud所有項目依賴包 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Dalston.SR1</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<finalName>spring-root</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<encoding>utf-8</encoding>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

二、創建註冊中心項目

2.1鼠標右鍵主項目,新建maven module

2.2 填寫項目名稱 ,並勾選 create a simple project  然後finish

2.3 修改spring-register pom配置文件內容(添加註冊中心依賴包)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.jony.demo</groupId>
		<artifactId>spring-root</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>spring-register</artifactId>

	<!-- 添加註冊中心依賴的包文件 -->
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
	</dependencies>
</project>

2.4 新建註冊中心類以及配置文件

2.4.1 Register.java

package com.jony.register;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication //spring-boot 啓動註解
@EnableEurekaServer // spring-cloud 服務註解
public class Register{
     public static void main(String [] args) {
            new SpringApplicationBuilder(Register.class).web(true).run(args);
        }
}

2.4.2 application.yaml

server:
  port: 7890

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url: 
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

2.5 啓動服務

右鍵 Register.java,然後 run as java application

瀏覽器訪問:http://localhost:7890

註冊中心啓動成功。

三、創建服務到註冊中心

3.1 右鍵spring-root 新建 maven module

3.2 修改pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.jony.demo</groupId>
		<artifactId>spring-root</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>spring-project-test</artifactId>

	<dependencies>
		<!-- spring-cloud 客服端 start -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<!-- spring-cloud 客服端 end -->
	</dependencies>
</project>

3.3 創建服務文件及配置文件

3.3.1 FirstApplication.java

package com.jony.project;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient //Eureka Client
public class FirstApplication {
    public static void main(String[] args) {
        new SpringApplicationBuilder(FirstApplication.class).web(true).run(args);
    }
}

3.3.2 Application.yaml

server:
  port: 5000

spring:
  application:
    name: spring-cloud-portal

#註冊中心指向start    
eureka:
  instance:
    instance-id: spring-cloud-portal
    appname: ${spring.application.name}
  client: 
    service-url: 
      defaultZone: http://127.0.0.1:7890/eureka/
#註冊中心指向end

3.4 右鍵Application.java run as  java application 啓動服務

3.5 訪問http://localhost:7890

可以看到服務已註冊成功

注:上面操作過程中,我們將一個服務註冊的註冊中心中,沒有經過任何驗證。這樣任何人都可以註冊到註冊中心了,這個問題如何處理?下面我們在註冊中心中添加密碼就可以實現這一過程了

四、給註冊中心設置密碼、及服務通過密碼註冊服務

4.1 修改註冊中心pom包,添加密碼包支持

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.jony.demo</groupId>
		<artifactId>spring-root</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>spring-register</artifactId>

	<!-- 添加註冊中心依賴的包文件 -->
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
		<!-- 註冊中心密碼配置 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>
	</dependencies>
</project>

4.2 給註冊中心添加密碼,修改 spring-register中的application.yaml,新增 security 內容如下:

server:
  port: 7890

security: 
    basic: 
        enable: true
    user: 
        name: admin
        password: abc123456 
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url: 
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

重新啓動 spring-register 文件,然後訪問 http://localhost:7890 提示輸入賬號密碼

註冊中心密碼配置完畢,下一步設置服務端

4.3 修改sping-project-test 中 application.yaml文件 內容爲:

server:
  port: 5000

spring:
  application:
    name: spring-cloud-portal

#註冊中心指向start    
eureka:
  instance:
    instance-id: spring-cloud-portal
    appname: ${spring.application.name}
  client: 
    service-url: 
      defaultZone: http://admin:[email protected]:7890/eureka/
#註冊中心指向end

主要添加倒數第二行,添加了 admin:abc123456@ 用於訪問註冊中心

重啓spring-project-test 中的FirstApplication.java,服務可以正常註冊

到此spring-cloud 註冊服務框架到此完畢

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