1. 程式人生 > >搭建Eureka叢集並測試

搭建Eureka叢集並測試

一 叢集架構圖二 建立各個模組建立伺服器建立服務提供者建立服務呼叫者三 修改C:\Windows\System32\drivers\etc\hosts檔案
127.0.0.1 slave1 slave2
四 新建專案cloud-1141 編寫配置檔案
server:
  port: 8761
spring:
  application:
    name: cloud-114
  profiles: slave1
eureka:
  client:
    serviceUrl:
      defaultZone: http://slave2:8762/eureka
---
server:
  port: 8762
spring:
  application:
    name: cloud-114
  profiles: slave2
eureka:
  client:
    serviceUrl:
      defaultZone: http://slave1:8761/eureka
2 編寫啟動類
package org.crazyit.cloud;

import java.util.Scanner;

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

@SpringBootApplication
@EnableEurekaServer
public class ServerApp {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String profiles = scan.nextLine();
        new SpringApplicationBuilder(ServerApp.class).profiles(profiles).run(args);
    }

}
3 測試控制檯輸入啟動兩個Eureka Server五 新建專案cloud-police1 編寫配置檔案
spring:
  application:
    name: cloud-police
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/, http://localhost:8762/eureka/
2 編寫啟動類
package org.crazyit.cloud;

import java.util.Scanner;

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

@SpringBootApplication
@EnableEurekaClient
public class PoliceServer {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //通過控制檯讀取
        String port = scan.nextLine();
        new SpringApplicationBuilder(PoliceServer.class).properties("server.port=" + port).run(args);
    }

}
3 測試通過控制檯啟動兩個例項4 編寫實體類
package org.crazyit.cloud;
public class Police {
      private Integer id;
      private String name;
      private String message;
      
      public Integer getId() {
            return id;
      }
      public void setId(Integer id) {
            this.id = id;
      }
      public String getName() {
            return name;
      }
      public void setName(String name) {
            this.name = name;
      }
      public String getMessage() {
            return message;
      }
      public void setMessage(String message) {
            this.message = message;
      }
      
} 
5 編寫控制類
package org.crazyit.cloud;

import javax.servlet.http.HttpServletRequest;

import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PoliceController {

    @RequestMapping(value = "/call/{id}", method = RequestMethod.GET,
            produces = MediaType.APPLICATION_JSON_VALUE)
    public Police call(@PathVariable Integer id, HttpServletRequest request) {
        Police p = new Police();
        p.setId(id);
        p.setName("angus");
        p.setMessage(request.getRequestURL().toString());
        return p;
    }
}
6 測試六 新建專案cloud-person1 編寫配置檔案
server:
  port: 9000
spring:
  application:
    name: cloud-person
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/, http://localhost:8762/eureka/
2 編寫控制器
package org.crazyit.cloud;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;

@Controller
@Configuration
public class TestController {
    
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

    @GetMapping("/router")
    @ResponseBody
    public String router() {
        RestTemplate tpl = getRestTemplate();
        String json = tpl.getForObject("http://cloud-police/call/1", String.class);
        return json;
    }

}
3 測試輪詢七 新cloud-client專案1 依賴查詢方法:2 新增依賴
<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.crazyit.cloud</groupId>
      <artifactId>cloud-client</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      
      <dependencies>
            <dependency>
                  <groupId>org.apache.httpcomponents</groupId>
                  <artifactId>httpclient</artifactId>
                  <version>4.5.2</version>
            </dependency>
      </dependencies>
      
</project>
3 新增測試類
package org.crazyit.cloud;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class TestClient {
      public static void main(String[] args) throws Exception {
            // 建立預設的HttpClient
            CloseableHttpClient httpclient = HttpClients.createDefault();
            // 呼叫6次服務並輸出結果
            for(int i = 0; i < 6; i++) {
                  // 呼叫 GET 方法請求服務
                  HttpGet httpget = new HttpGet("http://localhost:9000/router");
                  // 獲取響應
                  HttpResponse response = httpclient.execute(httpget);
                  // 根據 響應解析出字串
                  System.out.println(EntityUtils.toString(response.getEntity()));
            }
      }
}
4 執行測試,觀察負載均衡效果
{"id":1,"name":"angus","message":"http://DESKTOP-5SDKDG4:8081/call/1"}
{"id":1,"name":"angus","message":"http://DESKTOP-5SDKDG4:8082/call/1"}
{"id":1,"name":"angus","message":"http://DESKTOP-5SDKDG4:8081/call/1"}
{"id":1,"name":"angus","message":"http://DESKTOP-5SDKDG4:8082/call/1"}
{"id":1,"name":"angus","message":"http://DESKTOP-5SDKDG4:8081/call/1"}
{"id":1,"name":"angus","message":"http://DESKTOP-5SDKDG4:8082/call/1"}


相關推薦

搭建Eureka叢集測試

一 叢集架構圖二 建立各個模組建立伺服器建立服務提供者建立服務呼叫者三 修改C:\Windows\System32\drivers\etc\hosts檔案127.0.0.1 slave1 slave2四

在centos上搭建redis叢集測試(真叢集非偽叢集)

環境:centos6.5 x86  32位    redis3.2.8  ruby-2.2.3 一. redis叢集原理 redis是單執行緒,但是一般的作為快取使用的話,redis足夠了,因為它的讀寫速度太快了。 官方的一個簡單測試: 測試完成了50個併發執行100000

Spring Cloud 進階之路 -- 搭建 Eureka Client 註冊至 Eureka Server 註冊中心

  上一章搭建了 Eureka Server 註冊中心 並搭建了開發環境和生產環境的Eureka叢集,本章將搭建Eureka Client 並註冊至 Eureka Server。   1、新建專案,Next:   2、編輯 Gro

Spring Cloud 進階之路 -- Eureka的高可用,搭建 Eureka叢集(開發環境和生產環境)

  Eureka 作為註冊中心,必須保障高可用,否則會直接影響有關的整個服務體系。 以下分別進行開發環境和生產環境的多服務中心叢集配置。   目錄 一、開發環境簡易配置: 1、配置Configurations 2、在Configurations 裡

window安裝 redis叢集 測試通過

實現方式:選擇一臺window的電腦在電腦上建立一個redis服務作為master節點(負責寫操作),另外建立多個redis服務作為slave節點(負責讀操作),slave節點上的資料完全由master節點同步過來。 作用:降低單節點redis伺服器的讀寫負載,將讀寫分離到不同的服務 提供資料的

搭建eureka叢集

使用spring boot1.5.16版本,spring cloud版本選擇Edgware.SR4,新增eureka server的依賴 <dependency> <groupId>org.springframework.cloud<

zookeeper:springboot+dubbo配置zk叢集測試

1.springboot配置zk叢集 1.1:非主從配置方法 dubbo: registry: protocol: zookeeper address: 12.1.1.69:2181,12.1.1.85:2181,12.1.1.84:2181 check: false

10分鐘從無到有搭建hadoop環境測試mapreduce

2012-05-22 來源:http://abloz.com/2012/05/22/hadoop-installation.html 目標: 安裝測試本地單機hadoop。 花費時間:10分鐘 前提: java環境已經準備好

Docker 搭建 ES 叢集整合 Spring Boot

隨著 Elasticsearch 生態越來越完善,當公司業務的高速發展及資料爆炸式的增長,某些業務場景需要多維度的搜尋時,Elasticsearch 是最適合場景的。 通過本次 Chat 可以帶大家先了解 Elasticsearch 是什麼,以及它的特性和要素。然後通過實戰幫助大家在實踐中解決一些

Spring Cloud 進階之路 -- Eureka的高可用,搭建 Eureka叢集(開發環境和生產環境)

Eureka 作為註冊中心,必須保障高可用,否則會直接影響有關的整個服務體系。 以下分別進行開發環境和生產環境的多服務中心叢集配置。 目錄 一、開發環境簡易配置: 1、配置Configurations 在上一

叢集:服務的提供者是叢集,服務的消費者也是叢集|eureka註冊中心:叢集架構;叢集搭建| eureka叢集:遠端呼叫實現;負載均衡實現 |負載提供者:註冊到eureka叢集;改變註冊名稱

  springcloud模組 什麼是叢集??負載均衡又是什麼???         springcloud叢集架構 註冊中心存在什麼樣的問題???單點故障 所以註冊中心需要部署叢集,服務提供者也需要叢

hadoop學習之HDFS(2.5):windows下eclipse遠端連線linux下的hadoop叢集測試wordcount例子

windows下eclipse遠端連線linux下的hadoop叢集不像在linux下直接配置eclipse一樣方便,會出現各種各樣的問題,處處是坑,連線hadoop和執行例子時都會出現問題,而網上的

Eclipse或Myeclipse中搭建KindEditor環境測試

       最近在學習KindEditor,按照官方手冊在Eclipse中搭建KindEditor的環境時出現了問題,後來解決了,在我的部落格裡寫出來希望對其他的人有幫助。 最後實現的效果應該是這樣的: (1)可以輸入文字,可以上傳檔案,可以上傳照片。 (2)點選提

helm安裝kafka叢集測試其高可用性

介紹 Kafka是由Apache軟體基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者在網站中的所有動作流資料。 這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的一個關鍵因素。 這些資料通常是由於吞吐量的要

超詳細,多圖文使用galera cluster搭建mysql叢集介紹wsrep相關引數

# 超詳細,多圖文使用galera cluster搭建mysql叢集並介紹wsrep相關引數 > 介紹galera cluster原理的文章已經有一大堆了,百度幾篇看一看就能有相關了解,這裡就不贅述了。本文主要側重實操,因為跟著百度前幾頁的搭建教程或多或少都有坑,前後配置邏輯矛盾的也有。終於,經過

Spark叢集環境搭建測試

不在此處介紹spark了,直接上步驟, spark環境需要jdk 、Scala環境 、下載hadoop 和是spark,jdk的安裝十分簡單,下面介紹其他三個步驟。 環境介紹 三臺虛擬機器 hadoop1 192.168.46.129 centos 2g ha

centos完美搭建redis3.0叢集測試

線上的統一聊天和推送專案使用的是redis主從,redis版本2.8.6 redis主從和mysql主從目的差不多,但redis主從配置很簡單,主要在從節點配置檔案指定主節點ip和埠:slaveof 192.168.1.197 6379,然後啟動主從,主從就搭建好了redi

docker搭建linux叢集搭建mpi環境,使用MTT benchmark測試叢集效能

最近在研究docker,早些時候老闆讓做了一個open mpi的image,並在單機環境下,成功使用docker搭建了一個openmpi的叢集,可以跑一些hello world的例子,後來,在ubuntu環境下,使用openvswitch搭建了一個多host的叢

bkt項目 (四)搭建環境測試之3添加日誌和 Thymeleaf 模板

model nal -- contex port tro XML 測試 fan 簡介:這個項目是為了學習SpringBoot以及學習SpringCloud用的,如果對你有什麽幫助,還是非常高興的。 GitHub : https://github.com/fankf/bk

002—搭建測試安卓開發環境

學習安卓開發,首先要搭建並測試安卓開發環境。 由於安裝過程是全英文,要看懂每一步都很困難,所幸老師給了我們安裝過程的筆記,有了對照,在安裝過程並沒有什麼錯誤,只是安裝時間漫長。 搭建安卓開發環境步驟: https://www.mosoteach.cn/web/index.php?c=r