Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 欧美激情免费观看,亚洲一区二区三区在线视频 ,a中文字幕1区

          整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          php新聞管理系統(tǒng)成品源代碼,mysql數(shù)據(jù)庫 #h

          php新聞管理系統(tǒng)成品源代碼,mysql數(shù)據(jù)庫 #html

          HP新聞管理系統(tǒng)。

          戴維斯將繼續(xù)接受治療,幫望明日能有出戰(zhàn)機會。總條數(shù)目:4首頁上一頁下一頁尾頁。

          arkMidTable 是一站式開源的數(shù)據(jù)中臺,實現(xiàn)元數(shù)據(jù)管理,數(shù)據(jù)倉庫開發(fā),數(shù)據(jù)質(zhì)量管理,數(shù)據(jù)的可視化,實現(xiàn)高效賦能數(shù)據(jù)前臺并提供數(shù)據(jù)服務的產(chǎn)品。

          產(chǎn)品愿景

          1.滿足許多的小企業(yè),提供一站式的解決方案。

          2.做出世界級別,能夠媲美BAT大廠的產(chǎn)品。

          3.創(chuàng)造價值,產(chǎn)生價值,讓世界變得更加美好。

          產(chǎn)品架構(gòu)圖

          產(chǎn)品技術(shù)選型

          組件

          用途

          clickhouse/doris

          離線數(shù)倉

          kafka

          實時數(shù)倉

          datax,flinkx

          數(shù)據(jù)集成

          flink,flinkcdc,seatunnel

          數(shù)據(jù)開發(fā)

          promicuse

          數(shù)據(jù)監(jiān)控

          druid

          數(shù)據(jù)服務

          datart

          數(shù)據(jù)可視化

          cdh

          大數(shù)據(jù)平臺

          dolphin

          任務調(diào)度

          產(chǎn)品效果圖

          linux部署文檔

          系統(tǒng)要求

          window系統(tǒng)和Linux需要安裝Python環(huán)境,并配置環(huán)境變量

          • java版本: Java 8
          • 數(shù)據(jù)庫版本: Mysql5.7
          • 運行環(huán)境: MacOS, Windows,Linux,python

          1.系統(tǒng)依賴包下載

          1.獲取flinkx-1.12-SNAPSHOT壓縮包,關注公眾號【LarkMidTable】發(fā)送 【flinkx】

          2.將flinkx用壓縮軟件解壓后

          linux部署:

          上傳解壓目錄flinkx到linux**【注意: 修改Linux目錄權(quán)限 chown -R 用戶:用戶 777】**

          window部署:

          解壓后存放在window本地

          2.web的安裝

          2.1 創(chuàng)建數(shù)據(jù)庫

          執(zhí)行bin/db下面的web.sql文件(數(shù)據(jù)庫版本5.1.0版本)

          2.2編譯打包

          1.直接從Git上面獲得源代碼,在項目的根目錄下執(zhí)行如下命令

          mvn clean install 

          2.執(zhí)行成功后將會在工程的build目錄下生成安裝包

          packages/admin_{VERSION}.tar.gz

          2.3解壓安裝包

          Linux方式部署的解壓方式

          解壓安裝包

          tar -zxvf admin_2.1.2_1.tar.gz 

          window方式部署解壓方式

          解壓 admin_2.1.2_1.tar.gz 安裝包,使用winRAR解壓

          2.4安裝配置

          修改項目配置

          1.修改路徑admin/conf/ 下面的application.yml文件

          #數(shù)據(jù)源
            datasource:
              username: root
              password: root
              url: jdbc:mysql://localhost:3306/web?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8
              driver-class-name: com.mysql.jdbc.Driver
            ....
            ....
            ....
          flinkx:
            job:
              accessToken:
              #i18n (default empty as chinese, "en" as english)
              i18n:
              ## triggerpool max size
              triggerpool:
                fast:
                  max: 200
                slow:
                  max: 100
                ### log retention days
              logretentiondays: 30
            executor:
              flinkxHome: /home/hadoop/flinkx/flinkx.py
              jsonPath: /home/hadoop/flinkx/job/
              logHome: /home/hadoop/flinkx/nohup.out

          1.將localhost修改為數(shù)據(jù)庫的地址

          2.將flinkxHome,jsonPath,logHome 配置成flinkx所在目錄

          例如: Linux部署的配置**【獲取flinkx-1.12-SNAPSHOT壓縮包,關注公眾號【LarkMidTable】發(fā)送 【flinkx】】**

            executor:
              flinkxHome: /home/hadoop/flinkx/flinkx.py
              jsonPath: /home/hadoop/flinkx/job/
              logHome: /home/hadoop/flinkx/nohup.out

          例如:window部署的配置**【獲取flinkx-1.12-SNAPSHOT壓縮包,關注公眾號【LarkMidTable】發(fā)送 【flinkx】】**

          executor:
            flinkxHome: E:/flinkx/flinkx.py
            jsonPath: E:/flinkx/job/
            logHome: E:/flinkx/nohup.out

          2.5啟動程序

          Linux部署啟動的方式:

          [hadoop@mini4 bin]$ cd admin/bin
          [hadoop@mini4 bin]$ sh admin.sh start

          window部署啟動的方式:

          運行\(zhòng)admin\bin下的admin.bat文件即可

          2.6驗證是否啟動成功

          Linux部署驗證啟動是否成功:

          [hadoop@mini4 bin]$ jps
          24931 AdminApplication

          window部署驗證啟動是否成功:

          09:10:58.619 admin [main] INFO  c.l.a.AdminApplication - Access URLs:
          ----------------------------------------------------------
          
                  Local-API:              http://127.0.0.1:8080/doc.html
                  External-API:   http://192.168.1.22:8080/doc.html
                  web-URL:                http://127.0.0.1:8080/index.html
                  ----------------------------------------------------------
          
          09:11:01.001 admin [web, admin JobScheduleHelper#scheduleThread] INFO  c.l.a.c.t.JobScheduleHelper - >>>>>>>>> init web admin scheduler success.

          2.7訪問首頁

          啟動成功后打開頁面(默認管理員用戶名:admin 密碼:123456) http://{ip}:8080/index.html#/dashboard

          應用領域

          智慧校園 、智慧交通 、智慧金融 、智慧農(nóng)業(yè)、智慧醫(yī)療、智慧政務 等多個大數(shù)據(jù)領域

          如果你想要源碼,請記得轉(zhuǎn)發(fā)+關注+私信

          私信回復【一站式大數(shù)據(jù)中臺

          者 :youzhibing

          鏈接 :https://www.cnblogs.com/youzhibing/p/9553752.html

          讀源碼的經(jīng)歷

          剛參加工作那會,沒想過去讀源碼,更沒想過去改框架的源碼;總想著別人的框架應該是完美的、萬能的,應該不需要改;另外即使我改了源碼,怎么樣讓我的改動生效了?項目中引用的不還是沒改的jar包嗎。回想起來覺得那時候的想法確實挺……

          工作了一年多之后準備跳槽了,開始了一輪的面試,其中有幾個面試官就問到了相關的源碼問題:ArrayList、HashMap的底層實現(xiàn),spring、mybatis的相關源碼。問源碼的面試一般就是回去等消息,然后就沒然后了。

          那時候開始意識到,源碼這東西在之前的工作的中感受不到,但是在面試中好像面的還挺頻繁的,從此有意識的開始了jdk部分源碼的閱讀(主要是集合)。一開始看源碼,看的特別糙,知道個大概,知道ArrayList的底層實現(xiàn)是數(shù)組,HashMap的底層是散列表(數(shù)組+鏈表);更深入一點的擴容、hash碰撞等等就不知道了。

          讀spring源碼起于工作中遇到了一個問題(spring jdbcTemplate事務,各種詭異,包你醍醐灌頂?。?,排查一段時間最終是解決了,但過程讓我非常難受,各種上網(wǎng)查資料、各種嘗試,感覺就像大海撈針一樣,遙遙無期。我下定決心,我要看一看spring的源碼,于是我買了一本《spring源碼深度解析》,結(jié)合著這本書、打開著eclipse,開始了spring的源碼閱讀之旅。至此,讀源碼成了習慣,源碼已經(jīng)進入了我的心里。

          后來,springboot的火熱,讓我也想蹭上一蹭,于是有了springboot的啟動源碼系列,雖然還在進行中,但是我相信我能將其完成;工作中用到了shiro,我又結(jié)合著《跟我學shiro》將shiro的源碼看了個大概,有了shiro源碼系列博文,還差一篇認證與授權(quán)(應該很快就能面世),shiro源碼系列就封筆了。最近在搭建自己的后臺管理系統(tǒng),用到了quartz,集成的過程也遇到了一些問題,因此有了quartz的兩篇文章。

          慢慢的,從一味的網(wǎng)上找資料變成了很多時候會從源碼中找答案。不求能讀太多的源碼,但愿自己接觸的技術(shù)都能讀上一讀,路漫漫其修遠兮,吾將上下而求索!

          我為什么讀源碼

          很多人一定和我一樣的感受:源碼在工作中有用嗎?用處大嗎?很長一段時間內(nèi)我也有這樣的疑問,認為哪些有事沒事扯源碼的人就是在裝,只是為了提高他們的逼格而已。

          那為什么我還要讀源碼呢?一剛開始為了面試,后來為了解決工作中的問題,再后來就是個人喜好了。說的好聽點是有匠人精神;說的委婉點是好奇(底層是怎么實現(xiàn)的);說的不自信點是對黑盒的東西我用的沒底,怕用錯;說的簡單直白點是提升自我價值,為了更高的薪資待遇(這里對真正的技術(shù)迷說聲抱歉)。

          源碼中我們可以學到很多東西,學習別人高效的代碼書寫、學習別人對設計模式的熟練使用、學習別人對整個架構(gòu)的布局,等等。如果你還能找出其中的不足,那么恭喜你,你要飛升了!會使用固然重要,但知道為什么這么使用同樣重要。從模仿中學習,從模仿中創(chuàng)新。

          讀源碼不像圍城(外面的人想進來,里面的人想出去),它是外面的人不想進來,里面的人不想出去;當我們跨進城內(nèi),你會發(fā)現(xiàn)(還是城外好,皮?。┏莾?nèi)風光無限,源碼的海洋任我們遨游!

          我是怎么樣讀源碼的

          內(nèi)容了解

          首先我們要對我們的目標有所了解,知道她有什么特點,有些什么功能。對對方都還不了解,就想著進入別人的內(nèi)心世界,那不是臭不要臉嘛,我們要做一個有著流氓心的紳士;對她有個大致的了解了,就可以發(fā)起攻勢,一舉拿下。

          那么怎么樣了解了,方式有很多,我這里提供幾種,僅供參考

          最好的方式就是官方參考指南,親生父母往往對孩子是最了解的,對孩子的描述也是最詳細的;比如Spring Boot Reference Guide就是對springboot最詳細的描述,怎么樣使用springboot、springboot特性等等,通過此指南,springboot在你面前一覽無遺;

          但是,springboot畢竟是外國人的孩子,如果英語不好,估計讀起來有點頭疼了,不過我們有g(shù)oogle翻譯呀,咬咬牙也是能看的。源碼世界的丈母娘、老岳丈是非常慷慨的!

          其次是書籍,國外優(yōu)秀的有很多,國內(nèi)也不乏好書,比較推薦此方式,自成體系,讓我們掌握的知識點不至于太散。這就是好比是源碼的閨蜜,對源碼非常了解,重點是挺大方,會盡全力幫助我們了解源碼。

          再次就是博客,雖然可能覺得知識點比較散,但是針對某個知識點卻特別的細,對徹底掌握非常有幫助,園子內(nèi)就有很多技術(shù)大牛,寫的博客自然也是非常棒,非常具有學習價值。當然還有社區(qū)、論壇、github、碼云等等。這就是源碼的朋友圈,我們從中也能獲取到非常多關于源碼的信息。

          設計模式的了解

          優(yōu)秀的框架、技術(shù)從不乏設計模式;jdk源碼中就應用了很多設計模式,比如IO流中的適配器模式與裝飾模式、GUI的觀察者模式、集合中的迭代器模式等等;spring源碼中也是用到了大量的設計模式。設計模式有什么優(yōu)點、各適用于什么場景,不是本文的內(nèi)容,需要我們大家自行去了解。

          我們只需要對一些常用的設計模式有個大致了解,再去讀源碼是比較好的;不需要將23種設計模式都通讀,也不需要將常用設計模式完全理解透;對于全部通讀,我們時間有限,另外有些模式確實不太好理解、用的少,性價比不高,沒必要全部都讀。

          推薦書籍:《Head First Design Patterns》(中文版:《Head First 設計模式》)、《Java與模式》;

          另外我比較推薦的一種學習設計模式的方式是讀別人博客:java_my_life,劉偉技術(shù)博客,chenssy的設計模式;

          設計模式之于源碼,就好比逛街購物之于女人,想順利勾搭源碼,我們需要好好掌握設計模式這個套路。

          配合ide進行斷點追蹤

          我們通過源碼的圈子對源碼的了解終究只是停在表面,終究還是沒有走進她的內(nèi)心,接下來我就和大家分享下,我是如何走進她的內(nèi)心的!

          相信看過我的源碼博客的小伙伴都知道,我非常喜歡通過idea斷點來進行源碼追蹤,斷點追蹤源碼是我非常推薦的一種方式。斷點不僅可以用來調(diào)試我們的代碼,也可以用來調(diào)試我們用到的框架源碼。

          面對未知的、茫茫多的源碼,我們往往沒有足夠的時間、經(jīng)歷和耐心去通讀所有源碼,我們只需要去讀我們關注的部分即可(有人可能會說我都不關心,這…)。那為什么要用斷掉調(diào)試的方式來跟源碼,而不是直接從源代碼入手去跟我們關注的部分呢?

          嘗試過的小伙伴應該知道,如果我們對源碼不熟悉,直接通過源碼的方式去跟,一方面很容易迷路(多態(tài),會有很多子類實現(xiàn)),不知道接下來跟哪一個,另一方面也很容易跟丟,當我們跟入的很深的時候,很有可能就忘記上一步跟到哪了。

          下面我會舉例來說明我是如何進行斷點追蹤的,以spring-boot-2.0.3之quartz集成,不是你想的那樣哦!和 spring-boot-2.0.3之quartz集成,數(shù)據(jù)源問題,源碼探究 為背景來講,需要搞清楚兩個點:springboot是如何向quartz注入數(shù)據(jù)源的,quartz是如何操作數(shù)據(jù)庫的

          springboot向quartz注入數(shù)據(jù)源

          QuartzAutoConfiguration是springboot自動配置quartz的入口


                將quartz的配置屬性設置給SchedulerFactoryBean;將數(shù)據(jù)源設置給SchedulerFactoryBean:如果有@QuartzDataSource修飾的數(shù)據(jù)源,則將@QuartzDataSource修飾的數(shù)據(jù)源設置給SchedulerFactoryBean,否則將應用的數(shù)據(jù)源(druid數(shù)據(jù)源)設置給SchedulerFactoryBean,顯然我們的應用中沒有@QuartzDataSource修飾的數(shù)據(jù)源,那么SchedulerFactoryBean中的數(shù)據(jù)源就是應用的數(shù)據(jù)源;將事務管理器設置給SchedulerFactoryBean。SchedulerFactoryBean,負責創(chuàng)建和配置quartz Scheduler,并將其注冊到spring容器中。SchedulerFactoryBean實現(xiàn)InitializingBean的afterPropertiesSet方法,里面有可以設置數(shù)據(jù)源的過程


                可以看到通過org.quartz.jobStore.dataSource設置的dsName(值為quartzDs)最后會被替換成springTxDataSource.加scheduler實例名(我們的應用中是:springTxDataSource.quartzScheduler)。springboot會注冊兩個ConnectionProvider給quartz:一個dsName叫springTxDataSource.quartzScheduler,有事務;一個dsName叫springNonTxDataSource.quartzScheduler,沒事務。

              quartz如何操作數(shù)據(jù)庫

                我們通過停止定時任務來跟下quartz對數(shù)據(jù)庫的操作

                發(fā)現(xiàn)quartz用如下方式獲取connection

          conn=DBConnectionManager.getInstance().getConnection(getDataSource());

                那么我們的job中就可以按如下方式操作數(shù)據(jù)庫了



           明確我們的目的,找到合適的切入點,進入斷點調(diào)試追蹤也就容易了。

            任我說的天花亂墜,你仍無動于衷,那也只是我一廂情愿,只有局中人才能體會到其中的奧妙!

          總結(jié)與感悟

            從上至下全部通讀的方式,個人不太推薦,這是建立在很熟悉的基礎上的,當我們對某個框架已經(jīng)比較熟悉了,再從上至下進行通讀,徹底了解,這是我認為正確的方式;但是從不熟悉到熟悉這個過程,個人不推薦全部通讀,而是推薦上面我推薦的方式 - 斷點局部追蹤。

            很多時候,我們的博文都只是授之以魚,而我們也只是從中得到魚;而這篇的目的則是授之以漁,我希望大家從中學到捕魚的方法,而不是一味的等待別人的魚;希望大家能夠自給自足,也能把魚和漁都授予其他人。

            只要我們開始去讀源碼,慢慢的就會形成自己的一套讀源碼的方式;每個人的方式都不一樣,合適自己的才是最好的。行動起來,用合適的方式去俘獲你的的她吧!

            純屬個人之拙見,不喜請噴!


          上一篇:什么是 HTML5-
          下一篇:HTML5前景展望
          主站蜘蛛池模板: 久久久一区二区三区| 国模视频一区二区| 无遮挡免费一区二区三区| 成人精品一区久久久久| 国产激情一区二区三区在线观看| 免费高清av一区二区三区| 男人的天堂精品国产一区| 中文字幕无码免费久久9一区9| 无码毛片一区二区三区中文字幕 | 日本一区午夜爱爱| 在线视频一区二区三区三区不卡| 精品无码一区二区三区爱欲| 日韩精品国产一区| 精品无码一区二区三区亚洲桃色| 一区在线观看视频| 亚洲av综合av一区二区三区| 亚洲啪啪综合AV一区| 国产精品一区二区久久乐下载| 亚洲国产一区国产亚洲| 亚洲片国产一区一级在线观看| 寂寞一区在线观看| 精品国产AⅤ一区二区三区4区| 色综合视频一区中文字幕| 色妞色视频一区二区三区四区| 中文字幕久久亚洲一区| 一区二区三区视频网站| 亚洲欧洲一区二区三区| 久久精品无码一区二区日韩AV | 在线观看国产一区二区三区| 精品性影院一区二区三区内射| 久久综合九九亚洲一区| 亚洲国产老鸭窝一区二区三区| 无码人妻AⅤ一区二区三区| 久久综合精品不卡一区二区| 国产综合一区二区在线观看| 国产亚洲一区二区精品| 精品无码人妻一区二区免费蜜桃| 高清一区二区三区免费视频| 中文字幕精品一区影音先锋| 无码国产精品一区二区免费虚拟VR| 亚洲国产精品一区二区三区在线观看|