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

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

云南做網(wǎng)站要多少錢百度競價(jià)排名

云南做網(wǎng)站要多少錢,百度競價(jià)排名,制作網(wǎng)站教程視頻,網(wǎng)站建設(shè) 合同 發(fā)票文章目錄 1. 策略模式怎么控制策略的選取1.1 追問:如果有100種策略呢?1.2 追問:什么情況下初始化Map 2. 什么是索引?什么時(shí)候用索引?2.1 追問:怎么判斷系統(tǒng)什么時(shí)候用量比較少2.2 追問:如何實(shí)時(shí)…

文章目錄

      • 1. 策略模式怎么控制策略的選取
        • 1.1 追問:如果有100種策略呢?
        • 1.2 追問:什么情況下初始化Map
      • 2. 什么是索引?什么時(shí)候用索引?
        • 2.1 追問:怎么判斷系統(tǒng)什么時(shí)候用量比較少
        • 2.2 追問:如何實(shí)時(shí)的查看日志
      • 3. 怎么實(shí)現(xiàn)發(fā)送短信功能
        • 3.1 追問:怎么防止短信被刷
        • 3.2 追問:怎么實(shí)現(xiàn)限制短信發(fā)送頻率
      • 4. 什么是AOP?怎么在項(xiàng)目中運(yùn)用AOP
        • 4.1 追問:Spring AOP是怎么實(shí)現(xiàn)的
        • 4.2 追問:Spring AOP是基于哪一種動(dòng)態(tài)代理
      • 5. MySQL讀寫分離怎么實(shí)現(xiàn)
        • 5.1 追問:主從節(jié)點(diǎn)是如何同步的
        • 5.2 追問:有幾種同步模式,分別介紹一下
      • 6. 介紹一下緩存雪崩
      • 7. redis緩存和數(shù)據(jù)庫不一致的問題
        • 7.1 追問:為什么不適用延遲雙刪
      • 8. RabbitMQ重復(fù)消費(fèi)問題
        • 8.1 追問:如何保證消息不丟失
        • 8.2 追問:多個(gè)消費(fèi)者消費(fèi)同一個(gè)消息如何實(shí)現(xiàn)
        • 8.3 追問:RabbitMQ有哪幾種工作模型
        • 8.4 追問:多個(gè)消費(fèi)者,如何保證只有一個(gè)消費(fèi)者去消費(fèi)一個(gè)消息(生產(chǎn)者消息來了是直接給所有的消費(fèi)者的)

1. 策略模式怎么控制策略的選取

答:
if else

1.1 追問:如果有100種策略呢?

答:
使用Map來做字段和策略的映射

1.2 追問:什么情況下初始化Map

答:

  1. 在項(xiàng)目運(yùn)行的時(shí)候去初始化Map,相當(dāng)于提前加載
  2. 如果策略很多,在用戶使用的時(shí)候再去加載,相當(dāng)于懶加載,之后需要再次使用的時(shí)候去讀取初始化的策略就可以了

2. 什么是索引?什么時(shí)候用索引?

答:
索引在MySQL中也叫做“鍵”,它是一個(gè)特殊的文件,它保存著數(shù)據(jù)表里所有記錄的位置信息,更通俗的來說,數(shù)據(jù)庫索引好比是一本書前面的目錄,能加快數(shù)據(jù)庫的查詢速度。
當(dāng)數(shù)據(jù)庫中數(shù)據(jù)量很大時(shí),查找數(shù)據(jù)會(huì)變得很慢,我們就可以通過索引來提高數(shù)據(jù)庫的查詢效率

2.1 追問:怎么判斷系統(tǒng)什么時(shí)候用量比較少

答:
看日志、看負(fù)載、看CPU、看接口調(diào)用量

2.2 追問:如何實(shí)時(shí)的查看日志

答:
tail -f

3. 怎么實(shí)現(xiàn)發(fā)送短信功能

答:
第三方運(yùn)營商服務(wù),引入對應(yīng)的包,填寫對應(yīng)的參數(shù)(一般都有ak,sk),更具示例代碼編寫自己的邏輯就可以

3.1 追問:怎么防止短信被刷

答:
驗(yàn)證碼+限制短信發(fā)送頻率

3.2 追問:怎么實(shí)現(xiàn)限制短信發(fā)送頻率

答:redis

4. 什么是AOP?怎么在項(xiàng)目中運(yùn)用AOP

4.1 追問:Spring AOP是怎么實(shí)現(xiàn)的
4.2 追問:Spring AOP是基于哪一種動(dòng)態(tài)代理

詳情見文章:Spring AOP(概念、實(shí)戰(zhàn)、原理)

5. MySQL讀寫分離怎么實(shí)現(xiàn)

答:
定義主服務(wù)器和從服務(wù)器,主服務(wù)器負(fù)責(zé)寫數(shù)據(jù),從服務(wù)器只負(fù)責(zé)讀數(shù)據(jù)

5.1 追問:主從節(jié)點(diǎn)是如何同步的

答:
在這里插入圖片描述

5.2 追問:有幾種同步模式,分別介紹一下

有兩種同步模式
異步同步模式
異步同步模式是MySQL默認(rèn)的同步策略模式,客戶端向服務(wù)端發(fā)送請求后,master處理完之后,直接返回客戶端結(jié)果,接著在將對應(yīng)的log信息發(fā)送給slave節(jié)點(diǎn)
半同步模式

  1. master處理完自身操作,將對應(yīng)的binary log 發(fā)送從服務(wù)器,從服務(wù)器通過io thread線程寫入到relay log中,然后將結(jié)果返回給master,master在收到salve的響應(yīng)之后返回給客戶端
  2. 半同步模式是基于異步復(fù)制的基礎(chǔ)上進(jìn)行的,無非是半同步模式需要安裝異步插件完成

6. 介紹一下緩存雪崩

原因:同一時(shí)間段key大量過期
解決:
4. 設(shè)置不同過期時(shí)間(一個(gè)固定值,一個(gè)隨機(jī)值)
5. 多級緩存
6. 降級處理(最簡單的拋出異常,也可以返回一些簡化的內(nèi)容或者靜態(tài)頁面)

7. redis緩存和數(shù)據(jù)庫不一致的問題

采用redisson實(shí)現(xiàn)的讀寫鎖,在讀的時(shí)候添加共享鎖,可以保證讀讀不互斥,讀寫互斥。當(dāng)我們更新數(shù)據(jù)的時(shí)候,添加排他鎖,它是讀讀,讀寫都互斥,這樣就能保證在寫數(shù)據(jù)的同時(shí)是不會(huì)讓其他線程讀數(shù)據(jù)的,避免了臟數(shù)據(jù)。這里面需要注意的是讀方法和寫方法上需要使用同一鎖才行。
注意:這種情況只有必須保證強(qiáng)一致性的時(shí)候才會(huì)使用

開發(fā)中大部分是允許短暫的不一致的,這個(gè)時(shí)候采用異步的方案
● 使用MQ中間件,更新數(shù)據(jù)之后,通知緩存刪除
● 利用canal中間件,不需要修改業(yè)務(wù)代碼,偽裝為MySQL的一個(gè)從節(jié)點(diǎn),canal通過讀取binlog數(shù)據(jù)更新緩存

7.1 追問:為什么不適用延遲雙刪

延遲雙刪,如果是寫操作,我們先把緩存中的數(shù)據(jù)刪除,然后更新數(shù)據(jù)庫,最后再延時(shí)刪除緩存中的數(shù)據(jù),其中這個(gè)延時(shí)多久不太好確定,在演示的過程中可能會(huì)出現(xiàn)臟數(shù)據(jù),并不能保證強(qiáng)一致性,所以沒有采用

8. RabbitMQ重復(fù)消費(fèi)問題

  1. 給每一個(gè)消息攜帶一個(gè)全局唯一id
    ● 消費(fèi)者監(jiān)聽到消息后獲取id,先去查詢這個(gè)id是否存在
    ● 如果不存在,則正常消費(fèi)消息,并將消息的id存入數(shù)據(jù)庫或者redis中
    ● 如果存在則丟棄此消息
  2. 分布式鎖
    ● 以唯一的消息id為鍵加鎖,消費(fèi)過后就上鎖,下次消息再過來就判斷
8.1 追問:如何保證消息不丟失

第一個(gè)是開啟生產(chǎn)者確認(rèn)機(jī)制,確保生產(chǎn)者的消息能到達(dá)隊(duì)列,如果報(bào)錯(cuò)可 以先記錄到日志中,再去修復(fù)數(shù)據(jù)
詳細(xì)的:
RabbitMQ提供了publisher confirm機(jī)制來避免消息發(fā)送到MQ過程中丟失。消息發(fā)送到MQ以后,會(huì)返回一個(gè)結(jié)果給發(fā)送者,表示消息是否處理成功
如果到達(dá)消費(fèi)者,則會(huì)返回publish-confirm ack,如果到交換機(jī)失敗,則返回publish-confirm nack,如果到隊(duì)列失敗了,則返回publish-return ack

第二個(gè)是開啟持久化功能,確保消息未消費(fèi)前在隊(duì)列中不會(huì)丟失,其中的交換機(jī)、隊(duì)列、和消息都要做持久化
詳細(xì)的:

第三個(gè)是開啟消費(fèi)者確認(rèn)機(jī)制
1. auto
自動(dòng)ACK。Spring AMQP提供了一種自動(dòng)的消息確認(rèn)機(jī)制。它利用AOP(面向切面編程)對消息處理邏輯做了環(huán)繞增強(qiáng)。當(dāng)業(yè)務(wù)正常執(zhí)行時(shí),Spring AMQP會(huì)自動(dòng)返回ACK。當(dāng)業(yè)務(wù)出現(xiàn)異常時(shí),根據(jù)異常判斷返回不同結(jié)果:業(yè)務(wù)異常,自動(dòng)返回NACK;消息處理或校驗(yàn)異常,自動(dòng)返回REJECT。

2. manual
手動(dòng)ACK。消費(fèi)者接收到消息后需要手動(dòng)發(fā)送確認(rèn)給發(fā)送者,發(fā)送者才會(huì)繼續(xù)發(fā)送下一條消息。在這種模式下,如果消費(fèi)者處理消息失敗,可以手動(dòng)發(fā)送NACK給發(fā)送者,告訴發(fā)送者這條消息處理失敗,以便發(fā)送者重新發(fā)送消息。這種模式可以保證消息的可靠性,但需要消費(fèi)者手動(dòng)處理確認(rèn)和NACK。
Channel.basicAck()方法

channel.basicAck(deliveryTag,true);

肯定確認(rèn),消費(fèi)成功,可以刪除
Channel.basicreject()方法

channel.basicReject(deliveryTag, true);

拒絕deliveryTag對應(yīng)的消息,第二個(gè)參數(shù)是否requeue,true則重新入隊(duì)列,否則丟棄或者進(jìn)入死信隊(duì)列。
該方法reject后,該消費(fèi)者還是會(huì)消費(fèi)到該條被reject的消息。
Channel.basicnack()方法

channel.basicNack(deliveryTag, false, true);

為不確認(rèn)deliveryTag對應(yīng)的消息,第二個(gè)參數(shù)是否應(yīng)用于多消息,第三個(gè)參數(shù)是否requeue
與basic.reject區(qū)別就是同時(shí)支持多個(gè)消息,可以nack該消費(fèi)者先前接收未ack的所有消息。nack后的消息也會(huì)被自己消費(fèi)到。
Channel.basicrecover()方法

channel.basicRecover(true);

是否恢復(fù)消息到隊(duì)列,參數(shù)是是否requeue,true則重新入隊(duì)列,并且盡可能的將之前recover的消息投遞給其他消費(fèi)者消費(fèi),而不是自己再次消費(fèi)。false則消息會(huì)重新被投遞給自己。

8.2 追問:多個(gè)消費(fèi)者消費(fèi)同一個(gè)消息如何實(shí)現(xiàn)

發(fā)布訂閱模式

8.3 追問:RabbitMQ有哪幾種工作模型

一、簡單模式
簡單模式是最基本的消息隊(duì)列模式,適用于一個(gè)生產(chǎn)者和一個(gè)消費(fèi)者的場景。生產(chǎn)者發(fā)送消息到隊(duì)列,消費(fèi)者從隊(duì)列中獲取消息進(jìn)行處理。這種模式的優(yōu)點(diǎn)是簡單易用,但缺點(diǎn)是消息只能被一個(gè)消費(fèi)者消費(fèi),且沒有消息的確認(rèn)機(jī)制,可能會(huì)出現(xiàn)消息丟失的情況。
二、工作隊(duì)列模式
工作隊(duì)列模式適用于多個(gè)消費(fèi)者共同處理一個(gè)任務(wù)的情況。生產(chǎn)者將任務(wù)發(fā)布到隊(duì)列中,多個(gè)消費(fèi)者監(jiān)聽同一個(gè)隊(duì)列,通過競爭獲取任務(wù)進(jìn)行處理。這種模式的優(yōu)點(diǎn)是能夠充分利用多個(gè)處理器的計(jì)算能力,提高系統(tǒng)的吞吐量。但缺點(diǎn)是可能會(huì)導(dǎo)致多個(gè)消費(fèi)者同時(shí)處理同一個(gè)任務(wù),造成資源的浪費(fèi)。
三、發(fā)布訂閱模式
發(fā)布訂閱模式是一種廣播模式,適用于一對多消息傳遞的場景。生產(chǎn)者將消息發(fā)布到交換機(jī),交換機(jī)將消息轉(zhuǎn)發(fā)給所有綁定到該交換機(jī)的隊(duì)列,消費(fèi)者從隊(duì)列中獲取消息進(jìn)行處理。這種模式的優(yōu)點(diǎn)是能夠?qū)崿F(xiàn)一對多的消息傳遞,提高系統(tǒng)的擴(kuò)展性。但缺點(diǎn)是可能會(huì)導(dǎo)致消息的重復(fù)傳遞和消費(fèi)者的重復(fù)消費(fèi)。
四、路由模式
路由模式是一種更靈活的消息傳遞方式,適用于多個(gè)業(yè)務(wù)系統(tǒng)的集成。生產(chǎn)者將消息發(fā)送到交換機(jī),交換機(jī)根據(jù)routing key將消息路由到一個(gè)或多個(gè)隊(duì)列中,消費(fèi)者從隊(duì)列中獲取消息進(jìn)行處理。這種模式的優(yōu)點(diǎn)是能夠根據(jù)業(yè)務(wù)需求靈活地路由消息,提高系統(tǒng)的可擴(kuò)展性和靈活性。但缺點(diǎn)是需要合理地設(shè)計(jì)routing key以避免消息的丟失或重復(fù)傳遞。
五、通配符模式
通配符模式是一種匹配規(guī)則的消息傳遞方式,適用于多級菜單的場景。生產(chǎn)者將消息發(fā)送到交換機(jī),交換機(jī)根據(jù)通配符匹配規(guī)則將消息路由到對應(yīng)的隊(duì)列中,消費(fèi)者從隊(duì)列中獲取消息進(jìn)行處理。這種模式的優(yōu)點(diǎn)是能夠根據(jù)規(guī)則匹配到多個(gè)隊(duì)列,實(shí)現(xiàn)多級菜單的消息傳遞。但缺點(diǎn)是需要合理地設(shè)計(jì)通配符規(guī)則以避免消息的錯(cuò)漏或重復(fù)傳遞。
六、主題模式
主題模式是一種基于關(guān)鍵字訂閱的消息傳遞方式,適用于多級分類的場景。生產(chǎn)者將消息發(fā)布到主題交換機(jī),交換機(jī)將消息轉(zhuǎn)發(fā)給所有綁定到該主題交換機(jī)的隊(duì)列,消費(fèi)者從隊(duì)列中獲取消息進(jìn)行處理。這種模式的優(yōu)點(diǎn)是能夠根據(jù)關(guān)鍵字訂閱消息,實(shí)現(xiàn)多級分類的消息傳遞。但缺點(diǎn)是需要合理地設(shè)計(jì)主題和關(guān)鍵字以避免消息的錯(cuò)漏或重復(fù)傳遞。

8.4 追問:多個(gè)消費(fèi)者,如何保證只有一個(gè)消費(fèi)者去消費(fèi)一個(gè)消息(生產(chǎn)者消息來了是直接給所有的消費(fèi)者的)

默認(rèn)情況下,RabbitMq收到消息后,就向消費(fèi)者全部推送。但是如果rabbitmq隊(duì)列里消息過多,且消息的數(shù)量超過了消費(fèi)者處理能力, 就會(huì)導(dǎo)致客戶端超負(fù)荷崩潰。此時(shí)我們可以通過 prefetchCount 限制每個(gè)消費(fèi)者在收到下一個(gè)確認(rèn)回執(zhí)前一次可以最大接受多少條消息。即如果設(shè)置prefetchCount =1,RabbitMQ向這個(gè)消費(fèi)者發(fā)送一個(gè)消息后,再這個(gè)消息的消費(fèi)者對這個(gè)消息進(jìn)行ack之前,RabbitMQ不會(huì)向這個(gè)消費(fèi)者發(fā)送新的消息

 // 每個(gè)客戶端每次最后獲取N個(gè)消息
channel.basicQos(1);
http://www.risenshineclean.com/news/46626.html

相關(guān)文章:

  • 深圳租賃住房和建設(shè)局網(wǎng)站長春網(wǎng)站建設(shè)方案優(yōu)化
  • 電商公司做網(wǎng)站沈陽關(guān)鍵詞seo
  • 氧os哪個(gè)網(wǎng)站做的最好萬江專業(yè)網(wǎng)站快速排名
  • 網(wǎng)站的充值是怎么做的怎么可以讓百度快速收錄視頻
  • 新的網(wǎng)站平臺(tái)如何做地推百度關(guān)鍵詞工具在哪里
  • 青島城陽網(wǎng)站制作怎樣有效的做網(wǎng)上宣傳
  • 加盟類網(wǎng)站怎么做競價(jià)推廣賬戶競價(jià)托管費(fèi)用
  • 自個(gè)網(wǎng)站媒體軟文推廣平臺(tái)
  • wordpress+Apache升級seo深圳網(wǎng)絡(luò)推廣
  • wordpress安裝云服務(wù)器紹興網(wǎng)站快速排名優(yōu)化
  • 豐鎮(zhèn)網(wǎng)站建設(shè)福州百度推廣排名
  • 一個(gè)網(wǎng)絡(luò)空間如何做兩個(gè)網(wǎng)站百度關(guān)鍵詞推廣條件
  • 網(wǎng)站建設(shè)與微店網(wǎng)絡(luò)營銷推廣及優(yōu)化方案
  • 上海十大網(wǎng)站建電商網(wǎng)絡(luò)營銷
  • app網(wǎng)站開發(fā)成本seo推廣崗位職責(zé)
  • 房地產(chǎn)網(wǎng)站制作seo搜索引擎優(yōu)化
  • wordpress模板添加授權(quán)廣州網(wǎng)站排名優(yōu)化報(bào)價(jià)
  • 響應(yīng)式網(wǎng)頁設(shè)計(jì)最方便快速seo網(wǎng)站推廣計(jì)劃
  • 有哪些制作網(wǎng)站的公司嗎鹽酸達(dá)泊西汀片是治療什么的藥物
  • 視頻網(wǎng)站做視頻節(jié)目賺錢嗎推廣互聯(lián)網(wǎng)推廣
  • 做的好的中醫(yī)網(wǎng)站廣州新聞熱點(diǎn)事件
  • 電子通訊錄網(wǎng)站建設(shè)近日網(wǎng)站收錄查詢
  • 國外網(wǎng)站為什么不用備案軟件推廣接單平臺(tái)
  • 做網(wǎng)站應(yīng)該注意哪些方面臨沂seo推廣外包
  • 網(wǎng)站首頁被掛黑鏈百度網(wǎng)盤會(huì)員
  • 如何做好公司網(wǎng)站接推廣app任務(wù)的平臺(tái)
  • 學(xué)完ssm可以做哪些網(wǎng)站搜索引擎優(yōu)化的內(nèi)部優(yōu)化
  • wordpress圖片網(wǎng)站網(wǎng)站要怎么創(chuàng)建
  • 成都 商業(yè)網(wǎng)站建設(shè)app網(wǎng)絡(luò)推廣公司
  • 網(wǎng)站建設(shè) 樂視百度軟件中心下載安裝