SpringBoot和微服務學習記錄Day2

微服務

微服務將單體應用分割成更小的的獨立服務,部署在不同的服務器上。服務間的關聯通過暴露的api接口來實現

優點:高內聚低耦合,一個模塊有問題不影響整個應用,增加可靠性,更新技術方便
缺點:增加運維難度,分布式系統復雜,測試開發部署較于單體應用不便

常見微服務架構的技術棧

1.Dubbo 阿里出品,后捐贈Apache
2.SpringCloud Netfilx (逐漸淘汰)
3.SpringCloud Spring官方
4.SpringCloudAlibaba

注冊中心

微服務通過http協議使不同的服務進行通信,這些服務需要放在一個池子里進行管理,這就是服務的注冊中心,并且其本身也是一個微服務

特點

1.可以對所有微服務信息存儲,IP地址端口號,名稱
2.查詢可用的微服務和對應的網絡地址進行服務的調用(進網吧分配機子)
3.對微服務進行心跳檢測,如果某個微服務宕機,從注冊表中移除

常用的注冊中心

Eureka
Consul
Zookeeper
Nacos

CAP定理:不能同時滿足以下三原則

C:一致性,數據的一致,所有節點的數據副本都是最新的
A:可用性,一定時間內保證獲取數據,即使某些結點發生故障,及時反饋
P:分區容錯性,必須滿足的條件

為了保證一致性,所有數據一致,發生網絡故障就需要阻塞相關資源,也滿足不了可用性,因此兩者矛盾

Eureka:

1.向服務端和客戶端分別引入各自依賴
2.配置文件中向注冊中心中注冊
3.服務端取消迫切注冊,取消自身注冊
4.客戶端需要加上@EanableEurakaClient注解,表示是客戶端
5.服務端有自我保護機制,心跳檢測,90秒是否在線,也可以關閉
6.不能保證數據一致性,逐漸被淘汰

Consul:

1.用于代替Eureka,它保證了一致性和分區容錯性?
2.啟動consul,默認端口是8500
3.注冊客戶端,引入consul依賴同時引入健康檢查依賴,否則即使服務可用,consul也獲取不到狀態

微服務中模塊間相互調用

1.必須在注冊中心注冊過
2.使用RestTemplate調用接口
3.服務間其實是跨域請求,但是因為在注冊中心注冊過,可以接受請求

負載均衡

將請求通過特定的算法(默認是輪詢策略),均勻的分配到服務器集群中,優化資源的使用,提升可靠性

OpenFeign

一種解決集群負載均衡的技術,相較于RestTemlpate + Ribbon這種實現,它不需要具體的發送http請求,簡化操作

1.引入OpenFeign依賴,在主啟動類加上@EnableFeignClients注解
2.創建接口,在接口上加上@FeignClient注解,寫上集群的名稱
3.創建請求方法,與對應請求服務的路徑一致,之后在其他服務中注入該接口調用方法
4.get請求傳參即使只有一個參數也要加上@RequstParam注解

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77314.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77314.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網站集群批量管理-Ansible劇本與變量

復盤內容:鏈接指北 查看ansible命令文檔 ansible-doc -s systemd一、劇本 何為劇本: playbook 文件,用于長久保存并且實現批量管理,維護,部署的文件. 類似于腳本存放命令和變量 劇本yaml格式,yaml格式的文件:空格,冒號. 劇本未來我們批量管理,運維必會的內容. …

如何在Dify中安裝運行pandas、numpy庫(離線、在線均支持,可提供遠程指導)

pandas和numpy這兩個庫是數據科學和數據分析中經常使用的工具包,原生的Dify無法直接使用這兩個庫,需要手動安裝后才可以使用。本文將介紹如何在Dify中安裝pandas和numpy,并在代碼執行節點中運行使用pandas和numpy。 Dify的代碼執行節點中的py…

Helm核心概念與常見操作介紹

在管理Kubernetes集群里的應用時,Helm能幫上大忙,它把應用的部署、升級和管理變得簡單多了,有如是Kubernetes的 “應用商店”。 Helm的三個重要概念 三大概念最直接的理解:Helm 安裝 charts 到 Kubernetes 集群中,每…

rkmpp 解碼 精簡mpi_dec_test.c例程

rkmpp 解碼流程(除 MPP_VIDEO_CodingMJPEG 之外) 源碼 輸入h264碼流 輸出nv12文件 /** Copyright 2015 Rockchip Electronics Co. LTD** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file exce…

用一個實際例子快速理解MCP應用的工作步驟

已經有很多的文章介紹MCP server,MCP Client工作原理,這里不做太多介紹。但是很多介紹都只是側重介紹概念,實際的工作原理理解起來對初學者還是不太友好。本文以一個智能旅游咨詢系統為例,詳細說明在利用 Model Context Protocol&…

【LeetCode 題解】數據庫:1321.餐館營業額變化增長

一、問題描述 本題給定了一個名為 Customer 的表,記錄了餐館顧客的交易數據,包括顧客 ID、姓名、訪問日期和消費金額。作為餐館老板,我們的任務是分析營業額的變化增長情況,具體來說,就是計算以 7 天(某日…

【Python】讀取xlsb或xlsx的單一或連續單元格工具類

代碼主要來自Kimi.ai,有修改。 優先使用工作表序號索引工作表,序號從1開始。 運行需要先安裝openpyxl和pyxlsb兩個第三方庫。 import openpyxl from openpyxl.utils import range_boundaries from pyxlsb import open_workbook as open_xlsbclass Exc…

【藍橋杯】動態規劃:背包問題

這篇文章主要記錄動態規劃方面的學習。 動態規劃的核心思想: 把大問題分解成小問題,記住小問題的解,避免重復計算。 動態規劃(DP)的三大特點: ①最優子結構:大問題的最優解可以由小問題的最優解推導出來 ②重疊子問題:在求解過程中會反復遇到相同的小問題 ③無后效…

華為數字芯片機考2025合集1已校正

單選 1.以下低功耗措施中,哪種不是降低電路翻轉率的方法? A.在不進行算術運算的時候,使這些模塊的輸入保持不變,不讓新的操作數進來 B.采用Gray 碼或One‐hot 碼作為狀態機編碼 C.減少電路中的glitch D.重新安排“if‐else”表達…

React 列表渲染

開發環境:Reacttsantd 你可能經常需要通過 JavaScript 的數組方法 來操作數組中的數據,從而將一個數據集渲染成多個相似的組件。在這篇文章中,你將學會如何在 React 中使用 filter() 篩選需要渲染的組件和使用 map() 把數組轉換成組件數組。 …

力扣刷題DAY11(動態規劃-線性DP)

一、最長上升子序列 300. 最長遞增子序列 &#xff08;一&#xff09;初版代碼 class Solution { public:int lengthOfLIS(vector<int>& nums) {int n nums.size();vector<int> f(n 1, 1); //初始化為1&#xff0c;因為每個數至少可以作為一個單獨的序列in…

DFS--

數字的全排列 #include <bits/stdc.h> using namespace std;//最大的排列數目 const int N10; int n; //存儲排列的路徑 int path[N]; //標記數字是否已經被使用 bool st[N];void dfs(int u){//到達遞歸邊界&#xff0c;輸出一個排列if(un){//輸出循環for(int i0; i<…

棧與隊列及其基礎應用

一.棧 1.棧的定義 棧是一種特殊的線性表&#xff0c;其只允許在固定的一端進行插入和刪除元素操作。進行數據插入和刪除操作的一端稱為棧頂&#xff0c;另一端稱為棧底。棧中的數據元素遵守后進先出LIFO&#xff08;Last In First Out&#xff09;的原則。其結構可以參考羽毛…

openEuler-22.03-LTS-SP3 編譯安裝 Greenplum-db 6.20.0

openEuler-22.03-LTS-SP3 編譯安裝 Greenplum-db 6.20.0 1、配置 yum 華為源2、安裝依賴3、源碼安裝 openssl 1.0.1u3.1、openssl 1.1.1 降級到 openssl 1.0.1 4、源碼安裝 python 2.75、使用 pip3 安裝 Python 相關依賴6、編譯安裝 Greenplum-db 6.20.06.1、修改配置6.2、基于…

機器學習02——概要

一、簡介 機器學習是一門在沒有明確編程的情況下讓計算機學習的科學。 監督學習是有目標的&#xff0c;輸入數據對應明確的輸出&#xff1b;無監督學習則是“探索”型的&#xff0c;模型的目標是從數據中發現潛在的模式或結構&#xff0c;而不需要預先知道標簽。 二、機器學…

swift-08-屬性、匯編分析inout本質

一、Swift中跟實例相關的屬性可以分為2大類 1.1 存儲屬性&#xff08; Stored Property&#xff09; 類似于成員變量這個概念 存儲在實例的內存中 結構體、類可以定義存儲屬性 枚舉不可以定義存儲屬性&#xff08;因為枚舉只存儲關聯值和case&#xff09; 1.2 計算屬性&am…

【HarmonyOS Next之旅】DevEco Studio使用指南(十二)

目錄 1 -> Code Linter代碼檢查 2 -> 配置代碼檢查規則 3 -> 查看/處理代碼檢查結果 1 -> Code Linter代碼檢查 Code Linter針對ArkTS/TS代碼進行最佳實踐/編程規范方面的檢查。 可根據掃描結果中告警提示手工修復代碼缺陷&#xff0c;或者執行一鍵式自動修復…

前端vue項目打包成桌面端exe應用

主要 使用 Electron將 vue項目打包為 exe 1.首先下載Electron git clone https://github.com/electron/electron-quick-start cd electron-quick-start npm install安裝完依賴之后 npm start運行成功 注意&#xff1a;如果你的項目使用了VueRouter&#xff0c;那么切記&…

基于springcloud的“微服務架構的巡游出租管理平臺”的設計與實現(源碼+數據庫+文檔+PPT)

基于springcloud的“微服務架構的巡游出租管理平臺”的設計與實現&#xff08;源碼數據庫文檔PPT) 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;springcloud 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系統展示 系統總體結構圖 E-R實體關系圖…

新一代達夢官方管理工具SQLark:可視化建表操作指南

在數據庫管理工作中&#xff0c;新建表是一項基礎且頻繁的操作。SQLark 的可視化建表功能為我們提供了一種高效、便捷且絲滑流暢的建表新體驗。一起來了解下吧。 SQLark 官方下載鏈接&#xff1a;www.sqlark.com 新建表作為常見的功能&#xff0c;相比其他管理工具&#xff0c;…