欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shardingsphered 線程安全問題示例分析

 更新時間:2023年06月02日 10:48:54   作者:雨翔河  
這篇文章主要為大家介紹了shardingsphered 線程安全問題示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

shardingsphere

shardingsphere 版本 3.1.0 ,也是目前的最新的正式版,項目并發(fā)量很高很笨重(啟動較慢),且使用了按天分表策略,在使用 shardingsphere 的過程中發(fā)現(xiàn)其存在分表策略的線程安全問題,會導(dǎo)致分表策略沒有執(zhí)行,直接查詢的沒有分表策略的邏輯表。

原因:

io.shardingsphere.core.parsing.antlr.extractor.impl.FromWhereExtractor

實現(xiàn)類定義

public final class FromWhereExtractor implements OptionalSQLSegmentExtractor {
    private final TableNameExtractor tableNameExtractor = new TableNameExtractor();
    private PredicateExtractor predicateSegmentExtractor;
    ...
    public Optional<FromWhereSegment> extract(final ParserRuleContext ancestorNode, final ParserRuleContext rootNode) {
        ...
        predicateSegmentExtractor = new PredicateExtractor(result.getTableAliases());
        ...
    }
    ...

這個地方 predicateSegmentExtractor 是有線程安全問題的。

并發(fā)量高的時候,predicateSegmentExtractor 成為競爭資源。

現(xiàn)象分析

這導(dǎo)致的現(xiàn)象是:

應(yīng)用啟動后分表策略不起效果,且是隨機性的,假設(shè)有 20 個應(yīng)用節(jié)點,應(yīng)用重啟之后,其中會有一個或者少量節(jié)點會出現(xiàn)分表策略無效,查詢不到結(jié)果,再針對這個節(jié)點進行重啟就會恢復(fù)正常,隨機性極高。

不僅僅是我們遇到這個問題,有別的研發(fā)公司也遇到過這種問題:

https://github.com/apache/shardingsphere/issues/1967

以上就是shardingsphered 線程安全問題示例分析的詳細內(nèi)容,更多關(guān)于shardingsphered 線程安全的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一步步教你寫一個SpringMVC框架

    一步步教你寫一個SpringMVC框架

    現(xiàn)在主流的Web MVC框架除了Struts這個主力外,其次就是Spring MVC了,因此這也是作為一名程序員需要掌握的主流框架,這篇文章主要給大家介紹了關(guān)于如何一步步寫一個SpringMVC框架的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • MyBatis一對多嵌套查詢的完整實例

    MyBatis一對多嵌套查詢的完整實例

    這篇文章主要給大家介紹了關(guān)于MyBatis一對多嵌套查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • mybatis 延遲加載的深入理解

    mybatis 延遲加載的深入理解

    這篇文章主要介紹了mybatis 延遲加載的深入理解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • java如何實現(xiàn)圖片轉(zhuǎn)化為數(shù)據(jù)流

    java如何實現(xiàn)圖片轉(zhuǎn)化為數(shù)據(jù)流

    這篇文章主要介紹了java如何實現(xiàn)圖片轉(zhuǎn)化為數(shù)據(jù)流,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 關(guān)于jvm的垃圾回收器以及觸發(fā)full gc的場景

    關(guān)于jvm的垃圾回收器以及觸發(fā)full gc的場景

    這篇文章主要介紹了關(guān)于jvm的垃圾回收器以及觸發(fā)full gc的場景,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java中的StringBuilder()常見方法詳解

    Java中的StringBuilder()常見方法詳解

    StringBuilder是一個可變的字符序列,此類提供一個與 StringBuffer 兼容的 API,但不保證同步,這篇文章主要介紹了StringBuilder()常見方法,需要的朋友可以參考下
    2023-09-09
  • 一文讓你搞懂如何手寫一個redis分布式鎖

    一文讓你搞懂如何手寫一個redis分布式鎖

    既然要搞懂Redis分布式鎖,那肯定要有一個需要它的場景。高并發(fā)售票問題就是一個經(jīng)典案例。本文就來利用這個場景手寫一個redis分布式鎖,讓你徹底搞懂它
    2022-11-11
  • Java面試題沖刺第二十一天--JVM

    Java面試題沖刺第二十一天--JVM

    這篇文章主要為大家分享了最有價值的三道關(guān)于JVM的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java門禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計

    java門禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計

    這篇文章主要為大家詳細介紹了java門禁系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實例解析

    Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實例解析

    這篇文章主要介紹了Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實例解析的相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10

最新評論