原创 RSA加密在與銀行端Http REST接口調用中的應用

簡單介紹一下我們項目的背景,我們公司是金融公司A,開發的這個系統是一個跟第三方銀行B進行接口調用的系統,每天公司A內部系統會生成一批數據,這些數據包括公司客戶名,身份證號,銀行卡號,扣款金額等信息,會通過HTTP Web API接口調用的

原创 SpringBoot項目中對RestTemplate進行網絡代理Proxy設置使得Fiddler能夠進行抓包

Fiddler是非常好用的工具,能夠非常方便的分析Http請求。最近SpringBoot項目需要使用RestTemplate調用遠程的一個Rest API. 使用Postman測試調用那個API的時候一切正常,使用Java代碼RestTe

原创 MQ分佈式環境下保持數據一致性

業務場景: 支付寶的餘額系統與螞蟻金服的餘額寶是兩個對立的平臺,相互之間通過ActiveMQ進行通信。當用戶把1000塊錢從餘額存進餘額寶的時候,餘額系統數據庫減1000,然後發送一個消息到MQ,餘額寶端接收到這個消息後,在其數據庫中加1

原创 電商秒殺系統應對高併發相關的技術

在電商秒殺系統中,短時間內應對大量請求,造成高併發。這樣,程序應該儘可能的過濾掉無效的請求,然後對於有效請求,使用各種技術進行處理。   1. 對網頁中的圖片或者不經常改動的其他靜態資源進行瀏覽器端的緩存。                

原创 SpringBoot+Mybatis+Logback不在控制檯打印SQL問題

本項目用到的是SpringBoot+Mybatis+Logback. 爲了能夠在控制檯打印SQL,在配置文件中進行了各種配置,網上能查到的方法都試了,但是還是不打印SQL語句。 在配置文件中標明瞭logging.level.cn.home

原创 使用延遲隊列處理失效訂單問題

在處理訂單過程中,如果一個訂單生成之後,在特定時間內(比如15分鐘)沒有付款,那麼我們就要刪除這一筆訂單,釋放佔據的貨物資源。在這種場景下,最直觀的做法就是寫一個定時job, 每分鐘掃描一下數據庫的訂單表,如果訂單超過了15分鐘,那

原创 Redis連接池的簡單設計與實現

連接池屬於一種池化技術,在現在高併發場景下用的很多,其作用如下。 1. 與Redis服務器是TCP管道連接。TCP的創建需要三次握手,如果使用連接池技術,不用每次都是創建TCP連接,避免了耗時的三次握手操作。而且在非池化的情況下,每次的T

原创 電商系統ID生成策略簡單介紹

在系統中生成ID的方式有很多種,現在簡單分析一下各種方式的適用場景以及優缺點。 1. UUID. 唯一性,在單體環境下或者分佈式環境下都不會出現重複。但是UUID的劣勢也是一大堆  a.沒有可讀性,導致程序在調試的時候數據不直觀,不能像整

原创 WCF中The socket connection was aborted可能導致該異常的原因

The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being

原创 按照指定字段刪除DataTable中的重複行

在DataTable中,如果要刪除重複行,可以使用如下代碼。 DataView dv = new DataView(finalResultSet.ResultDataTable); DataTable dt2 = dv.ToTable(

原创 腳本語言的特徵以及Python語言的特點

腳本語言的腳本這一說法緣於Unix操作系統,目的是讓其批量的,按照既定的方式去做一些事情,就想照着劇本做事一樣。英文中的script就是劇本的意思,中文對應的詞就是劇本,腳本。腳本就是劇本意思。人們叫着叫着就這樣了,大家都叫腳本語言,沒有

原创 Winsw將java應用轉變爲windows服務時拋出異常"錯誤 1067:進程意外終止"

使用winsw(Github https://github.com/kohsuke/winsw)可以非常方便的將java應用轉換成windows service服務部署在windows服務器上。 詳細操作步驟可以搜索一下,文檔比較豐富。

原创 對於SpringBoot是否支持JSP簡單理解的知識總結

1. SpirngBoot並不是不支持JSP,而是在某些情況下不支持JSP,對於JSP有一些限制。在其官網上寫明瞭使用JSP的限制有4點 如果在SpringBoot中使用JSP作爲渲染引擎,方法有2種。第一種,引入Jasper包,並且需

原创 @Configuration與@Bean註解的原理

@Configuration與@Bean結合使用。@Configuration可理解爲用spring的時候xml裏面的<beans>標籤,@Bean可理解爲用spring的時候xml裏面的<bean>標籤。Spring Boot不是spr

原创 ORA-01008: 並非所有變量都已綁定

OPEN PO_EXPCUR FOR V_QUERY_SQL USING … 這句代碼在參數設置錯誤的時候會拋出ORA-01008: 並非所有變量都已綁定 原因:在執行動態SQL語句的時候,SQL字符串中填充的變量與USING關鍵字中綁