1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      go語言教程第742講 go語言入門教程

      Go語言 排序與搜索切片

      Go語言標(biāo)準(zhǔn)庫中提供了sort包對整型,浮點(diǎn)型,字符串型切片進(jìn)行排序,檢查一個切片是否排好序,使用二分法搜索函數(shù)在一個有序切片中搜索一個元素等功能。

      成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計,有關(guān)成都企業(yè)網(wǎng)站建設(shè)方案、改版、費(fèi)用等問題,行業(yè)涉及成都搬家公司等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

      關(guān)于sort包內(nèi)的函數(shù)說明與使用,請查看

      在這里簡單講幾個sort包中常用的函數(shù)

      在Go語言中,對字符串的排序都是按照字節(jié)排序,也就是說在對字符串排序時是區(qū)分大小寫的。

      二分搜索算法

      Go語言中提供了一個使用二分搜索算法的sort.Search(size,fn)方法:每次只需要比較㏒?n個元素,其中n為切片中元素的總數(shù)。

      sort.Search(size,fn)函數(shù)接受兩個參數(shù):所處理的切片的長度和一個將目標(biāo)元素與有序切片的元素相比較的函數(shù),該函數(shù)是一個閉包,如果該有序切片是升序排列,那么在判斷時使用 有序切片的元素 = 目標(biāo)元素。該函數(shù)返回一個int值,表示與目標(biāo)元素相同的切片元素的索引。

      在切片中查找出某個與目標(biāo)字符串相同的元素索引

      go語言實(shí)現(xiàn)一個簡單的簡單網(wǎng)關(guān)

      網(wǎng)關(guān)=反向代理+負(fù)載均衡+各種策略,技術(shù)實(shí)現(xiàn)也有多種多樣,有基于 nginx 使用 lua 的實(shí)現(xiàn),比如 openresty、kong;也有基于 zuul 的通用網(wǎng)關(guān);還有就是 golang 的網(wǎng)關(guān),比如 tyk。

      這篇文章主要是講如何基于 golang 實(shí)現(xiàn)一個簡單的網(wǎng)關(guān)。

      轉(zhuǎn)自: troy.wang/docs/golang/posts/golang-gateway/

      整理:go語言鐘文文檔:

      啟動兩個后端 web 服務(wù)(代碼)

      這里使用命令行工具進(jìn)行測試

      具體代碼

      直接使用基礎(chǔ)庫 httputil 提供的NewSingleHostReverseProxy即可,返回的reverseProxy對象實(shí)現(xiàn)了serveHttp方法,因此可以直接作為 handler。

      具體代碼

      director中定義回調(diào)函數(shù),入?yún)?http.Request,決定如何構(gòu)造向后端的請求,比如 host 是否向后傳遞,是否進(jìn)行 url 重寫,對于 header 的處理,后端 target 的選擇等,都可以在這里完成。

      director在這里具體做了:

      modifyResponse中定義回調(diào)函數(shù),入?yún)?http.Response,用于修改響應(yīng)的信息,比如響應(yīng)的 Body,響應(yīng)的 Header 等信息。

      最終依舊是返回一個ReverseProxy,然后將這個對象作為 handler 傳入即可。

      參考 2.2 中的NewSingleHostReverseProxy,只需要實(shí)現(xiàn)一個類似的、支持多 targets 的方法即可,具體實(shí)現(xiàn)見后面。

      作為一個網(wǎng)關(guān)服務(wù),在上面 2.3 的基礎(chǔ)上,需要支持必要的負(fù)載均衡策略,比如:

      隨便 random 一個整數(shù)作為索引,然后取對應(yīng)的地址即可,實(shí)現(xiàn)比較簡單。

      具體代碼

      使用curIndex進(jìn)行累加計數(shù),一旦超過 rss 數(shù)組的長度,則重置。

      具體代碼

      輪詢帶權(quán)重,如果使用計數(shù)遞減的方式,如果權(quán)重是5,1,1那么后端 rs 依次為a,a,a,a,a,b,c,a,a,a,a…,其中 a 后端會瞬間壓力過大;參考 nginx 內(nèi)部的加權(quán)輪詢,或者應(yīng)該稱之為平滑加權(quán)輪詢,思路是:

      后端真實(shí)節(jié)點(diǎn)包含三個權(quán)重:

      操作步驟:

      具體代碼

      一致性 hash 算法,主要是用于分布式 cache 熱點(diǎn)/命中問題;這里用于基于某 key 的 hash 值,路由到固定后端,但是只能是基本滿足流量綁定,一旦后端目標(biāo)節(jié)點(diǎn)故障,會自動平移到環(huán)上最近的那么個節(jié)點(diǎn)。

      實(shí)現(xiàn):

      具體代碼

      每一種不同的負(fù)載均衡算法,只需要實(shí)現(xiàn)添加以及獲取的接口即可。

      然后使用工廠方法,根據(jù)傳入的參數(shù),決定使用哪種負(fù)載均衡策略。

      具體代碼

      作為網(wǎng)關(guān),中間件必不可少,這類包括請求響應(yīng)的模式,一般稱作洋蔥模式,每一層都是中間件,一層層進(jìn)去,然后一層層出來。

      中間件的實(shí)現(xiàn)一般有兩種,一種是使用數(shù)組,然后配合 index 計數(shù);一種是鏈?zhǔn)秸{(diào)用。

      具體代碼

      求go語言教程

      可以去黑馬程序員視頻庫下載,里面有很多免費(fèi)視頻,簡直是自學(xué)者的資源庫。


      分享文章:go語言教程第742講 go語言入門教程
      本文地址:http://www.ef60e0e.cn/article/docesoo.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        井冈山市| 凤台县| 离岛区| 中江县| 建昌县| 张家口市| 富阳市| 天台县| 克什克腾旗| 岳普湖县| 汉源县| 西盟| 石门县| 北京市| 庆安县| 黎城县| 万盛区| 青冈县| 怀安县| 嘉定区| 建始县| 永定县| 彰化县| 尼玛县| 濮阳县| 镇远县| 丰顺县| 武山县| 绥江县| 江达县| 肇东市| 永城市| 连平县| 灌阳县| 微博| 马龙县| 桃源县| 辉南县| 始兴县| 石泉县| 军事|