<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] ## 一、分布式鎖 >[warning] 不配置 `zlt.lock.lockerType` 參數,則默認為 `REDIS` ### 1.1. 編碼方式 ```java /** * 代替jdk的synchronized和Lock */ @Autowired private DistributedLock locker; ? public void test() { try?( ????????ZLock?lock?=?locker.tryLock("lockKey",?10,?TimeUnit.SECONDS); ????????)?{ ? ? ? ?if (lock != null) { ? ? ? ? ? ?// 此處是業務代碼 ? ? ? } else { ? ? ? ? ? ?throw new LockException("鎖等待超時"); ? ? ? } ? } } ``` ### 1.2. 注解方式 ```java /** * 等同于 locker.lock("test") */ @Lock(key = "test") public void test() {} /** * 等同于 locker.tryLock("test", 10, TimeUnit.SECONDS) */ @Lock(key = "test", waitTime = 10) public void test2() {} ``` >[info] 注解加在類上則該類所有方法都會自動加鎖 ### 1.3. Redis鎖 依賴: ```xml <dependency> <groupId>com.zlt</groupId> <artifactId>zlt-redis-spring-boot-starter</artifactId> </dependency> ``` 配置: ```yml zlt: lock: lockerType: REDIS ``` ### 1.4. Zookeeper鎖 依賴: ```xml <dependency> <groupId>com.zlt</groupId> <artifactId>zlt-zookeeper-spring-boot-starter</artifactId> </dependency> ``` 配置: ```yml zlt: lock: lockerType: ZK ``` &nbsp; ## 二、分布式id生成器 ```java //生成long型id long id = IdGenerator.getId(); //生成String型id String id = IdGenerator.getIdStr(); ``` &nbsp; ## 三、分布式事務 ### 3.1. 同步強一致性(不推薦) 基于`tx-lcn`應用例子可看`zlt-demo\txlcn-demo`工程 ### 3.2. 同步最終一致性 基于`seata`應用例子可看`zlt-demo\seata-demo`工程 ### 3.3. 異步最終一致性 基于`MQ`應用例子可看`zlt-demo\rocketmq-demo\rocketmq-transactional`工程 &nbsp; ## 四、分庫分表sharding-sphere 應用例子可看`zlt-demo\sharding-jdbc-demo`工程 &nbsp; ## 五、消息隊列 ### 5.1. 集成Spring-Cloud-Stream+RocketMQ 應用例子可看`zlt-demo\rocketmq-demo\rocketmq-produce`和`zlt-demo\rocketmq-demo\rocketmq-consume`工程 &nbsp; ## 六、搜索中心 ### 6.1. 啟動好搜索中心服務端 參考 [擴展模塊](http://www.hmoore.net/zlt2000/microservices-platform/919420) 中的`搜索中心`章節 ### 6.2. 依賴`search-client`工程 需要搜索的服務需要依賴該工程 ### 6.3. 添加@EnableSearchClient注解 需要在啟動類或者配置類中添加該注解,開啟搜索中心功能 ### 6.4. 使用通用搜索 注入`com.central.search.client.service.IQueryService` **可參考SysUserController類中用戶搜索的寫法** ```java @GetMapping("/users/search") public PageResult<JSONObject> search(SearchDto searchDto) { searchDto.setIsHighlighter(true); searchDto.setSortCol("createTime"); return queryService.strQuery("sys_user", searchDto, SEARCH_LOGIC_DEL_DTO); } ``` &nbsp; ## 七、網關zuul動態路由 開啟功能需要,修改`zuul`的配置文件 ```properties zlt.gateway.dynamicRoute.enabled=true ``` 詳情查看:[Spring Cloud Zuul的動態路由怎樣做?集成Nacos實現很簡單](https://mp.weixin.qq.com/s?__biz=MjM5OTI2NDMwMg==&mid=2247483694&idx=1&sn=4bd9c5865f18f25dd3f38e1f0a9e8701&chksm=a73f686f9048e17903787b98dda5d5c74bb165c27b44a44887e23b6f534d3a54c3b6a13f1d3b&token=1502955171&lang=zh_CN#rd) &nbsp; ## 八、網關sc-gateway動態路由 開啟功能需要,修改`sc-gateway`的配置文件 ```properties zlt.gateway.dynamicRoute.enabled=true ``` 詳情查看:[Spring Cloud Gateway的動態路由怎樣做?集成Nacos實現很簡單](https://mp.weixin.qq.com/s?__biz=MjM5OTI2NDMwMg==&mid=2247483769&idx=1&sn=2b96bf89ceada2af9fe0da9a3d3b05e1&chksm=a73f68389048e12ea2e67117de564db7e775fa919f7ba387d52171d903929aca2490e2b76ddb&token=1628962546&lang=zh_CN#rd) &nbsp; ## 九、如何解決開發環境的服務沖突和實例亂竄 開啟功能需要每個服務都添加以下配置,可以直接修改`zlt-config`下的`application-dev.properties`配置文件就可以全局生效 ```properties zlt.ribbon.isolation.enabled=true ``` 詳情查看: * [Spring Cloud開發人員如何解決服務沖突和實例亂竄?](https://mp.weixin.qq.com/s?__biz=MjM5OTI2NDMwMg==&mid=2247483710&idx=1&sn=1a75206924bb4f94679318da2a61db1a&chksm=a73f687f9048e1693ad03bdf23cf7fbe1f6f1d4d5c0620812e6e5ac64d924b36ce554fbe72de&token=15037532&lang=zh_CN#rd) * [Spring Cloud開發人員如何解決服務沖突和實例亂竄?(IP實現方案)](https://mp.weixin.qq.com/s?__biz=MjM5OTI2NDMwMg==&mid=2247483717&idx=1&sn=9284d0f63a7f63d959d5fcfcd5fcc095&chksm=a73f68049048e1125482ec0cfff1066cad9d62b6f92aed2587957d39098a113df4c2a603a1e3&token=1758001159&lang=zh_CN#rd)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看