微服務架構是什么?
是一個用分布式服務拆分業務邏輯,完成解耦的架構模式。
通過將功能分解到各個離散的服務中以實現對解決方案的解耦。
是將一個大型的單個應用程序和服務拆分成為數個甚至數十個的支持微服務,他
可擴展單個組件而不是整個的應用程序堆棧,從而滿足服務等級協議。
.NetCore 微服務技術棧
1、webapi 網關:Ocelot
路由、服務聚合、服務發現、認證、鑒權、限流、熔斷、緩存、Header頭傳遞等
2、彈性和瞬態故障處理庫
Polly
允許開發人員以順暢及線程安全的方式執行重試(Retry),斷路器(Circuit),超時(Timeout),隔板隔離(Bulkhead Isolation)及后背策略(Fallback)。
3、在線調試WebApi
Swagger
4、分布式緩存,消息隊列
Redis,ActiveMQ,Kafka等
5、全文檢索
基於Lucene的框架
1.Apache Solr
Solr是一個高性能,采用Java5開發,基於Lucene的全文搜索服務器。文檔通過Http利用XML加到一個搜索集合中。查詢該集合也是通過http收到一個XML/JSON響應來實現。它的主要特性包括:高效、靈活的緩存功能,垂直搜索功能,高亮顯示搜索結果,通過索引復制來提高可用性,提供一套強大Data Schema來定義字段,類型和設置文本分析,提供基於Web的管理界面等。
2.Elastic Search
ElasticSearch是一個基於Lucene構建的開源,分布式,RESTful搜索引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。支持通過HTTP使用JSON進行數據索引。
6、zookeeper
分布式:用更多的服務器來完成任務。
分布是鎖,數據一致性,分布式事務
分區容錯:斷網,延遲
redis:
setnx(key,value)獲取鎖
expire為鎖添加超時時間
delete(key)釋放鎖
consul/etcd
zookeeper
public Nullable<int> LastModifierId(get;set;) 默認值為null
publiic DateTime? lastModifyTime {get;set;} 時間為null