springcloud的Hello Word!

搭建一個Eureka註冊服務(註冊中心)

Maven依賴

  <parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.2.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

 

<dependencies>

<!--eureka server -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka-server</artifactId>

</dependency>

<!-- spring boot test -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.RC1</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>

</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>

創建配置

server:

port: 8001

eureka:

instance:

hostname: localhost

client:

service-url:

defaultZone: http://${eureka.instance.hostname}/${server.port}/eureka/

register-with-eureka: false

fetch-registry: false

#registerWithEureka表示是否註冊自身到eureka服務器,因爲當前這個應用就是eureka服務器,沒必要註冊自身,所以這裏是false。

#fetchRegistry表示是否從eureka服務器獲取註冊信息,同上,這裏不需要。

創建springboot的啓動類

啓動

訪問看下

http://localhost:8001/

eureka的服務就啓動了

我們在創建maven搭建會員服務

 

創建項目service-member

Maven依賴

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.2.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.RC1</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>

</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>

application.yml配置

eureka:

  client:

    serviceUrl:

      defaultZone: http://localhost:8001/eureka/

server:

  port: 8002

spring:

  application:

    name: membe-rservice

服務接口

@RestController

public class MemberController {

 

@RequestMapping("/getUserList")

public List<String> getUserList() {

List<String> listUser = new ArrayList<String>();

listUser.add("zhangsan");

listUser.add("lisi");

listUser.add("yushengjun");

return listUser;

}

 

}

 

發佈服務

通過註解@EnableEurekaClient 表明自己是一個eurekaclient.

@SpringBootApplication

@EnableEurekaClient

public class AppMember {

 

public static void main(String[] args) {

SpringApplication.run(AppMember.class, args);

}

 

}

啓動後,我們再看下eureka註冊中心

在搭建一個訂單服務

Maven依賴

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.2.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

 

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

 

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-ribbon</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

 

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

 

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.RC1</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>

</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>

配置

eureka:

client:

service-url:

defaultZone: http://localhost:8001/eureka/

server:

port: 8003

spring:

application:

name: order-service

service

 

@Service

public class OrderService {

 

@Autowired

RestTemplate restTemplate;

 

public List<String> getOrderByUserList(){

//member-service 就是之前會員服務的spring。application。name的名字

return restTemplate.getForObject("http://member-service/getUserList",List.class);

}

}

controller

 

@RestController

public class OrderController {

@Autowired

private OrderService orderMemberService;

 

@RequestMapping("/getOrderUserAll")

public List<String> getOrderUserAll() {

System.out.println("訂單服務開始調用會員服務");

return orderMemberService.getOrderByUserList();

 

}

 

}

啓動類

@SpringBootApplication

@EnableEurekaClient

public class OrderApp

{

public static void main( String[] args )

{

SpringApplication.run(OrderApp.class,args);

System.out.println( "Hello World!" );

}

 

@Bean

@LoadBalanced //這個註解代表開啓負載均衡

RestTemplate restTemplate(){

return new RestTemplate();

}

}

訪問就可以獲取到userlist了

http://localhost:8003/getOrderUserAll

ribbon是一個負載均衡客戶端 類似nginx反向代理,可以很好的控制htt和tcp的一些行爲。Feign默認集成了ribbon。

 

啓動那個兩個會員服務,不同的端口(8002,8004),訂單服務是已經開啓了負載均衡,進行訪問會走向不同的會員服務

 

 

 

 

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