原创 刪除排序數組中的重複項26、80
方法:雙指針法 算法 數組完成排序後,我們可以放置兩個指針 i和 j,其中 i 是慢指針,而 j 是快指針。只要 nums[i]=nums[j],我們就增加 j 以跳過重複項。 當我們遇到nums[j] =nums[i] 時,跳過
原创 互聯網安全架構--信息加密與密鑰管理
1.單向散列加密 散列是信息的提煉,通常其長度要比信息小得多,且爲一個固定長度。加密性強的散列一定是不可逆的,這就意味着通過散列結果,無法推出任何部分的原始信息。任何輸入信息的變化,哪怕僅一位,都將導致散列結果的明顯變化,這稱之爲
原创 互聯網安全架構--安全接口安全設計
1.互聯網開放平臺設計 1.1.需求: 現在A公司與B公司進行合作,B公司需要調用A公司開放的外網接口獲取數據, 如何保證外網開放接口的安全性。 1.2.常用解決辦法: 2.1 使用加簽名方式,防止篡改數據 2.2 使用Https
原创 分佈式解決方案-解決網站跨域請求
1.什麼是網站跨域 跨域原因產生:在當前域名請求網站中,默認不允許通過ajax請求發送其他域名。 兩個項目之間使用ajax(前端類似後端的httpclient)實現通訊,如果瀏覽器訪問的域名和端口與
原创 互聯網安全架構--安全漏洞
常見Web安全漏洞 1.XSS攻擊 1.1什麼是XSS攻擊手段 XSS攻擊使用Javascript腳本注入進行攻擊例如在提交表單後,展示到另一個頁面,可能會受到XSS腳本注入,讀取本地cookie遠程發送給黑客服務器端。 <scr
原创 Elasticsearch安裝和入門
1.Elasticsearch簡單介紹 Elasticsearch (ES)是一個基於Lucene構建的開源、分佈式、RESTful 接口全文搜索引擎。Elasticsearch 還是一個分佈式文檔數據庫,其中每個
原创 elasticsearch倒排索引原理與中文分詞器
1. 索引的方式: 1.1 正向索引 正排表是以文檔的ID爲關鍵字,表中記錄文檔中每個字的位置信息,查找時掃描表中每個文檔中字的信息直到找出所有包含查詢關鍵字的文檔。 這種組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維
原创 Hystrix實現熔斷、降級、服務隔離
1.Hystrix簡介 1.1 使用Hystrix實現服務隔離 Hystrix 是一個微服務關於服務保護的框架,是Netflix開源的一款針對分佈式系統的延遲和容錯解決框架,目的是用來隔離分佈式服務故障。它提供線程
原创 Spring Cloud Sleuth整合Zipkin實現鏈路監控
1.分佈式鏈路監控與追蹤產生背景 在微服務系統中,隨着業務的發展,系統會變得越來越大,那麼各個服務之間的調用關係也就變得越來越複雜。一個 HTTP 請求會調用多個不同的微服務來處理返回最後的結果,在這個調用過程中,
原创 布隆過濾器的實現方式
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>2
原创 SpringBoot整合Sharding-Jdbc
1.Sharding-Jdbc介紹 Sharding-Jdbc在3.0後改名爲ShardingSphere它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(計劃中)這3款相
原创 Mycat查詢原理、取模算法和枚舉算法
1.取模算法 1.1相關配置文件 rule.xml <?xml version="1.0" encoding="UTF-8"?> <!-- - - Licensed under the Apache License, Versio
原创 Mycat入門和讀寫分離實戰
1.什麼是MyCat MyCAT是一款由阿里Cobar演變而來的用於支持數據庫,讀寫分離、分表分庫的分佈式中間件。MyCAT支持Oracle、MSSQL、MYSQL、PG、DB2關係型數據庫,同時也支持MongoD
原创 RabbitMq的安裝和三種常用方式(direct,fanout,topic)
RabbitMq原理 請參考這篇文檔和Springboot整合RabbitMq 1.Rabbit安裝 1.安裝Erlang 由於RabbitMQ依賴Erlang, 所以需要先安裝Erlang。 從EPEL源安裝(這
原创 Kafka原理以及SpringBoot整合Kafka
1.Kafka原理 1. brokers有多個broker組成,broker是指Kafka服務器(192.168.223.140就是其中的一個broker),上面三臺Kafka服務器組成了Kafka集羣 2. broker.id