摘要:
可用作時序的數據庫: [時序]TimescaleDB, 基于 PostgreSQL, 支持 SQL.[時序]KairosDB, 基于 Cassandra, 不支持 SQL. [通用]CrateDB, 基于 Elastic Search, 但支持ANSI SQL[時序]InfluxDB, 是 db-e
閱讀全文
posted @ 2019-01-17 10:29
harrychinese
閱讀(66122)
推薦(0)
摘要:
線上運行的Java應用突然沒有響應、響應緩慢,進程突然消失,遇到這些情況應該如何應對呢?http://www.rowkey.me/blog/2018/11/22/online-debug/ 本文主要講解了Linux下故障排查方法, 包括一些工具的使用. 另外就是java的工具包使用, 還有java程
閱讀全文
posted @ 2019-01-09 14:18
harrychinese
閱讀(173)
推薦(0)
摘要:
RabbitMQ 術語 RabbitMQ 有很多術語和Kafka不一樣, 理解這些術語十分重要. 1. Broker: 一個RabbitMQ實例就是一個 Broker. 2. VHost(Virtual Host): 一個RabbitMQ實例可包含多個VHost, 每個VHost都有自己的身份驗證機
閱讀全文
posted @ 2019-01-08 14:32
harrychinese
閱讀(889)
推薦(0)
摘要:
市場上有不少項目計劃類系統, 很多都是收費的, 還有很多都是web版, 這些都自然被排除了. 免費好用的還真不多, 今天簡單介紹一下 gantt project 這個軟件, 開源并且免費, 基于 java se 實現的, 跨平臺. 網站是 http://ganttproject.biz 功能點: 1
閱讀全文
posted @ 2019-01-07 17:10
harrychinese
閱讀(8618)
推薦(0)
摘要:
C/S / Tuxedo 架構/ B/S 架構演進 Tuxedo 推廣使用之前, 典型的程序是C/S兩層架構, 兩層架構的缺點有:1. client端直連數據庫, 因為數據庫會為每個連接分配一定的內存, 所以C/S架構中的client數量不能太多, 所以只適合中小型系統. 2. client端不僅僅
閱讀全文
posted @ 2019-01-04 16:42
harrychinese
閱讀(835)
推薦(0)
摘要:
Shiro 的加深理解: 1. Shiro 和 Spring 系組件的對標, Shiro = Spring Security + Spring Session. 就是說 Shiro 不僅僅是一個安全框架, 同時也是一個 Session 管理框架. 其實這也是很自然的事情, Shiro 會攔截所有的
閱讀全文
posted @ 2018-12-29 14:59
harrychinese
閱讀(941)
推薦(0)
摘要:
Session 工作原理是什么? 因為 http 協議是無狀態的, 對于服務器端來講, 如何為不同的訪問用戶提供不一樣的體驗呢? 比如郵箱系統, 只有登錄用戶才能收發郵件. 這就需要服務器能識別每一個客戶端訪問, 知道哪些訪問是來自一個同一個客戶端, 顯然這個事情光靠服務器端是做不到的, 需要瀏覽器
閱讀全文
posted @ 2018-12-29 12:42
harrychinese
閱讀(2414)
推薦(0)
摘要:
背景 在系統生命周期中, 免不了要做升級部署, 對于關鍵服務, 我們應該能做到不停服務完成升級 (perform a zero downtime upgrade), 對于一般系統, 應該做到優雅地停服務. 如何做到不停服務的升級? 需要做到下面兩點:1. 服務本身應該部署多份, 前面應該有 LVS/
閱讀全文
posted @ 2018-12-26 14:30
harrychinese
閱讀(24291)
推薦(4)
摘要:
原始代碼 RoleService 類有刪除角色和鎖定角色兩個函數. 問題分析:可以看到上面這兩個函數邏輯完全一致, 僅僅是最終調用的函數不同, 應該能優化, 一個思路是: 將框架部分封裝為一個公用函數, deleteRole() 和 lockRole() 函數調用該公共函數, 并將最終的 actio
閱讀全文
posted @ 2018-12-19 21:42
harrychinese
閱讀(644)
推薦(0)
摘要:
對于項目而言, 我們一般會有DAO->Service->Controller分層設計, 這些層次體現了每層的作用, 而層次之間的數據傳遞對象設計很少被提及, 下面是一個相對完整的數據轉換過程:Table層--(DO對象)-->DAO層--(DO對象)-->Service層--(DTO對象)-->Co
閱讀全文
posted @ 2018-12-18 12:29
harrychinese
閱讀(2879)
推薦(1)
摘要:
注意點有:1. 不要啟用 spring-boot-devtools, 如果啟用 devtools 后, 不管是熱啟動還是手工重啟, devtools總是試圖重新恢復之前的session數據, 很有可能會導致session混亂.2. 在配置 Shiro 的filterChainDefinitionMa
閱讀全文
posted @ 2018-12-12 17:08
harrychinese
閱讀(1488)
推薦(0)
摘要:
之前發了SpringBoot 單元測試的博客, http://www.rzrgm.cn/harrychinese/p/springboot_unittesting.html , 內容較少, 現在補齊SpringBoot單元測試的主要知識點. 測試有很多種, 有單元測試 、集成測試 、冒煙測試
閱讀全文
posted @ 2018-12-11 17:32
harrychinese
閱讀(1924)
推薦(0)
摘要:
消息的基本屬性 消息的幾個屬性:type: 定義消息的 category, 比如 SQL 或 RPC 或 HTTPname: 代表一個動作 action, 詳細的內容應該記錄到 data 屬性中, 而不是 name 屬性, 比如: 對于 SQL type 來講, name 應該是一個 SQL 模板,
閱讀全文
posted @ 2018-12-11 09:22
harrychinese
閱讀(2348)
推薦(1)
摘要:
我們有三種部署方式:1. docker 部署2. 采用官方的 war 包部署. 3. 源碼部署 很顯然 docker 部署是最簡單的, 我嘗試了多次, 都在 cat docker 容器鏡像的編譯過程失敗了. 原因是: 鏡像編譯需要先編譯 java 源碼為 war 包, 這中間要從 maven 官網庫
閱讀全文
posted @ 2018-12-10 10:36
harrychinese
閱讀(3761)
推薦(0)
摘要:
面上有很多優秀的 OS 級監控系統 (比如 falcon), 這些監控系統主要聚焦在 CPU/IO/Mem/Disk 和應用端口, falcon 甚至可以監控到 JVM. 但對于應用系統內部的一些監控, 比如程序的 exception/接口性能/調用鏈, 這些系統級的監控系統就不太好用了. 大眾點評
閱讀全文
posted @ 2018-12-10 10:03
harrychinese
閱讀(1998)
推薦(0)
摘要:
本文講解如何在 Java 程序中集成 Apollo 配置, 主要涉及到一些基礎用法. 對于一些高級用法, 比如如何加密/解密配置項 (可用于數據庫密碼配置), 如何動態切換數據源地址,如何動態切換日志級別, 可以參考官方的 user cases git 庫, 官方代碼庫 https://github
閱讀全文
posted @ 2018-12-05 15:42
harrychinese
閱讀(3773)
推薦(0)
摘要:
本博客講詳細講解如何在 Windows 搭建攜程 Apollo 服務器 (用戶個人開發). 開發服務器有多種搭建方式:(1) docker, 搭建過程非常簡單, 推薦有 docker 環境(2) 部署 Quick start 發行版, 本文采用 Quick start 版部署. Windows 服務
閱讀全文
posted @ 2018-12-03 16:40
harrychinese
閱讀(3860)
推薦(0)
摘要:
這篇是 maven 項目管理的第二篇, 講解使用 maven 進行多個項目管理, 之前有一篇是 maven 的基礎知識. SpringBoot系列: Eclipse+Maven環境準備 一個完整的解決方案通常都會包含多個項目, 這些項目往往會有一些公用的依賴, 比如都依賴 SpringBoot, 各
閱讀全文
posted @ 2018-12-01 16:50
harrychinese
閱讀(1813)
推薦(0)
摘要:
本文主要參考了 https://segmentfault.com/a/1190000016449865 , 感謝作者的付出. 另外, 在本文中, 演示了Windows+Maven+Docker Toolbox環境下的制作全過程. 和 CI 工具的集成, 可以參考下面文章: https://sprin
閱讀全文
posted @ 2018-11-30 15:09
harrychinese
閱讀(7245)
推薦(0)
摘要:
很多 Java 基礎的東西都忘記了, 有必要再復習一些基本的知識點. 本文主要參考 https://github.com/Snailclimb/JavaGuide Java 訪問限定符的可見性 參考: https://o7planning.org/en/10319/access-modifiers-
閱讀全文
posted @ 2018-11-27 16:39
harrychinese
閱讀(303)
推薦(0)
摘要:
自定義異常類 稍具規模的項目, 一般都要自定義一組異常類, 這樣做的好處是:1. 可以充分利用異常的中斷特性, 簡化代碼的邏輯控制. 2. 在自定義的異常類, 可以設置 BusinessErrorCode 和 error message, 有了統一的 BusinessErrorCode, 排查和聯調
閱讀全文
posted @ 2018-11-24 21:02
harrychinese
閱讀(2681)
推薦(0)
摘要:
視圖函數返回 status code 的方式 Spring 有一個專門的枚舉類型 HttpStatus, 比如 HttpStatus.NOT_FOUND1. 視圖函數返回 ResponseEntity 類型的對象. 2. 在 exception 類加注解 @ResponseStatus, 一旦視圖函
閱讀全文
posted @ 2018-11-22 13:17
harrychinese
閱讀(2354)
推薦(1)
摘要:
JSR 303 規范了bean validation, Hibernate validator實現了JSR 303所有的規范, 同時也是最常用的validator 工具包. 使用 Hibernate validator 可以大大簡化數據驗證工作. 對于 Web 項目, 通常前端需要做一些輸入驗證,
閱讀全文
posted @ 2018-11-20 17:51
harrychinese
閱讀(1956)
推薦(0)
摘要:
Web UI項目中, 很多 Spring controller 視圖函數直接返回 html 頁面, 還有一些視圖函數是要重定向或轉發到其他的 url 上. redirect 和 forward的區別: 重定向 redirect: 完整的重定向包含兩次request-response過程, 第一次是訪
閱讀全文
posted @ 2018-11-19 18:19
harrychinese
閱讀(110735)
推薦(2)
摘要:
在本示例中, 使用 INI 文件來定義用戶和角色. 首先學習一下 INI 文件的規范. Shiro INI 的基本規范 [main]# 在這里定義 SecurityManager 和 Realms 等 [users]# 每一行定義一個用戶, 格式是 username = password, role
閱讀全文
posted @ 2018-11-18 16:48
harrychinese
閱讀(758)
推薦(0)
摘要:
和 Spring Security 項目一樣, Apache Shiro 也是一個被廣泛使用安全框架, 它們都能完成認證、授權、會話管理等. 簡單對比一下 Apache Shiro 和 Spring Security: 1. 適用范圍: Spring Security 必須和 Spring MVC
閱讀全文
posted @ 2018-11-18 11:21
harrychinese
閱讀(1140)
推薦(0)
摘要:
Spring Security 是一個安全框架, 可以簡單地認為 Spring Security 是放在用戶和 Spring 應用之間的一個安全屏障, 每一個 web 請求都先要經過 Spring Security 進行 Authenticate 和 Authoration 驗證. 不得不說, Sp
閱讀全文
posted @ 2018-11-13 14:23
harrychinese
閱讀(8858)
推薦(2)
摘要:
本文轉載自 https://blog.fundebug.com/2018/01/10/how-to-clean-docker-disk/ , 感謝原作者. 摘要:用了Docker,好處挺多的,但是有一個不大不小的問題,它會一不小心占用太多磁盤,這就意味著我們必須及時清理。 作為一個有信仰的技術公司,
閱讀全文
posted @ 2018-11-11 22:14
harrychinese
閱讀(517)
推薦(0)
摘要:
本文基于Pebble官方文檔, 對pebble的語法做一些介紹. Pebble 官方資料 主頁: https://pebbletemplates.io/github wiki: https://github.com/PebbleTemplates/pebble/wiki Pebble 基本語法 表達
閱讀全文
posted @ 2018-11-11 22:09
harrychinese
閱讀(2003)
推薦(0)
摘要:
Java 模板引擎選擇 SpringBoot Starter項目向導中可選的Java模版引擎有:1. Thymeleaf (百里香草葉子)2. Freemarker3. Mustache4. Groovy Templates 簡單評價這些模版引擎吧, 1. Thymeleaf: SpringBoot
閱讀全文
posted @ 2018-11-11 19:39
harrychinese
閱讀(4961)
推薦(0)
摘要:
使用 CommandLineRunner 對Spring Bean進行額外初始化 如果想要在Spring 容器初始化做一些額外的工作, 比如要對Spring Bean 對象做一些額外的工作, 首先想到的方式是, 直接將代碼寫在 main() 函數的 SpringApplication.run()后,
閱讀全文
posted @ 2018-11-09 18:18
harrychinese
閱讀(3328)
推薦(1)
摘要:
RESTful 架構REST 并非一種技術或規范, 而是一種架構風格, 如果一個架構符合Rest的約束條件和原則, 就可以稱作是 RESTful 架構. REST全稱是Representational State Transfer, 省略了定語 Resource, 完整的講法是"資源表現性狀態轉移"
閱讀全文
posted @ 2018-11-08 13:06
harrychinese
閱讀(750)
推薦(0)
摘要:
Spring Boot 通用配置參數https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html Spring 下所有項目的文檔, Spring boot 只是其中一
閱讀全文
posted @ 2018-11-07 12:16
harrychinese
閱讀(5597)
推薦(3)
摘要:
Basic Authorization 規范 Request 頭部:Authorization: Basic QWxpY2U6MTIzNDU2其中 QWxpY2U6MTIzNDU2 是user:pwd做 base64 編碼, 格式是 user:pwd response 頭部: WWW-Authent
閱讀全文
posted @ 2018-11-06 21:43
harrychinese
閱讀(4956)
推薦(0)
摘要:
默認情況下, Spring Security 并不啟用方法級的安全管控. 啟用方法級的管控后, 可以針對不同的方法通過注解設置不同的訪問條件. Spring Security 支持三種方法級注解, 分別是 JSR-205 注解/@Secured 注解/prePostEnabled注解. 這些注解不僅
閱讀全文
posted @ 2018-11-05 15:00
harrychinese
閱讀(5629)
推薦(1)
摘要:
SpringBoot非常適合開發 Restful API程序, 我們都知道為API文檔非常重要, 但要維護好難度也很大, 原因有: 1. API文檔如何能被方便地找到? 以文件的形式編寫API文檔都有這個問題, 使用在線 Wiki 等知識平臺部分地能解決這個問題. 2. API文檔經常過期. API
閱讀全文
posted @ 2018-11-02 15:33
harrychinese
閱讀(1753)
推薦(0)
摘要:
web 項目鑒權 主要的鑒權方式有:1. 用戶名/密碼鑒權, 然后通過 Session/Cookie 保存鑒權結果. 2. 用戶名/密碼鑒權, 通過 Basic authentication 方式, 每次請求都要將 appId/appSecret 加到 HTTP [Authorization] he
閱讀全文
posted @ 2018-10-31 17:01
harrychinese
閱讀(2382)
推薦(0)
摘要:
相關的文章 SpringBoot系列: 與Spring Rest服務交互數據http://www.rzrgm.cn/harrychinese/p/Springboot_SpringRest.html SpringBoot系列: Spring MVC視圖方法的補充https://www.cnb
閱讀全文
posted @ 2018-10-30 17:34
harrychinese
閱讀(13269)
推薦(1)
摘要:
本文基本上摘自純潔的微笑的博客 http://www.ityouknow.com/springcloud/2018/07/20/spring-cloud-consul.html . 感謝作者的付出. 服務注冊基礎組件選擇 在服務注冊這個環節, 業界有很多組件可供選擇, 主要有:1. Spring C
閱讀全文
posted @ 2018-10-29 15:38
harrychinese
閱讀(12535)
推薦(2)
摘要:
Spring JdbcTemplate 事務控制 之前使用 JDBC API 操作, 經常用到的對象有: connection 和 preparedStatement. dbConnection.setAutoCommit(false); //transaction block start //so
閱讀全文
posted @ 2018-10-26 17:42
harrychinese
閱讀(21239)
推薦(1)