中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

敘述一個(gè)網(wǎng)站開(kāi)發(fā)流程/廣州seo優(yōu)化效果

敘述一個(gè)網(wǎng)站開(kāi)發(fā)流程,廣州seo優(yōu)化效果,更換wordpress語(yǔ)言包,網(wǎng)站開(kāi)發(fā)報(bào)價(jià)標(biāo)準(zhǔn)8. Hystrix:服務(wù)熔斷 分布式系統(tǒng)面臨的問(wèn)題 復(fù)雜分布式體系結(jié)構(gòu)中的應(yīng)用程序有數(shù)十個(gè)依賴關(guān)系,每個(gè)依賴關(guān)系在某些時(shí)候?qū)⒉豢杀苊馐?amp;#xff01; 8.1 服務(wù)雪崩 多個(gè)微服務(wù)之間調(diào)用的時(shí)候,假設(shè)微服務(wù)A調(diào)用微服務(wù)B和微服務(wù)C,微服…

8. Hystrix:服務(wù)熔斷

分布式系統(tǒng)面臨的問(wèn)題

復(fù)雜分布式體系結(jié)構(gòu)中的應(yīng)用程序有數(shù)十個(gè)依賴關(guān)系,每個(gè)依賴關(guān)系在某些時(shí)候?qū)⒉豢杀苊馐?#xff01;

8.1 服務(wù)雪崩

多個(gè)微服務(wù)之間調(diào)用的時(shí)候,假設(shè)微服務(wù)A調(diào)用微服務(wù)B和微服務(wù)C,微服務(wù)B和微服務(wù)C又調(diào)用其他的微服務(wù),這就是所謂的“扇出”,如果扇出的鏈路上某個(gè)微服務(wù)的調(diào)用響應(yīng)時(shí)間過(guò)長(zhǎng),或者不可用對(duì)微服務(wù)A的調(diào)用就會(huì)占用越來(lái)越多的系統(tǒng)資源,進(jìn)而引起系統(tǒng)崩潰,所謂的“雪崩效應(yīng)”。

在這里插入圖片描述

對(duì)于高流量的應(yīng)用來(lái)說(shuō),單一的后端依賴可能會(huì)導(dǎo)致所有服務(wù)器上的所有資源都在幾十秒內(nèi)飽和。比失敗更糟糕的是,這些應(yīng)用程序還可能導(dǎo)致服務(wù)之間的延遲增加,備份隊(duì)列,線程和其他系統(tǒng)資源緊張,導(dǎo)致整個(gè)系統(tǒng)發(fā)生更多的級(jí)聯(lián)故障,這些都表示需要對(duì)故障和延遲進(jìn)行隔離和管理,以達(dá)到單個(gè)依賴關(guān)系的失敗而不影響整個(gè)應(yīng)用程序或系統(tǒng)運(yùn)行。
我們需要,棄車保帥

8.2 什么是Hystrix?

Hystrix是一個(gè)應(yīng)用于處理分布式系統(tǒng)的延遲和容錯(cuò)的開(kāi)源庫(kù),在分布式系統(tǒng)里,許多依賴不可避免的會(huì)調(diào)用失敗,比如超時(shí),異常等,Hystrix 能夠保證在一個(gè)依賴出問(wèn)題的情況下,不會(huì)導(dǎo)致整個(gè)體系服務(wù)失敗,避免級(jí)聯(lián)故障,以提高分布式系統(tǒng)的彈性。

“斷路器”本身是一種開(kāi)關(guān)裝置,當(dāng)某個(gè)服務(wù)單元發(fā)生故障之后,通過(guò)斷路器的故障監(jiān)控 (類似熔斷保險(xiǎn)絲)向調(diào)用方返回一個(gè)服務(wù)預(yù)期的,可處理的備選響應(yīng) (FallBack) ,而不是長(zhǎng)時(shí)間的等待或者拋出調(diào)用方法無(wú)法處理的異常,**這樣就可以保證了服務(wù)調(diào)用方的線程不會(huì)被長(zhǎng)時(shí)間,不必要的占用,**從而避免了故障在分布式系統(tǒng)中的蔓延,乃至雪崩。

8.3 Hystrix能干嘛?

  • 服務(wù)降級(jí)
  • 服務(wù)熔斷
  • 服務(wù)限流
  • 接近實(shí)時(shí)的監(jiān)控

當(dāng)一切正常時(shí),請(qǐng)求流可以如下所示:

在這里插入圖片描述

當(dāng)許多后端系統(tǒng)中有一個(gè)潛在阻塞服務(wù)時(shí),它可以阻止整個(gè)用戶請(qǐng)求:

在這里插入圖片描述

隨著大容量通信量的增加,單個(gè)后端依賴項(xiàng)的潛在性會(huì)導(dǎo)致所有服務(wù)器上的所有資源在幾秒鐘內(nèi)飽和。

應(yīng)用程序中通過(guò)網(wǎng)絡(luò)或客戶端庫(kù)可能導(dǎo)致網(wǎng)絡(luò)請(qǐng)求的每個(gè)點(diǎn)都是潛在故障的來(lái)源。比失敗更糟糕的是,這些應(yīng)用程序還可能導(dǎo)致服務(wù)之間的延遲增加,從而備份隊(duì)列、線程和其他系統(tǒng)資源,從而導(dǎo)致更多跨系統(tǒng)的級(jí)聯(lián)故障。

在這里插入圖片描述

當(dāng)使用Hystrix包裝每個(gè)基礎(chǔ)依賴項(xiàng)時(shí),上面的圖表中所示的體系結(jié)構(gòu)會(huì)發(fā)生類似于以下關(guān)系圖的變化。每個(gè)依賴項(xiàng)是相互隔離的,限制在延遲發(fā)生時(shí)它可以填充的資源中,并包含在回退邏輯中,該邏輯決定在依賴項(xiàng)中發(fā)生任何類型的故障時(shí)要做出什么樣的響應(yīng):

在這里插入圖片描述

官網(wǎng)資料:https://github.com/Netflix/Hystrix/wiki

8.4 服務(wù)熔斷(服務(wù)端)

什么是服務(wù)熔斷?

熔斷機(jī)制是賭贏雪崩效應(yīng)的一種微服務(wù)鏈路保護(hù)機(jī)制

當(dāng)扇出鏈路的某個(gè)微服務(wù)不可用或者響應(yīng)時(shí)間太長(zhǎng)時(shí),會(huì)進(jìn)行服務(wù)的降級(jí),進(jìn)而熔斷該節(jié)點(diǎn)微服務(wù)的調(diào)用,快速返回錯(cuò)誤的響應(yīng)信息。檢測(cè)到該節(jié)點(diǎn)微服務(wù)調(diào)用響應(yīng)正常后恢復(fù)調(diào)用鏈路。在SpringCloud框架里熔斷機(jī)制通過(guò)Hystrix實(shí)現(xiàn)。Hystrix會(huì)監(jiān)控微服務(wù)間調(diào)用的狀況,當(dāng)失敗的調(diào)用到一定閥值缺省是5秒內(nèi)20次調(diào)用失敗,就會(huì)啟動(dòng)熔斷機(jī)制。熔斷機(jī)制的注解是:@HystrixCommand。

服務(wù)熔斷解決如下問(wèn)題:

  • 當(dāng)所依賴的對(duì)象不穩(wěn)定時(shí),能夠起到快速失敗的目的;
  • 快速失敗后,能夠根據(jù)一定的算法動(dòng)態(tài)試探所依賴對(duì)象是否恢復(fù)。
入門案例

1、新建springcloud-provider-dept-hystrix-8001模塊并拷貝springcloud-provider-dept–8001內(nèi)的pom.xml、resource和Java代碼進(jìn)行初始化并調(diào)整。

2、調(diào)整yml配置文件

在這里插入圖片描述

3、導(dǎo)入 hystrix依賴

在這里插入圖片描述

<!--導(dǎo)入Hystrix依賴-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix</artifactId><version>1.4.6.RELEASE</version>
</dependency>

4、理解注解@HystrCommand,知道它可以配置哪些屬性

在這里插入圖片描述

5、改造DeptController

在這里插入圖片描述

//提供Restful服務(wù)
@RestController
public class DeptController {@Autowiredprivate DeptService deptService;/*** 根據(jù)id查詢部門信息* 如果根據(jù)id查詢出現(xiàn)異常,則走h(yuǎn)ystrixGet這段備選代碼* @param id* @return*/@HystrixCommand(fallbackMethod = "hystrixGet")@RequestMapping("/dept/get/{id}")//根據(jù)id查詢public Dept get(@PathVariable("id") Long id){Dept dept = deptService.queryById(id);if (dept==null){throw new RuntimeException("這個(gè)id=>"+id+",不存在該用戶,或信息無(wú)法找到~");}return dept;}/*** 根據(jù)id查詢備選方案(熔斷)* @param id* @return*/public Dept hystrixGet(@PathVariable("id") Long id){return new Dept().setDeptno(id).setDname("這個(gè)id=>"+id+",沒(méi)有對(duì)應(yīng)的信息,null---@Hystrix~").setDb_source("在MySQL中沒(méi)有這個(gè)數(shù)據(jù)庫(kù)");}
}

上面的異常方法和備選方法的實(shí)現(xiàn)的效果理論上一樣,但是捕獲異常的容易因?yàn)檠舆t和其它情況崩掉,備選方案一直都可以使用

6、在啟動(dòng)類上開(kāi)啟對(duì)熔斷的支持@EnableCircuitBreaker

在這里插入圖片描述

@SpringBootApplication
@EnableEurekaClient // EnableEurekaClient 客戶端的啟動(dòng)類,在服務(wù)啟動(dòng)后自動(dòng)向注冊(cè)中心注冊(cè)服務(wù)
@EnableDiscoveryClient // 服務(wù)發(fā)現(xiàn)~
@EnableCircuitBreaker // 添加對(duì)熔斷的支持注解
public class HystrixDeptProvider_8001 {public static void main(String[] args) {SpringApplication.run(HystrixDeptProvider_8001.class,args);}
}

7、測(cè)試1:

在這里插入圖片描述

熔斷機(jī)制的備選方案

在這里插入圖片描述

8、將之前的自定義負(fù)載均衡的算法改成輪詢算法,再測(cè)試

在這里插入圖片描述

同時(shí)測(cè)試在不使用hystrix的時(shí)候,出現(xiàn)崩掉的情況

在這里插入圖片描述

熔斷機(jī)制就是為了預(yù)防這種情況,異常拋出有延遲

在這里插入圖片描述

9、修改服務(wù)IP地址

在這里插入圖片描述

**prefer-ip-address: true: **

在這里插入圖片描述

因此,為了避免因某個(gè)微服務(wù)后臺(tái)出現(xiàn)異?;蝈e(cuò)誤而導(dǎo)致整個(gè)應(yīng)用或網(wǎng)頁(yè)報(bào)錯(cuò),使用熔斷是必要的

8.5 服務(wù)降級(jí)(客戶端)

1.什么是服務(wù)降級(jí)?

服務(wù)降級(jí)是指 當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)實(shí)際業(yè)務(wù)情況及流量,對(duì)一些服務(wù)和頁(yè)面有策略的不處理,或換種簡(jiǎn)單的方式處理,從而釋放服務(wù)器資源以保證核心業(yè)務(wù)正常運(yùn)作或高效運(yùn)作。說(shuō)白了,**就是盡可能的把系統(tǒng)資源讓給優(yōu)先級(jí)高的服務(wù)**。

**資源有限,而請(qǐng)求是無(wú)限的。**如果在并發(fā)高峰期,不做服務(wù)降級(jí)處理,一方面肯定會(huì)影響整體服務(wù)的性能,嚴(yán)重的話可能會(huì)導(dǎo)致宕機(jī)某些重要的服務(wù)不可用。所以,一般在高峰期,為了保證核心功能服務(wù)的可用性,都要對(duì)某些服務(wù)降級(jí)處理。比如當(dāng)雙11活動(dòng)時(shí),把交易無(wú)關(guān)的服務(wù)統(tǒng)統(tǒng)降級(jí),如查看螞蟻深林,查看歷史訂單等等。

服務(wù)降級(jí)主要用于什么場(chǎng)景呢?當(dāng)整個(gè)微服務(wù)架構(gòu)整體的負(fù)載超出了預(yù)設(shè)的上限閾值或即將到來(lái)的流量預(yù)計(jì)將會(huì)超過(guò)預(yù)設(shè)的閾值時(shí),為了保證重要或基本的服務(wù)能正常運(yùn)行,可以將一些 不重要 或 不緊急 的服務(wù)或任務(wù)進(jìn)行服務(wù)的 延遲使用 或 暫停使用。

降級(jí)的方式可以根據(jù)業(yè)務(wù)來(lái),可以延遲服務(wù),比如延遲給用戶增加積分,只是放到一個(gè)緩存中,等服務(wù)平穩(wěn)之后再執(zhí)行 ;或者在粒度范圍內(nèi)關(guān)閉服務(wù),比如關(guān)閉相關(guān)文章的推薦。

在這里插入圖片描述

由上圖可得,當(dāng)某一時(shí)間內(nèi)服務(wù)A的訪問(wèn)量暴增,而B(niǎo)和C的訪問(wèn)量較少,為了緩解A服務(wù)的壓力,這時(shí)候需要B和C暫時(shí)關(guān)閉一些服務(wù)功能,去承擔(dān)A的部分服務(wù),從而為A分擔(dān)壓力,叫做服務(wù)降級(jí)

2.服務(wù)降級(jí)需要考慮的問(wèn)題
  • 1)那些服務(wù)是核心服務(wù),哪些服務(wù)是非核心服務(wù)
  • 2)那些服務(wù)可以支持降級(jí),那些服務(wù)不能支持降級(jí),降級(jí)策略是什么
  • 3)除服務(wù)降級(jí)之外是否存在更復(fù)雜的業(yè)務(wù)放通場(chǎng)景,策略是什么?
3.自動(dòng)降級(jí)分類

1)超時(shí)降級(jí):主要配置好超時(shí)時(shí)間和超時(shí)重試次數(shù)和機(jī)制,并使用異步機(jī)制探測(cè)回復(fù)情況

2)失敗次數(shù)降級(jí):主要是一些不穩(wěn)定的api,當(dāng)失敗調(diào)用次數(shù)達(dá)到一定閥值自動(dòng)降級(jí),同樣要使用異步機(jī)制探測(cè)回復(fù)情況

3)故障降級(jí):比如要調(diào)用的遠(yuǎn)程服務(wù)掛掉了(網(wǎng)絡(luò)故障、DNS故障、http服務(wù)返回錯(cuò)誤的狀態(tài)碼、rpc服務(wù)拋出異常),則可以直接降級(jí)。降級(jí)后的處理方案有:默認(rèn)值(比如庫(kù)存服務(wù)掛了,返回默認(rèn)現(xiàn)貨)、兜底數(shù)據(jù)(比如廣告掛了,返回提前準(zhǔn)備好的一些靜態(tài)頁(yè)面)、緩存(之前暫存的一些緩存數(shù)據(jù))

4)限流降級(jí):秒殺或者搶購(gòu)一些限購(gòu)商品時(shí),此時(shí)可能會(huì)因?yàn)樵L問(wèn)量太大而導(dǎo)致系統(tǒng)崩潰,此時(shí)會(huì)使用限流來(lái)進(jìn)行限制訪問(wèn)量,當(dāng)達(dá)到限流閥值,后續(xù)請(qǐng)求會(huì)被降級(jí);降級(jí)后的處理方案可以是:排隊(duì)頁(yè)面(將用戶導(dǎo)流到排隊(duì)頁(yè)面等一會(huì)重試)、無(wú)貨(直接告知用戶沒(méi)貨了)、錯(cuò)誤頁(yè)(如活動(dòng)太火爆了,稍后重試)。

4.入門案例

(1)在springcloud-api模塊下的service包中新建降級(jí)配置類DeptClientServiceFallBackFactory.java

在這里插入圖片描述

@Component
public class DeptClientServiceFallBackFactory implements FallbackFactory {@Overridepublic DeptClientService create(Throwable cause) {return new DeptClientService() {@Overridepublic Dept queryById(Long id) {return new Dept().setDeptno(id).setDname("id=>" + id + "沒(méi)有對(duì)應(yīng)的信息,客戶端提供了降級(jí)的信息,這個(gè)服務(wù)現(xiàn)在已經(jīng)被關(guān)閉").setDb_source("沒(méi)有數(shù)據(jù)~");}@Overridepublic List<Dept> queryAll() {return null;}@Overridepublic Boolean addDept(Dept dept) {return false;}};}
}

(2)分析注解FeignClient的源碼可知

在這里插入圖片描述

設(shè)置一些屬性值就可以了

(3) 在DeptClientService中指定降級(jí)配置類DeptClientServiceFallBackFactory

在這里插入圖片描述

(4) 在springcloud-consumer-dept-feign模塊中開(kāi)啟降級(jí):

參照導(dǎo)入的包名

在這里插入圖片描述

設(shè)置降級(jí)

在這里插入圖片描述

server:port: 80# Eureka配置
eureka:client:register-with-eureka: false # 不向 Eureka注冊(cè)自己service-url: # 從三個(gè)注冊(cè)中心中隨機(jī)取一個(gè)去訪問(wèn)defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/# 開(kāi)啟降級(jí)feign.hystrix
feign:hystrix:enabled: true

(5)測(cè)試效果:

先開(kāi)啟服務(wù)注冊(cè)中心7001、7002Eureka,接著開(kāi)啟服務(wù)提供者8001,再開(kāi)啟服務(wù)消費(fèi)者Feign,可以正常訪問(wèn)

當(dāng)關(guān)閉服務(wù)提供者8001,即:服務(wù)關(guān)閉了后,再訪問(wèn)服務(wù)器請(qǐng)求服務(wù),服務(wù)器已經(jīng)無(wú)法訪問(wèn),但是客戶端設(shè)置的Feign提供的服務(wù)降級(jí)功能,會(huì)返回客戶端的消息:服務(wù)器無(wú)法調(diào)用了服務(wù)了

在這里插入圖片描述

8.6 服務(wù)熔斷和降級(jí)的區(qū)別

在這里插入圖片描述

  • 服務(wù)熔斷—>服務(wù)端某個(gè)服務(wù)超時(shí)或異常,引起熔斷~,類似于保險(xiǎn)絲(自我熔斷)
  • 服務(wù)降級(jí)—>客戶端從整體網(wǎng)站請(qǐng)求負(fù)載考慮,當(dāng)某個(gè)服務(wù)熔斷或者關(guān)閉之后,服務(wù)將不再被調(diào)用,此時(shí)在客戶端,我們可以準(zhǔn)備一個(gè) FallBackFactory ,返回一個(gè)默認(rèn)的值(缺省值)。會(huì)導(dǎo)致整體的服務(wù)下降,但是好歹能用,比直接掛掉強(qiáng)。
  • ①觸發(fā)原因不太一樣,服務(wù)熔斷一般是某個(gè)服務(wù)(下游服務(wù))故障引起,而服務(wù)降級(jí)一般是從整體負(fù)荷考慮;②管理目標(biāo)的層次不太一樣,熔斷其實(shí)是一個(gè)框架級(jí)的處理,每個(gè)微服務(wù)都需要(無(wú)層級(jí)之分),而降級(jí)一般需要對(duì)業(yè)務(wù)有層級(jí)之分(比如降級(jí)一般是從最外圍服務(wù)開(kāi)始)
  • ③實(shí)現(xiàn)方式不太一樣,服務(wù)降級(jí)具有代碼侵入性(由控制器完成/或自動(dòng)降級(jí)),熔斷一般稱為自我熔斷。

熔斷,降級(jí),限流

限流:限制并發(fā)的請(qǐng)求訪問(wèn)量,超過(guò)閾值則拒絕;

降級(jí):服務(wù)分優(yōu)先級(jí),犧牲非核心服務(wù)(不可用),保證核心服務(wù)穩(wěn)定;從整體負(fù)荷考慮;

熔斷:依賴的下游服務(wù)故障觸發(fā)熔斷,避免引發(fā)本系統(tǒng)崩潰;系統(tǒng)自動(dòng)執(zhí)行和恢復(fù)

8.7 Dashboard 流監(jiān)控

新建springcloud-consumer-hystrix-dashboard模塊

1.添加依賴

在這里插入圖片描述

在這里插入圖片描述

除了和80的POM文件的依賴一樣,還需要增加 hystrix 和 hystrix -dashboard 的依賴,同時(shí)3個(gè)服務(wù)提供者8001、8002、8003都需要添加完善監(jiān)控的actuator依賴

<!--Hystrix依賴-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix</artifactId><version>1.4.6.RELEASE</version>
</dependency>
<!--dashboard依賴-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix-dashboard</artifactId><version>1.4.6.RELEASE</version>
</dependency>
<!--Ribbon-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId><version>1.4.6.RELEASE</version>
</dependency>
<!--Eureka-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId><version>1.4.6.RELEASE</version>
</dependency>
<!--實(shí)體類+web-->
<dependency><groupId>com.haust</groupId><artifactId>springcloud-api</artifactId><version>1.0-SNAPSHOT</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--熱部署-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId>
</dependency>

2.配置springcloud-consumer-hystrix-dashboard的端口

在這里插入圖片描述

3.主啟動(dòng)類

開(kāi)啟監(jiān)控

在這里插入圖片描述

@SpringBootApplication
// 開(kāi)啟Dashboard
@EnableHystrixDashboard
public class DeptConsumerDashboard_9001 {public static void main(String[] args) {SpringApplication.run(DeptConsumerDashboard_9001.class,args);}
}

4.測(cè)試:先啟動(dòng)9001的, 訪問(wèn):http://localhost:9001/hystrix

在這里插入圖片描述

5. 給springcloud-provider-dept-hystrix-8001模塊下的主啟動(dòng)類添加如下代碼,添加監(jiān)控

在這里插入圖片描述

@SpringBootApplication
@EnableEurekaClient //EnableEurekaClient 客戶端的啟動(dòng)類,在服務(wù)啟動(dòng)后自動(dòng)向注冊(cè)中心注冊(cè)服務(wù)
public class DeptProvider_8001 {public static void main(String[] args) {SpringApplication.run(DeptProvider_8001.class,args);}//增加一個(gè) Servlet@Beanpublic ServletRegistrationBean hystrixMetricsStreamServlet(){ServletRegistrationBean registrationBean = new ServletRegistrationBean(new HystrixMetricsStreamServlet());//訪問(wèn)該頁(yè)面就是監(jiān)控頁(yè)面registrationBean.addUrlMappings("/actuator/hystrix.stream");return registrationBean;}
}

6.再次啟動(dòng)測(cè)試

先啟動(dòng)7001–>hystrix-8001–>dashboard9001

在這里插入圖片描述

訪問(wèn):localhost:8001/actuator/hystrix.stream

在這里插入圖片描述

輸入所要監(jiān)控服務(wù)的信息,進(jìn)行監(jiān)控,效果如圖:

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

本質(zhì)上監(jiān)控請(qǐng)求的信息

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

SpringCloud-Hystrix:服務(wù)熔斷與服務(wù)降級(jí) 到此完結(jié),筆者歸納、創(chuàng)作不易,大佬們給個(gè)3連再起飛吧

http://www.risenshineclean.com/news/469.html

相關(guān)文章:

  • 我想出租做房 請(qǐng)問(wèn)哪個(gè)網(wǎng)站好些/手機(jī)網(wǎng)站建設(shè)價(jià)格
  • 鄭州 網(wǎng)站報(bào)價(jià)/廣告推廣代運(yùn)營(yíng)公司
  • 一元云購(gòu)網(wǎng)站怎么做/各平臺(tái)推廣費(fèi)用
  • 云主機(jī)可以做多少網(wǎng)站空間/短信廣告投放
  • 網(wǎng)站搭建心得體會(huì)/網(wǎng)站seo收錄
  • 國(guó)外哪些做問(wèn)卷賺錢的網(wǎng)站/做網(wǎng)絡(luò)銷售如何找客戶
  • 常德規(guī)劃建設(shè)局網(wǎng)站/深圳做推廣哪家比較好
  • dede wap網(wǎng)站模板/做網(wǎng)站推廣好做嗎
  • 設(shè)計(jì)個(gè)網(wǎng)站要多少錢/關(guān)鍵詞搜索數(shù)據(jù)
  • 婚戀網(wǎng)站怎么做/西地那非片的功能主治
  • 政府網(wǎng)站欄目設(shè)計(jì)原則/網(wǎng)絡(luò)軟文
  • app設(shè)計(jì)網(wǎng)站模板/google優(yōu)化師
  • 做網(wǎng)站月收入多少/百度網(wǎng)站推廣
  • 如何建立和設(shè)計(jì)公司網(wǎng)站作文/百度快速seo優(yōu)化
  • 邢臺(tái)路橋建設(shè)總公司沒(méi)有網(wǎng)站嗎/宣傳軟文范例
  • 商城網(wǎng)站建設(shè)視頻教程/關(guān)鍵詞排名優(yōu)化教程
  • 網(wǎng)站seo做哪些工作/seo引擎優(yōu)化培訓(xùn)
  • 廣州樂(lè)地網(wǎng)站建設(shè)/網(wǎng)絡(luò)營(yíng)銷成功的案例及其原因
  • ppt模板制作教程步驟/360優(yōu)化大師舊版
  • 貴州省住房和城鄉(xiāng)建設(shè)管理委員會(huì)網(wǎng)站/成都seo培
  • 無(wú)錫網(wǎng)站建設(shè)企業(yè)排名/友情鏈接交易
  • wordpress 目錄改變/網(wǎng)絡(luò)優(yōu)化師
  • 福州建設(shè)委員會(huì)網(wǎng)站/福建網(wǎng)站建設(shè)制作
  • 服務(wù)器做網(wǎng)站空間/網(wǎng)店培訓(xùn)騙局
  • 網(wǎng)頁(yè)游戲網(wǎng)站建設(shè)/汕頭seo優(yōu)化項(xiàng)目
  • 鄭州網(wǎng)站建設(shè)哪家公司好/新品上市的營(yíng)銷方案
  • 網(wǎng)站上的銷售怎么做的/百度網(wǎng)盤私人資源鏈接
  • 做網(wǎng)站掛靠服務(wù)器什么好/類聚seo
  • 百度網(wǎng)址大全導(dǎo)航首頁(yè)/九江seo公司
  • 企業(yè)網(wǎng)站模板免費(fèi)版/百度一下網(wǎng)頁(yè)版瀏覽器