摘要:
對于一些小的項目, 我們沒有必要使用MyBatis/JPA/Hibernate等重量級技術, 直接使用Spring JDBC 即可, Spring JDBC 是對 jdbc的簡單封裝, 很容易掌握. Spring JdbcTemplate 和 JDBC API 對比 JDBC API的缺點:1. 我
閱讀全文
posted @ 2018-10-26 15:52
harrychinese
閱讀(1364)
推薦(0)
摘要:
承接上個博文, 這次是方案2的實現, 本方案的特點:1. 該方案能很好地從幾臺服務器中選出一個Master機器, 不僅僅可以用于定時任務場景, 還可以用在其他場景下. 2. 該方案能實現Master節點的自動 failover, 經我測試 failover 過程稍長, 接近1分鐘. 綜上所述, 本方
閱讀全文
posted @ 2018-10-25 10:42
harrychinese
閱讀(1056)
推薦(0)
摘要:
背景說明: 有一套Web服務程序, 為了保證HA, 需要在多臺服務器上部署, 該服務程序有一些定時任務要執行, 現在要保證的是, 同一定時任務不會在多臺機器上被同時執行. 方案1 任務級的主備方案: 每個定時任務啟動后, 都發起任務級的主節點的競爭, 勝出者執行具體任務. 方案2 服務器級的主備方案
閱讀全文
posted @ 2018-10-24 14:49
harrychinese
閱讀(2682)
推薦(0)
摘要:
Curator Java 客戶端 CRUD 使用 Curator 是 Apache 下的開源項目, Spring Cloud 也采用了該庫, 可以其功能強大和權威性. Curator 項目包含多個 artifact, 一般情況下, 我們只需要引入 curator-recipes 依賴即可, arti
閱讀全文
posted @ 2018-10-23 08:56
harrychinese
閱讀(608)
推薦(0)
摘要:
ZooKeeper 背景 ZooKeeper 是一個非常優秀的開源項目, 可以為軟件系統提供非常重要的基礎特性:1. 分布式鎖. 使用場景有: 比如我們有一套系統, 為了保證HA, 在多臺需要在多臺服務器上部署, 該服務程序有一些定時任務需要執行, 我們需要確保同一個定時任務不會在多臺機器上被同時執
閱讀全文
posted @ 2018-10-21 22:21
harrychinese
閱讀(180)
推薦(0)
摘要:
Sprng Boot 2 actuator變動加大, 網上很多資料都都已經過期. 配置項 在 application.properties 配置文件, actuator 的設置項 management.endpoints(設置 actuator 全局級的屬性) 和 management.endpoi
閱讀全文
posted @ 2018-10-19 19:53
harrychinese
閱讀(2636)
推薦(1)
摘要:
用Spring Boot Starter 向導生成了一個很簡單SpringBoot程序, 用到了 MySQL, 總是下面不能加載 Mysql driver class 錯誤. Cannot load driver class: com.mysql.jdbc.Driver 剛開始以為是 applica
閱讀全文
posted @ 2018-10-19 19:31
harrychinese
閱讀(13117)
推薦(0)
摘要:
Web請求的全過程(包含DNS) 完整過程參考 https://blog.csdn.net/yonggeit/article/details/72857630DNS 服務器并不承擔 TCP 連接的數據通道, 只是在建立TCP連接之前起作用, 告知目標機器的IP是多少. consul 域名服務 標準的
閱讀全文
posted @ 2018-10-16 18:37
harrychinese
閱讀(3709)
推薦(0)
摘要:
# 查看容器的 dns 解析設置文件, 也可以檢查docker 運行環境 DNS docker run busybox:latest cat /etc/resolv.conf # 為容器 mybusybox 運行手動設置一個dns服務器, 并檢查是否生效docker run --dns 10.0.0
閱讀全文
posted @ 2018-10-15 15:01
harrychinese
閱讀(9971)
推薦(0)
摘要:
consul 命令行工具 consul 支持 Windows/Linux 等多種平臺, 一般生產環境部署在 Linux, 下載包中僅有一個可執行程序, 所有的服務都通過命令行開啟. 常用的命令有: consul agent #開啟 server agent 或 client agentconsul
閱讀全文
posted @ 2018-10-15 12:28
harrychinese
閱讀(2083)
推薦(0)
摘要:
VirtualBox常用網絡 NetworkAddress Translation(NAT)NAT 是VirtualBox建立的虛擬機默認的形式. 虛擬機之間無法溝通, 虛擬機能連接外部網絡. GuestOS只能看到從Host發來的數據請求, 但主機不能訪問GuestOS(可以通過端口轉發來訪問虛擬
閱讀全文
posted @ 2018-10-11 22:10
harrychinese
閱讀(2748)
推薦(0)
摘要:
consul 是什么 consul 是 HashiCorp 公司推出的開源工具, 該公司另一個有名的產品是 Vargrant. 用于實現分布式系統的服務發現和配置, 具體功能有:1. 提供KV安全存儲, 這點和Zookeeper一樣, 可用于Leader選舉, 分布式事務協調的夠等功能. KV存儲的
閱讀全文
posted @ 2018-10-11 21:33
harrychinese
閱讀(472)
推薦(0)
摘要:
docker 技術已經研究了一段時間, 基本的知識點和使用場景比較清楚了, 還有一些比較高階的內容未曾嘗試, 將來工作中如果能用到, 再深入研究吧. 這篇博文匯總了一些有用的文章鏈接. 書籍 Docker 從入門到精通 https://yeasy.gitbooks.io/docker_practic
閱讀全文
posted @ 2018-10-11 10:23
harrychinese
閱讀(429)
推薦(0)
摘要:
本文轉載自 搜云庫 的文章 https://www.jianshu.com/p/7d76850de03f , 感謝作者 3.png 上一篇文章搭建了一個具有基礎功能,權限認證、TLS 的私有倉庫,但是Docker Registry 作為鏡像倉庫,連管理界面都沒有,甚至連一些運維必備的功能都是缺失的,
閱讀全文
posted @ 2018-10-11 08:55
harrychinese
閱讀(544)
推薦(0)
摘要:
docker 基礎鏡像環境 alpine 可以使用 docker search 命令搜索指定的 image, 或者訪問網址 https://hub.docker.com/explore/ 在hub官網會經常能看到 alpine 字樣, alpine 是要給非常輕量級的Linux發行版,Docker官
閱讀全文
posted @ 2018-10-10 14:28
harrychinese
閱讀(3188)
推薦(0)
摘要:
docker 主要有兩種數據存儲形式, 一種是storage driver(也叫做 Graph driver), 另一種是 volume driver. stroage driver主要是存儲那些無狀態的數據, 寫入密集型的場景應該使用 volume driver. storage driver 容
閱讀全文
posted @ 2018-10-08 15:30
harrychinese
閱讀(5317)
推薦(0)
摘要:
本文轉載自 (https://segmentfault.com/a/1190000016447161), 感謝作者. " " 📖 節選自 "Awesome CheatSheet/Docker CheatSheet" ,對來自 "官方文檔" 及 "Docker Links" 中鏈接內容的歸檔整理,包
閱讀全文
posted @ 2018-09-29 13:21
harrychinese
閱讀(498)
推薦(0)
摘要:
本文轉自 https://segmentfault.com/a/1190000016449865 , 感謝作者! 本文的源代碼在:https://github.com/chanjarste... 這里先給出一些Docker Image制作的要求,之后我們再看怎么做。 下面具體講一下具體怎么做到以上幾
閱讀全文
posted @ 2018-09-29 12:48
harrychinese
閱讀(1755)
推薦(0)
摘要:
為什么要使用Docker? 容器真是個好東西, (1)容器能提供隔離性; (2)容器能打包環境, 簡化部署難度; (3)容器具有很好的遷移性, 開發在不同環境中部署. (4) 容器是輕量級. 詳細講解如下:1. docker能為應用系統提供一個很好的沙箱 比如要部署兩套Python Web系統, 一
閱讀全文
posted @ 2018-09-25 17:29
harrychinese
閱讀(3779)
推薦(0)
摘要:
Flyway 和 Liquibase 都是 Java 項目中常用的 DB migration 工具, 從使用簡便性看,Flyway 比 Liquibase 更簡單, 從 github 的 star 數量看, flyway 更受歡迎. flyway 命令行工具和 maven 插件 對于 SpringB
閱讀全文
posted @ 2018-09-17 18:23
harrychinese
閱讀(23662)
推薦(1)
摘要:
控制 json 序列化/反序列化 1. @JsonIgnoreProperties的用法 @JsonIgnoreProperties(value = { "prop1","prop2" }) 用來修飾Pojo類, 在序列化和反序列化的時候忽略指定的屬性, 可以忽略一個或多個屬性. @JsonIgno
閱讀全文
posted @ 2018-09-15 21:53
harrychinese
閱讀(12310)
推薦(0)
摘要:
不管是單體應用還是微服務應用, 現在都流行Restful風格, 下圖是一個比較典型的使用rest的應用架構, 該應用不僅使用database數據源, 而且用到了一個Weather微服務, 另一方面, 該應用也是通過rest方式為web UI 或其他微服務應用提供服務. 通過Postman 插件測試R
閱讀全文
posted @ 2018-09-09 15:38
harrychinese
閱讀(1546)
推薦(0)
摘要:
SpringMVC 視圖方法的參數, 已經在這個文章中寫得非常清楚了, 鏈接為 http://www.rzrgm.cn/morethink/p/8028664.html 這篇文章做一些補充. 被@RequestMapping 注解的方法的簽名非常靈活, Spring會自動注入各種類型的實參,
閱讀全文
posted @ 2018-09-08 22:15
harrychinese
閱讀(1278)
推薦(0)
摘要:
本文轉載自 http://www.rzrgm.cn/morethink/p/6525216.html SpringMVC解決跨域問題, 感謝作者! 有個朋友在寫扇貝插件的時候遇到了跨域問題。于是我對解決跨域問題的方式進行了一番探討。 問題 API:查詢單詞URL: https://api.s
閱讀全文
posted @ 2018-09-08 21:50
harrychinese
閱讀(11062)
推薦(0)
摘要:
不要自稱為程序員http://www.ruanyifeng.com/blog/2011/10/dont_call_yourself_a_programmer.html 面試時,如何向公司提問?http://www.ruanyifeng.com/blog/2012/08/questions_you_n
閱讀全文
posted @ 2018-09-08 21:36
harrychinese
閱讀(67)
推薦(0)
摘要:
本文轉載自 Karibasappa G C (KB), the Founder of javainsimpleway.com, 原文鏈接 http://javainsimpleway.com/exception-handling-best-practices/ Exception handling
閱讀全文
posted @ 2018-09-08 18:49
harrychinese
閱讀(465)
推薦(0)
摘要:
本文轉載自 http://www.rzrgm.cn/morethink/p/8028664.html, 作者寫得非常好, 致謝! SpringMVC 參數綁定注解解析 本文介紹了用于參數綁定的相關注解。 綁定:將請求中的字段按照名字匹配的原則填入模型對象。 SpringMVC就跟Struts
閱讀全文
posted @ 2018-09-08 18:44
harrychinese
閱讀(8083)
推薦(1)
摘要:
Spring 容器中 Bean 的名稱 聲明 bean 有兩個方式, 一個是 @Bean, 另一個是 @Component 和它的子類 (包括 @Service/@Controller/@Repository/@Configuration), Spring 容器中 bean 名生成規則分兩大類, 分
閱讀全文
posted @ 2018-08-25 20:38
harrychinese
閱讀(4186)
推薦(0)
摘要:
Spring 的依賴注入 對于 Spring 程序, Spring 框架為我們提供一個 IoC 容器, 該容器負責創建對象和維護對象之間的依賴關系. 對于普通程序, 我們是通過對象本身來創建和解決自己的依賴問題. ApplicationContext 即是 Spring 程序的 IoC 容器, 該容
閱讀全文
posted @ 2018-08-13 18:18
harrychinese
閱讀(22787)
推薦(1)
摘要:
Vertica 性能非常好, 平時基本不會碰到性能問題, 即使碰到, 優化也很容易, 而且效果往往會很好. 優化工具 1. explain 命令. 在一個大 SQL 執行之前, 使用 profile 來查看資源的預期消耗. veritica 執行計劃除了有普通文本格式, 還有 graphviz 格式
閱讀全文
posted @ 2018-08-02 16:12
harrychinese
閱讀(3329)
推薦(0)
摘要:
分布式鎖需要具備的特性1. 高可用性2. 具備防止死鎖能力, 獲得鎖的線程或進程在網絡或硬件宕機的情況下, 無法主動釋放該鎖, 但我們仍可以通過鎖定超時的方式刪除鎖. 3. 可重入, 一個線程在獲得該鎖的情況后, 可以多次獲得同一個鎖, 而無需任何延遲等待. 4. 提供阻塞獲取鎖的函數, 即沒有獲得
閱讀全文
posted @ 2018-08-01 22:19
harrychinese
閱讀(625)
推薦(0)
摘要:
Java 雙冒號 :: 語法的含義 下面的代碼中有雙冒號,初看上去很奇怪, list.forEach(System.out::println); 這是Java8的"方法引用", 語法是 類名::靜態方法名, 一般用作簡化Lamda表達式. 詳見討論: https://www.zhihu.com/qu
閱讀全文
posted @ 2018-07-27 22:33
harrychinese
閱讀(895)
推薦(1)
摘要:
Web項目Session管理是一個很重要的話題, 涉及到系統橫向擴展, SpringBoot已經為共享Session很好的解決方案, 這篇文章關注使用Redis共享會話, 同時這也是最常用的方法. pom.xml 增加依賴 SpringBoot2 已經將Redis底層客戶端從Jedis切換為Lett
閱讀全文
posted @ 2018-07-27 10:53
harrychinese
閱讀(1648)
推薦(0)
摘要:
Redis 安裝 redis 采用單線程多路復用的機制提供并發訪問, 用到了 Linux 的一些獨有的特性, 所以官網不提供 Windows 版本, 微軟和開源界曾經將 redis 移植到 Windows, 在 github 上可以下載使用, 不過最后的 release 版本是 2016 年 7 月
閱讀全文
posted @ 2018-07-24 13:52
harrychinese
閱讀(340)
推薦(0)
摘要:
本文轉載自 crossoverJie 的b博客 http://www.rzrgm.cn/crossoverJie/p/9282065.html 前言 之前或多或少分享過一些內存模型、對象創建之類的內容,其實大部分人看完都是懵懵懂懂,也不知道這些的實際意義。 直到有一天你會碰到線上奇奇怪怪的問
閱讀全文
posted @ 2018-07-17 21:46
harrychinese
閱讀(464)
推薦(0)
摘要:
對象名稱可以長到128字符 1. Vertica 中字段名/表名/視圖名/projection名/schema名, 名稱最長達128個字節, 所以我們不用費盡心思縮寫表名和字段名. 2. Vertica中的名稱在catalog系統表能區分出大小寫, 但使用的時候是大小寫不銘感的. 在Oracle中,
閱讀全文
posted @ 2018-07-17 15:28
harrychinese
閱讀(4300)
推薦(0)
摘要:
我們的 SpringBoot 程序都會加 spring-boot-starter 包, 而該包一個依賴項 spring-boot-starter-logging, 所以SpringBoot 程序不需要再顯式增加 spring-boot-starter-logging 包依賴. 使用 mvn depe
閱讀全文
posted @ 2018-07-01 17:44
harrychinese
閱讀(6140)
推薦(0)
摘要:
本文主要修改自下面博客:http://www.ityouknow.com/springboot/2016/11/06/spring-boo-mybatis.htmlhttp://tengj.top/2017/04/23/springboot9/http://www.hifreud.com/2017/
閱讀全文
posted @ 2018-06-25 21:25
harrychinese
閱讀(900)
推薦(0)
摘要:
摘自: http://www.ityouknow.com/springboot/2017/05/09/springboot-deploy.html 查看JVM參數的值 可以根據java自帶的jinfo命令: jinfo -flags pid jinfo -flags pid 來查看jar 啟動后使用
閱讀全文
posted @ 2018-06-22 23:15
harrychinese
閱讀(464)
推薦(0)
摘要:
SpringBoot 項目單元測試也很方便, Web項目中單元測試應該覆蓋:1. Service 層2. Controller 層 本文前半部分講解是一些測試基礎配置. 對于Service和Controller測試的講解,摘自一個博客(嘟嘟獨立博客的博客, Spring Boot干貨系列:(十二)S
閱讀全文
posted @ 2018-06-22 22:30
harrychinese
閱讀(38414)
推薦(4)