老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Nacos性能測試的示例分析

小編給大家分享一下Nacos性能測試的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

為蒼溪等地區用戶提供了全套網頁設計制作服務,及蒼溪網站建設行業解決方案。主營業務為網站設計、成都網站設計、蒼溪網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

背景故事

基礎架構部選擇新的注冊中心,測試組需要配合對業界成熟的注冊中心產品做分析和比較。由于掌門教育采用的是比較純凈的 Spring Cloud 技術棧,所以我們需要圍繞它的注冊中心,從測試角度,進行功能和性能上研究。

Spring Cloud 技術棧官方支持 Netflix EurekaHashiCorp ConsulZookeeper 三個注冊中心,它們可以相互間實現無縫遷移,Alibaba Nacos 是新加盟 Spring Cloud 技術棧的新成員。測試組的同學們對上述四個注冊中心做了一一研究和分析,鑒于時間緊迫,除了 EurekaNacos 之外,其它兩個中間件未做深入的功能測試和性能測試。下面提供來自阿里巴巴 Nacos 官方某次業界宣講的資料截圖以供大家參考:

  • Eureka 介紹

Nacos性能測試的示例分析

  • Zookeeper 介紹

Nacos性能測試的示例分析

  • Consul 介紹

Nacos性能測試的示例分析

  • 上述三個注冊中心比較

Nacos性能測試的示例分析

本文將圍繞 Alibaba Nacos 著重針對其功能測試和性能測試兩方面進行剖析和介紹。

Nacos 測試篇

Nacos 性能測試

① Nacos Server 性能測試

開發部署了 UATNacos ,測試親自壓測。

  • 核心腳本

def registry(ip):
    fo = open("service_name.txt", "r")
    str = fo.read()
    service_name_list = str.split(";")
    service_name = service_name_list[random.randint(0,len(service_name_list) - 1)]
    fo.close()
    client = nacos.NacosClient(nacos_host, namespace='')
    print(client.add_naming_instance(service_name,ip,333,"default",1.0,{'preserved.ip.delete.timeout':86400000},True,True))
    while True:
      print(client.send_heartbeat(service_name,ip,333,"default",1.0,"{}"))
      time.sleep(5)
  • 壓測數據

Nacos性能測試的示例分析

  • 壓測結果圖

Nacos性能測試的示例分析

Nacos性能測試的示例分析

Nacos Server 是3臺 1C4G 集群,同時承受1499個服務和12715個實例注冊,而且 CPU 和內存長期保持在一個合適的范圍內,果真 Nacos 性能是相當 OK 的。

Nacos 功能測試

① Nacos Server 接口測試

Nacos性能測試的示例分析

更多更詳 API 請參見 Nacos 官方文檔: Open API 指南

https://nacos.io/zh-cn/docs/open-api.html

② Nacos Eureka Sync 測試
  • 交叉注冊

網關,服務 A ,服務 B 各10臺實例,網關注冊 EurekaA 注冊 NacosB 注冊 Eureka ,同步正常,可調用。

  • 壓力測試

請求大于100萬次,查看 Sync Server 會不會受到影響,結果 ErrorRequest = 0,同步服務數和實例數沒有變化。

Nacos性能測試的示例分析

  • 有無損調用

網關 Sync Server 掛掉,網關服務 Eureka 同步 Nacos 失敗,不影響網關 -> A -> B 調用。

  • 自動創建同步

發布系統第一次發布應用到 Eureka / Nacos ,會自動創建 Eureka -> Nacos 的同步任務或 Nacos -> Eureka 的同步任務

Nacos性能測試的示例分析

  • 減少 Sync Server

Sync Server 4C8G ,停止機器,逐臺遞減,結論:平均1臺 4C8G 機器最大可同步100個服務。

  • 增加 Sync Server

2臺 Etcd 節點,停機一臺,Etcd 讀取超時,結論:600個服務至少2臺 Etcd 節點,這里重點強調,新增服務時, Hash 算法虛擬節點數,務必和原有的保持一致,不然會出現同步失敗,影響跨注冊中心調用。

Nacos性能測試的示例分析

  • 重啟 Sync Server

增加 Sync Server 個數,重啟 Sync Server ,各節點同步數重新計算且均衡。

③ Nacos Client 功能測試

Nacos Client 界面重點測試集群管理,服務列表和權限控制。

  • Nacos Server 重啟后,集群管理界面正常展示3臺集群節點 IP

  • 服務注冊 Nacos Server 后,服務列表新增注冊上去的服務名和實例個數,而且可查看詳情。

Nacos性能測試的示例分析

  • 服務上下線操作,健康狀態和元數據等展示正常。

  • 編輯,刪除等操作只有具備 Admin 權限的人員才可操作。

④ Nacos Client 自動化測試
  • 自動化測試鏈路

全鏈路測試路徑

API網關 -> 服務A(兩個實例) -> 服務B(兩個實例)

Nacos性能測試的示例分析

全鏈路服務部署

Nacos性能測試的示例分析

  • 自動化測試入口

結合 Spring Boot JunitTestApplication.class 為測試框架內置應用啟動程序, MyTestConfiguration 用于初始化所有測試用例類。在測試方法上面加入 JUnit@Test注解

@RunWith(SpringRunner.class)
@SpringBootTest(classes = { TestApplication.class, MyTestConfiguration.class }, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class MyTest {
    @Autowired
    private MyTestCases myTestCases;

    private static long startTime;

    @BeforeClass
    public static void beforeTest() {
        startTime = System.currentTimeMillis();
    }

    @AfterClass
    public static void afterTest() {
        LOG.info("* Finished automation test in {} seconds", (System.currentTimeMillis() - startTime) / 1000);
    }

    @Test
    public void testNoGray() throws Exception {
        myTestCases.testNoGray(gatewayTestUrl);
        myTestCases.testNoGray(zuulTestUrl);
    }

    @Test
    public void testVersionStrategyGray() throws Exception {
        myTestCases.testVersionStrategyGray1(gatewayGroup, gatewayServiceId, gatewayTestUrl);
        myTestCases.testVersionStrategyGray1(zuulGroup, zuulServiceId, zuulTestUrl);
    }
}
@Configuration
public class MyTestConfiguration {
    @Bean
    public MyTestCases myTestCases() {
        return new MyTestCases();
    }
}
  • 基于 Nacos Client 的普通調用自動化測試

在測試方法上面增加注解 @DTest ,通過斷言 Assert 來判斷測試結果。注解 @DTest 內容如下:

@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface DTest {

}

代碼如下:

public class MyTestCases {
    @Autowired
    private TestRestTemplate testRestTemplate;

    @DTest
    public void testNoGray(String testUrl) {
        int noRepeatCount = 0;
        List resultList = new ArrayList();
        for (int i = 0; i < 4; i++) {
            String result = testRestTemplate.getForEntity(testUrl, String.class).getBody();

            LOG.info("Result{} : {}", i + 1, result);

            if (!resultList.contains(result)) {
                noRepeatCount++;
            }
            resultList.add(result);
        }

        Assert.assertEquals(noRepeatCount, 4);
    }
}
  • 基于 Nacos Client 的灰度藍綠調用自動化測試

在測試方法上面增加注解 @DTestConfig ,通過斷言 Assert 來判斷測試結果。注解 DTestConfig 注解內容如下:

@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface DTestConfig {
    // 組名
    String group();

    // 服務名
    String serviceId();

    // 組名-服務名組合鍵值的前綴
    String prefix() default StringUtils.EMPTY;

    // 組名-服務名組合鍵值的后綴
    String suffix() default StringUtils.EMPTY;

    // 執行配置的文件路徑。測試用例運行前,會把該文件里的內容推送到遠程配置中心或者服務
    String executePath();

    // 重置配置的文件路徑。測試用例運行后,會把該文件里的內容推送到遠程配置中心或者服務。該文件內容是最初的默認配置
    // 如果該注解屬性為空,則直接刪除從配置中心刪除組名-服務名組合鍵值
    String resetPath() default StringUtils.EMPTY;
}

代碼如下:

public class MyTestCases {
    @Autowired
    private TestRestTemplate testRestTemplate;

    @DTestConfig(group = "#group", serviceId = "#serviceId", executePath = "gray-strategy-version.xml", resetPath = "gray-default.xml")
    public void testVersionStrategyGray(String group, String serviceId, String testUrl) {
        for (int i = 0; i < 4; i++) {
            String result = testRestTemplate.getForEntity(testUrl, String.class).getBody();

            LOG.info("Result{} : {}", i + 1, result);

            int index = result.indexOf("[V=1.0]");
            int lastIndex = result.lastIndexOf("[V=1.0]");

            Assert.assertNotEquals(index, -1);
            Assert.assertNotEquals(lastIndex, -1);
            Assert.assertNotEquals(index, lastIndex);
        }
    }
}

初始默認無灰度藍綠的配置文件 gray-default.xml




灰度藍綠生效的配置文件 gray-strategy-version.xml



    
        1.0
    
  • 基于 Nacos Client 的自動化測試報告樣例

---------- Run automation testcase :: testStrategyCustomizationGray() ----------
Header : [a:"1", b:"2"]
Result1 : zuul -> solar-service-a[192.168.0.107:3002][V=1.1][R=qa][G=solar-group] -> solar-service-b[192.168.0.107:4002][V=1.1][R=dev][G=solar-group]
Result2 : zuul -> solar-service-a[192.168.0.107:3002][V=1.1][R=qa][G=solar-group] -> solar-service-b[192.168.0.107:4002][V=1.1][R=dev][G=solar-group]
Result3 : zuul -> solar-service-a[192.168.0.107:3002][V=1.1][R=qa][G=solar-group] -> solar-service-b[192.168.0.107:4002][V=1.1][R=dev][G=solar-group]
Result4 : zuul -> solar-service-a[192.168.0.107:3002][V=1.1][R=qa][G=solar-group] -> solar-service-b[192.168.0.107:4002][V=1.1][R=dev][G=solar-group]
* Passed
---------- Run automation testcase :: testVersionRuleGray() ----------
Result1 : zuul -> solar-service-a[192.168.0.107:3002][V=1.1][R=qa][G=solar-group] -> solar-service-b[192.168.0.107:4002][V=1.1][R=dev][G=solar-group]
Result2 : zuul -> solar-service-a[192.168.0.107:3001][V=1.0][R=dev][G=solar-group] -> solar-service-b[192.168.0.107:4001][V=1.0][R=qa][G=solar-group]
Result3 : zuul -> solar-service-a[192.168.0.107:3002][V=1.1][R=qa][G=solar-group] -> solar-service-b[192.168.0.107:4002][V=1.1][R=dev][G=solar-group]
Result4 : zuul -> solar-service-a[192.168.0.107:3001][V=1.0][R=dev][G=solar-group] -> solar-service-b[192.168.0.107:4001][V=1.0][R=qa][G=solar-group]
* Passed

Nacos 測試總結

Nacos 不僅性能好,而且界面簡潔,這樣的注冊中心你值得擁有。

以上是“Nacos性能測試的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!


當前文章:Nacos性能測試的示例分析
本文鏈接:http://www.xueling.net.cn/article/jjjphh.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 一级无遮挡真人毛片黄色视频 | 黄色av免费网站 | 成年人观看免费视频 | 小宝极品内射国产在线 | 亚洲国产精品综合久久20 | 女性裸体啪啪无遮挡免费网站 | 播五月开心婷婷欧美综合 | 九色在线网站 | 国产狂喷水潮免费网站WWW | 亚洲精品女人久久久 | 97久久人人爽人人爽人人片 | 乱码午夜-极国产极内射 | 天天干天天草天天 | 久久精品久久久久久 | 精品无人区卡卡卡卡卡二卡三乱码 | 亚洲成人免费视频在线观看 | 国产精品制服 | 男人天堂视频在线 | 99久久精品无免国产免费 | 成在人线AV无码免费高潮水老板 | 欧美一级大片免费看 | 国产日韩精品一区在线观看播放 | 欧美www视频在线观看 | 午夜无码无遮挡在线视频 | 91资源在线播放 | 国产免费av资源 | 国无码精品一区二区三区在线蜜臀 | 中文字幕亚洲精品在线观看 | 三级国产三级在线 | 少妇与大狼拘作爱视频 | 欧美日韩在线三区 | 日韩免费无码一区二区三区 | 亚洲国产精品视频一区二区 | 亚洲精品九九 | 99久久免费精品国产男女性高好 | 久久久久人妻精品区一 | 操空姐逼 | 日韩精品一区二区视频 | 亚洲首页 | 瑟瑟久久 | www.日本国产 |