<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一不小心沒忍住,發(fā)版了!

          共 2792字,需瀏覽 6分鐘

           ·

          2023-03-29 00:16

          感覺hades倉庫才新建沒多久,我一不小心沒忍住,卷了一個星期,就直接發(fā)版了。上次在群里簡單宣傳了下hades,但很多人還是不知道它是可以用來干什么的。

          代碼我寫得很快啊,但文檔似乎還沒來得及跟上,今天就先給大家補下hadesREADME吧。既然我都已經(jīng)發(fā)版了,那說明是可以接入的!

          這個季度的績效里可以多一行了:在xxx業(yè)務(wù)上接入Java規(guī)則引擎(hades),提高了開發(fā)效率

          hades 介紹

          項目背景:業(yè)務(wù)開發(fā)邏輯變更頻繁,一點小的修改都要發(fā)布系統(tǒng),靈活度不夠。對于一些非核心流程又頻繁改動的部分是否可以用動態(tài)腳本替代?

          核心功能:Java應(yīng)用無須發(fā)布上下線,即可動態(tài)變更業(yè)務(wù)邏輯

          hades 技術(shù)原理

          核心技術(shù):Groovy+分布式配置中心(apollo/nacos)

          da31e1c343fc41153b2b125bf08edf62.webp

          技術(shù)原理:將Groovy腳本寫在配置中心里,借助分布式配置中心監(jiān)聽配置功能,客戶端能實時發(fā)現(xiàn)Groovy腳本變更。hades規(guī)則引擎將Groovy腳本解析后,放入Spring IOC容器中供客戶端使用。

          hades 使用手冊

          1、引入maven依賴:

                
                
          <!--如果你用apollo,則引入該dependency-->
          <dependency>
          ????<groupId>io.github.ZhongFuCheng3y</groupId>
          ????<artifactId>hades-apollo-starter</artifactId>
          ????<version>1.0.2</version>
          </dependency>

          <!--如果你用apollo,則引入該dependency-->
          <dependency>
          ????<groupId>io.github.ZhongFuCheng3y</groupId>
          ????<artifactId>hades-nacos-starter</artifactId>
          ????<version>1.0.2</version>
          </dependency>

          2、在接入hades規(guī)則引擎的項目配置文件中(如:application.properties)填寫主配置的文件名

          nacos分布式配置中心示例:

                
                
          nacos.config.server-addr=austin.nacos:8848
          nacos.config.username=nacos
          nacos.config.password=nacos
          nacos.config.namespace=9537c674-f3a6-4203-b286-ef0c36bfacb2
          nacos.config.enabled=true

          # heades param you should write
          hades.main.config.enabled=true
          hades.main.config.file-name=hades
          hades.main.config.group-name=hades

          apollo分布式配置中心示例:

                
                
          app.id=austin
          apollo.bootstrap.enabled=true
          apollo.meta=austin-apollo

          # heades param you should write
          hades.main.config.enabled=true
          hades.main.config.file-name=hades

          3、在對應(yīng)的分布式配置中心創(chuàng)建hades主配置,配置內(nèi)容如下:

          (注:hades所有的配置內(nèi)容在分布式配置中心默認(rèn)均為txt格式)

                
                {
          ????"instanceNames":?[
          ????????"TencentSmsService"
          ????],
          ????"updateTime":?"2023年3月20日10:26:0131"
          }

          說明:hades主要是監(jiān)聽以上配置的變更,當(dāng)新增或修改了Groovy腳本時,需要手動更新該配置。

          4、新建Groovy腳本,apollo需要跟主配置在同appId下,nacos在同namespace下。

          注:Groovy腳本跟Java代碼99%相同(特別要注意lambda語法和lombok的問題,建議不寫lambda

          5、客戶端使用HadesClient獲取對象或執(zhí)行方法

                
                
          private?void?test()?{
          ????//?獲取腳本對象,用接口接收
          ????SendSmsService?sendSmsService?=?hadesClient.getInterfaceByName("TencentSmsService");
          ????sendSmsService.send();

          ????//?獲取GroovyObject對象
          ????GroovyObject?groovyObject?=?hadesClient.getGroovyObjectByName("TencentSmsService");
          ????groovyObject.invokeMethod("send",?null);
          ????log.info("groovy?object:{}",?groovyObject);

          ????//?直接執(zhí)行腳本對應(yīng)的方法,得到返回值
          ????Object?execute?=?hadesClient.execute("TencentSmsService",?"send",?null);
          ????System.out.println("result"?+?execute);
          }

          hades 示例

          hades-apollo-examplehades-nacos-example可用于調(diào)試

          最后

          過兩天吧,我在austin接入下,再給大家寫下這個詳細(xì)的過程,核心的代碼并不多啊,大家可以到Git里學(xué)習(xí)學(xué)習(xí)

          Gitee鏈接:https://gitee.com/zhongfucheng/hades

          GitHub鏈接:https://github.com/ZhongFuCheng3y/hades

          瀏覽 75
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  丁香五月婷婷在线观看 | 欧美另类爱爱小视频 | 亚洲色就是色 | 亚洲第一成年免费网站 | 免费性爱网址 |