關于 Spring Boot 微服務解決方案的對比,并以 Spring Cloud Alibaba 為例,詳細說明其核心組件的使用方式、配置及代碼示例

以下是關于 Spring Boot 微服務解決方案的對比,并以 Spring Cloud Alibaba 為例,詳細說明其核心組件的使用方式、配置及代碼示例:

關于 Spring Cloud Alibaba

致力于提供微服務開發的一站式解決方案!
https://sca.aliyun.com/?spm=7145af80.434205f.0.0.74716242oEhMef

在這里插入圖片描述

在這里插入圖片描述


1. 微服務解決方案對比

方案核心組件特點適用場景
Spring Cloud NetflixEureka(注冊中心)、Hystrix(熔斷)、Feign(RPC)、Zuul/Gateway(網關)成熟穩定,社區廣泛,但部分組件(如 Hystrix)已停止維護傳統微服務架構,需兼容舊系統
Spring Cloud AlibabaNacos(注冊/配置中心)、Sentinel(流控降級)、Dubbo/Feign(RPC)、Gateway(網關)阿里巴巴生態,輕量高效,支持云原生,組件活躍維護新項目,需要與阿里云/容器化集成
Spring Cloud ConsulConsul(注冊/配置中心)、Resilience4j(熔斷)、Spring Cloud Gateway(網關)基于 Consul 的強一致性,適合分布式系統需要強一致性分布式環境
Istio/Servie MeshPilot(控制平面)、Envoy(數據平面)、Mixer(策略與遙測)服務網格方案,無侵入式治理,支持多語言云原生環境,多語言微服務架構

2. Spring Cloud Alibaba 微服務開發詳解

2.1 核心組件
組件功能依賴
Nacos服務注冊與發現、動態配置中心spring-cloud-starter-alibaba-nacos-discovery, spring-cloud-starter-alibaba-nacos-config
Sentinel流量控制、熔斷降級、系統負載保護spring-cloud-starter-alibaba-sentinel
Dubbo/Spring MVC服務間通信(RPC)spring-cloud-starter-dubbospring-boot-starter-web
GatewayAPI 網關,路由、鑒權、限流spring-cloud-starter-gateway
Seata分布式事務管理seata-spring-boot-starter
Sleuth+Zipkin分布式鏈路追蹤spring-cloud-starter-sleuth, spring-cloud-sleuth-zipkin

3. 代碼示例:Spring Cloud Alibaba 微服務

3.1 項目依賴(pom.xml)
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2022.0.3</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2022.0.0.0</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement><dependencies><!-- Nacos 服務注冊與發現 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- Nacos 配置中心 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- Sentinel 熔斷降級 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!-- Spring Cloud Gateway --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!-- 分布式事務 Seata --><dependency><groupId>io.seata</groupId><artifactId>seata-spring-boot-starter</artifactId><version>1.7.1</version></dependency>
</dependencies>

3.2 服務提供者(Provider)
3.2.1 配置 application.yml
server:port: 8080spring:application:name: user-servicecloud:nacos:discovery:server-addr: 127.0.0.1:8848  # Nacos 服務器地址config:server-addr: 127.0.0.1:8848extension-configs:- file-extension=yamlgroup: DEFAULT_GROUP
3.2.2 啟動類
@SpringBootApplication
@EnableDiscoveryClient  // 啟用服務注冊
public class UserServiceApplication {public static void main(String[] args) {SpringApplication.run(UserServiceApplication.class, args);}
}
3.2.3 服務接口
@RestController
@RequestMapping("/users")
public class UserController {@GetMapping("/{id}")public User getUser(@PathVariable Long id) {// 業務邏輯return new User(id, "John Doe");}
}

3.3 服務消費者(Consumer)
3.3.1 配置 application.yml
spring:application:name: order-servicecloud:nacos:discovery:server-addr: 127.0.0.1:8848
3.3.2 調用服務
@Service
public class OrderService {@Autowiredprivate RestTemplate restTemplate;public Order createOrder(Long userId) {// 調用 user-serviceUser user = restTemplate.getForObject("http://user-service/users/{userId}", User.class, userId);return new Order(user.getName(), "ORDER-123");}
}

3.4 Nacos 配置中心
3.4.1 配置文件(Nacos 中配置)
# Data ID: user-service.yaml
user:service:timeout: 5000
3.4.2 讀取配置
@ConfigurationProperties(prefix = "user.service")
public class UserConfig {private Integer timeout;// getters/setters
}

3.5 Sentinel 熔斷降級
3.5.1 配置限流規則(Nacos 或本地文件)
[{"resource": "/users/{id}","count": 100,"grade": 1,"limitApp": "default","strategy": 0,"controlBehavior": 0,"statIntervalMs": 1000}
]
3.5.2 注解限流
@RestController
public class UserController {@SentinelResource(value = "getUser", blockHandler = "handleBlock")@GetMapping("/{id}")public User getUser(@PathVariable Long id) {// 業務邏輯}public User handleBlock(BlockException e) {return new User(-1L, "服務不可用");}
}

3.6 API 網關(Spring Cloud Gateway)
3.6.1 配置路由(application.yml)
spring:cloud:gateway:routes:- id: user_routeuri: lb://user-service  # 通過服務名路由predicates:- Path=/api/users/**filters:- StripPrefix=1
3.6.2 啟動類
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}
}

3.7 分布式事務(Seata)
3.7.1 配置 application.yml
seata:enabled: trueapplication-id: ${spring.application.name}tx-service-group: ${spring.application.name}-groupservice:vgroup-mapping:${spring.application.name}-group: defaultgrouplist:default: 127.0.0.1:8091
3.7.2 事務注解
@Service
public class OrderService {@GlobalTransactional(name = "createOrder")public void createOrder() {// 跨服務事務操作userService.createUser();inventoryService.reduceStock();}
}

3.8 分布式鏈路追蹤(Sleuth + Zipkin)
3.8.1 配置 application.yml
spring:zipkin:base-url: http://zipkin-server:9411sleuth:sampler:probability: 1.0  # 100%采樣率
3.8.2 啟動類
@SpringBootApplication
public class TraceApplication {public static void main(String[] args) {SpringApplication.run(TraceApplication.class, args);}
}

4. 組件功能對比表格

組件功能配置方式代碼示例
Nacos服務注冊、發現、動態配置application.yml 配置 Nacos 地址@EnableDiscoveryClient, 配置 server-addr
Sentinel流量控制、熔斷降級JSON 配置規則或代碼動態配置@SentinelResource, 限流規則文件
Gateway路由、鑒權、限流application.yml 定義路由規則@EnableDiscoveryClient, 路由配置文件
Seata分布式事務管理配置 seata-config 和事務組@GlobalTransactional, 配置 seata-application.yml
Sleuth+Zipkin鏈路追蹤配置 Zipkin 服務器地址@SpringBootApplication, 配置 spring.zipkin.base-url

5. 完整項目結構示例

my-microservices/
├── config-center/          # Nacos 配置中心
├── user-service/           # 用戶服務(Provider)
├── order-service/          # 訂單服務(Consumer)
├── gateway/                # API 網關
├── seata-server/           # 分布式事務服務器
└── zipkin-server/          # 鏈路追蹤服務器

6. 關鍵配置步驟

6.1 Nacos 服務注冊
# user-service 的 application.yml
spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848
6.2 Sentinel 熔斷配置
// Sentinel 流量規則配置
@Configuration
public class SentinelConfig {@Beanpublic SentinelGatewayFilterFactory sentinelFilterFactory() {return new SentinelGatewayFilterFactory();}
}
6.3 Seata 分布式事務
# seata-config.conf(放置在 classpath 下)
service {vgroup_mapping.my_test_tx_group = "default"default.grouplist = "127.0.0.1:8091"
}

7. 總結表格

組件功能配置方式代碼示例
Nacos服務注冊/發現、配置中心application.yml 配置服務器地址@EnableDiscoveryClient, 動態配置刷新
Sentinel流量控制、熔斷降級JSON 配置或代碼動態配置@SentinelResource, 限流規則定義
GatewayAPI 網關,路由、鑒權application.yml 定義路由規則@EnableDiscoveryClient, 路由配置文件
Seata分布式事務管理配置 seata-config 和事務組@GlobalTransactional, 事務組配置
Sleuth+Zipkin分布式鏈路追蹤配置 Zipkin 服務器地址@SpringBootApplication, 鏈路日志收集

8. 注意事項

  1. Nacos 集群部署:生產環境需部署 Nacos 集群以保證高可用。
  2. Sentinel 規則管理:建議通過控制臺(nacos-config)動態管理規則。
  3. Seata 性能優化:需配置數據庫事務隔離級別(如 READ_COMMITTED)。
  4. 鏈路追蹤:Zipkin 需獨立部署,支持 HTTP 或 Kafka 模式。

通過以上組件的組合,可以構建一個高可用、可擴展的微服務架構。Spring Cloud Alibaba 的組件設計更貼合云原生需求,適合中大型分布式系統。

番外

以下是關于 微服務服務治理 的詳細說明,涵蓋核心概念、主流框架/解決方案的對比,以及關鍵功能的總結表格:


1. 服務治理核心概念

服務治理是微服務架構中管理服務間通信、監控、容錯、配置等的核心能力。主要功能包括:

  • 服務注冊與發現:動態管理服務實例。
  • 配置中心:集中管理配置。
  • 負載均衡:分發請求流量。
  • 熔斷降級:防止雪崩效應。
  • 服務網關:統一入口,路由與鑒權。
  • 分布式事務:保證跨服務事務一致性。
  • 鏈路追蹤:監控請求鏈路性能。

2. 主流服務治理框架/解決方案對比

2.1 Spring Cloud Netflix(已逐步淘汰)
組件功能特點適用場景
Eureka服務注冊與發現成熟穩定,但維護停止,需遷移到其他方案(如Nacos)過渡期項目,需兼容舊系統
Zuul/GatewayAPI 網關,路由與過濾Zuul 1.x 已停止維護,Spring Cloud Gateway 更推薦需快速搭建網關功能
Hystrix熔斷與降級響應式設計,但代碼侵入性強,維護停止需基礎熔斷功能,但需注意維護狀態
Feign客戶端負載均衡與聲明式服務調用簡單易用,但需與 Ribbon 配合簡單 RPC 場景

2.2 Spring Cloud Alibaba
組件功能特點適用場景
Nacos服務注冊/發現、動態配置中心阿里巴巴生態,輕量高效,支持云原生,社區活躍新項目,與阿里云/容器化集成
Sentinel流量控制、熔斷、系統負載保護支持實時監控,規則動態調整,支持多語言擴展需高并發場景下的流量控制
Dubbo/Spring Cloud服務間通信(RPC)Dubbo 性能高,Spring Cloud 原生集成復雜服務間通信需求
Spring Cloud GatewayAPI 網關,路由、鑒權、限流非侵入式,支持多種過濾器需靈活路由與安全策略

2.3 Consul
組件功能特點適用場景
Consul服務注冊/發現、健康檢查、Key-Value 配置、多數據中心支持自帶配置中心,強一致性,適合分布式系統需強一致性服務發現與配置管理
Envoy服務網格數據平面,支持流量管理、熔斷、鏈路追蹤非侵入式,支持多語言,但需額外部署多語言微服務架構

2.4 Istio
組件功能特點適用場景
Istio服務網格,支持流量管理、熔斷、鏈路追蹤、安全策略非侵入式,支持多語言,與 Kubernetes 深度集成云原生環境,多語言微服務架構
Pilot控制平面,管理服務路由和規則需配合 Envoy 或其他數據平面需復雜流量管理(如金絲雀發布)

2.5 Apache Dubbo
組件功能特點適用場景
Dubbo服務注冊/發現、高性能 RPC、負載均衡、熔斷降級性能高,適合 Java 生態,需配合 ZooKeeper/Nacos高性能 Java 微服務架構
Dubbo 3.x支持云原生,集成 Nacos/Sentinel兼容 Spring Cloud,支持多語言擴展需高性能與云原生結合

2.6 Kubernetes + Istio
組件功能特點適用場景
Kubernetes容器編排,服務發現,健康檢查生態完善,支持自動化部署與擴縮容容器化部署,需與 Istio 集成
Istio服務網格,流量管理、安全策略、鏈路追蹤非侵入式,支持多語言,需額外資源消耗云原生環境,多語言服務治理

2.7 Service Mesh(如 Linkerd)
組件功能特點適用場景
Linkerd服務網格,輕量級流量控制、熔斷、監控性能低開銷,支持多語言,社區活躍需輕量級服務治理與多語言支持

2.8 HashiCorp Nomad
組件功能特點適用場景
Nomad作業調度與服務治理,支持服務發現、健康檢查與 Consul 集成,適合混合云環境需統一調度與服務治理的混合云場景

3. 核心功能對比表格

框架/方案服務注冊發現配置中心熔斷降級API 網關分布式事務鏈路追蹤社區活躍度適用場景
Spring Cloud NetflixEureka自定義HystrixZuul/Gateway不直接支持Sleuth+Zipkin逐漸衰退過渡期項目,需兼容舊系統
Spring Cloud AlibabaNacosNacosSentinelGatewaySeataSleuth+Zipkin活躍新項目,阿里云生態
ConsulConsulConsul自定義API Gateway不直接支持自定義活躍強一致性分布式系統
Istio自帶發現ConfigMap自帶熔斷自帶網關自定義Jaeger非常活躍云原生,多語言微服務
DubboZooKeeper/Nacos自定義自帶熔斷自定義Dubbo-TCCSkyWalking活躍高性能 Java 架構
Kubernetes+IstioKubernetesConfigMapIstioIstio自定義Jaeger非常活躍容器化部署,云原生
**Service Mesh(Linkerd)自帶發現自定義自帶熔斷自帶網關自定義自定義活躍需輕量級治理與多語言支持

4. 功能實現對比

4.1 服務注冊發現
  • Nacos:輕量、支持集群、多數據中心。
  • Consul:強一致性,內置健康檢查。
  • Kubernetes:基于 DNS 或 CoreDNS,適合容器環境。
4.2 配置中心
  • Nacos:動態配置推送,支持多環境。
  • Consul:Key-Value 存儲,需自定義監聽。
  • Spring Cloud Config:基于 Git,適合 GitOps。
4.3 熔斷降級
  • Sentinel:實時統計,支持多維度限流。
  • Hystrix:成熟但維護停止。
  • Istio:基于 Sidecar 的流量控制。
4.4 分布式事務
  • Seata:AT 模式支持自動事務,需數據庫支持。
  • Saga:基于消息補償,適合長事務。
  • Istio:通過 Sidecar 實現分布式追蹤與補償。

5. 選擇建議

需求場景推薦方案原因
Java 生態,快速啟動Spring Cloud Alibaba (Nacos+Sentinel)阿里生態完善,配置簡單,社區活躍。
云原生,多語言支持Istio + Kubernetes非侵入式,與容器生態深度集成。
高性能 RPC,Java 為主Dubbo 3.x + Nacos性能高,支持云原生,與 Spring Cloud 兼容。
混合云環境,強一致性需求Consul + Envoy強一致性服務發現,支持多數據中心。
輕量級治理,無需 SidecarSpring Cloud Alibaba代碼侵入式,適合中小型項目。

6. 典型場景代碼示例(Spring Cloud Alibaba)

6.1 服務注冊與發現(Nacos)

配置 application.yml

spring:application:name: user-servicecloud:nacos:discovery:server-addr: 127.0.0.1:8848

啟動類:

@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {public static void main(String[] args) {SpringApplication.run(UserServiceApplication.class, args);}
}

6.2 熔斷降級(Sentinel)

配置限流規則(JSON):

[{"resource": "/users/{id}","count": 100,"grade": 1,"strategy": 0,"controlBehavior": 0}
]

代碼注解:

@RestController
public class UserController {@SentinelResource(value = "getUser", blockHandler = "handleBlock")@GetMapping("/{id}")public User getUser(@PathVariable Long id) {// 業務邏輯}public User handleBlock(BlockException e) {return new User(-1L, "服務不可用");}
}

6.3 API 網關(Spring Cloud Gateway)

路由配置 application.yml

spring:cloud:gateway:routes:- id: user_routeuri: lb://user-servicepredicates:- Path=/api/users/**filters:- StripPrefix=1

6.4 分布式事務(Seata)

配置 application.yml

seata:enabled: trueapplication-id: ${spring.application.name}tx-service-group: ${spring.application.name}-group

事務注解:

@Service
public class OrderService {@GlobalTransactionalpublic void createOrder() {// 跨服務事務操作userService.createUser();inventoryService.reduceStock();}
}

7. 總結表格

框架/方案服務治理能力非侵入性多語言支持學習成本適用場景
Spring Cloud Alibaba完整部分侵入式有限中等新項目,阿里云生態
Istio完整非侵入式完全云原生,多語言微服務
Consul完整部分侵入式有限中等強一致性分布式系統
Dubbo完整部分侵入式有限中等高性能 Java 架構
Kubernetes+Istio完整非侵入式完全容器化部署,云原生
**Service Mesh(Linkerd)完整非侵入式完全輕量級治理,多語言支持

8. 注意事項

  1. Spring Cloud Netflix:組件(如 Hystrix)已停止維護,建議遷移到 Resilience4j 或 Sentinel。
  2. Istio:需部署 Sidecar,資源消耗較高,適合云原生環境。
  3. Nacos:支持服務發現與配置中心一體化,適合快速搭建。
  4. Seata:需數據庫支持,適合需強事務一致性的場景。

通過以上對比和示例,開發者可根據項目需求選擇合適的治理方案。對于新項目,Spring Cloud AlibabaIstio 是主流選擇,前者適合 Java 生態,后者適合云原生多語言架構。

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

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

相關文章

常見的爬蟲算法

1.base64加密 base64是什么 Base64編碼&#xff0c;是由64個字符組成編碼集&#xff1a;26個大寫字母AZ&#xff0c;26個小寫字母az&#xff0c;10個數字0~9&#xff0c;符號“”與符號“/”。Base64編碼的基本思路是將原始數據的三個字節拆分轉化為四個字節&#xff0c;然后…

B樹、紅黑樹、B+樹和平衡二叉樹(如AVL樹)的區別

B樹、紅黑樹、B樹和平衡二叉樹&#xff08;如AVL樹&#xff09;的區別及優缺點的總結&#xff1a; 1. 平衡二叉樹&#xff08;AVL樹&#xff09; 結構&#xff1a;二叉搜索樹&#xff0c;每個節點的左右子樹高度差不超過1。平衡方式&#xff1a;通過旋轉&#xff08;左旋/右旋…

Python Cookbook-6.5 繼承的替代方案——自動托管

任務 你需要從某個類或者類型繼承&#xff0c;但是需要對繼承做一些調整。比如&#xff0c;需要選擇性地隱藏某些基類的方法&#xff0c;而繼承并不能做到這一點。 解決方案 繼承是很方便的&#xff0c;但它并不是萬用良藥。比如&#xff0c;它無法讓你隱藏基類的方法或者屬…

長短期記憶網絡:從理論到創新應用的深度剖析

一、引言 1.1 研究背景 深度學習在人工智能領域的發展可謂突飛猛進&#xff0c;而長短期記憶網絡&#xff08;LSTM&#xff09;在其中占據著至關重要的地位。隨著數據量的不斷增長和對時序數據處理需求的增加&#xff0c;傳統的神經網絡在處理長序列數據時面臨著梯度消失和梯…

vue3.2 + element-plus 實現跟隨input輸入框的彈框,彈框里可以分組或tab形式顯示選項

效果 基礎用法&#xff08;分組選項&#xff09; 高級用法&#xff08;帶Tab欄&#xff09; <!-- 彈窗跟隨通用組件 SmartSelector.vue --> <!-- 彈窗跟隨通用組件 --> <template><div class"smart-selector-container"><el-popove…

C語言中冒泡排序和快速排序的區別

冒泡排序和快速排序都是常見的排序算法&#xff0c;但它們在原理、效率和應用場景等方面存在顯著區別。以下是兩者的詳細對比&#xff1a; 一、算法原理 1. 冒泡排序 原理&#xff1a;通過重復遍歷數組&#xff0c;比較相鄰元素的大小&#xff0c;并在必要時交換它們的位置。…

軟件信息安全性測試如何進行?有哪些注意事項?

隨著信息技術的高速發展&#xff0c;軟件已經成為我們生活和工作中不可或缺的一部分。然而&#xff0c;隨著軟件產品的廣泛普及&#xff0c;軟件信息安全性問題也日益凸顯&#xff0c;因此軟件信息安全性測試必不可少。那么軟件信息安全性測試應如何進行呢?在進行過程中又有哪…

springboot集成mybaits-generator自動生成代碼

文章目錄 概述創建springboot項目pom文件aplication.yml代碼生成類mybatis-plus提供的變量controller模板mapper模板總結 概述 創建springboot項目&#xff0c;在這里使用的是springboot 2.6.13版本&#xff0c;引入的項目依賴包如pom文件所寫&#xff0c;jdk使用1.8&#xff…

數據庫脫褲

假設你已經getshell 找到mysql賬號密碼。 網站要連接mysql&#xff0c;就需要把mysql的賬號密碼保存在一個php文件中&#xff0c;類似config.php、common.inc.php等&#xff0c;在shell中&#xff0c;讀取這些文件&#xff0c;找到其中信息即可 下面是一些常見平臺的配置文…

leetcode 337. House Robber III

用動態規劃的思想解決這道題。 對于每一個節點&#xff0c;只有兩種可能&#xff0c;偷或者不偷。 對于一顆以root為根節點的二叉樹&#xff0c;定義rob表示偷root節點能從這棵二叉樹偷到的最大金額。定義notrob表示不偷root節點能從這棵二叉樹偷到的最大金額。 遞推公式分析…

ES和MySQL概念對比

基本概念 ES和MySQL都屬于數據庫&#xff0c;不過各有各的特性&#xff0c;大致使用方法與MySQL類似并無區別。 MySQL&#xff1a;擅長事務持有ACID的特性&#xff0c;確保數據的一致性和安全。 ES&#xff1a;持有倒排索引&#xff0c;適合海量數據搜索和分析。 ES和MySQL如何…

【python】針對Selenium中彈框信息無法定位的問題,以下是綜合解決方案及注意事項:

一、常見原因分析 1.1 彈窗類型不匹配 若彈窗為alert&#xff0c;需使用driver.switch_to.alert處理&#xff1b; 若為confirm或prompt&#xff0c;同樣適用該方法。 1.2 窗口句柄切換問題 新窗口或彈窗可能開啟新句柄&#xff0c;需先通過driver.window_handles切換到對應句…

歐拉服務器操作系統安裝MySQL

1. 安裝MySQL服務器?? 1. 更新倉庫緩存 sudo dnf makecache2. 安裝MySQL sudo dnf install mysql-server2. 初始化數據庫? sudo mysqld --initialize --usermysql3. 啟動數據庫服務 # 啟動服務 sudo systemctl start mysqld# 設置開機自啟 sudo systemctl enable mysql…

SQLark:一款國產免費數據庫開發和管理工具

SQLark&#xff08;百靈連接&#xff09;是一款面向信創應用開發者的數據庫開發和管理工具&#xff0c;用于快速查詢、創建和管理不同類型的數據庫系統&#xff0c;目前可以支持達夢數據庫、Oracle 以及 MySQL。 對象管理 SQLark 支持豐富的數據庫對象管理功能&#xff0c;包括…

Spring Boot 中的自動配置原理

2025/4/6 向全棧工程師邁進&#xff01; 一、自動配置 所謂的自動配置原理就是遵循約定大約配置的原則&#xff0c;在boot工程程序啟動后&#xff0c;起步依賴中的一些bean對象會自動的注入到IOC容器中。 在講解Spring Boot 中bean對象的管理的時候&#xff0c;我們注入bean對…

Mysql8配置文件

Mysql8配置文件 修改my.cnf----配置持久化鍵(persistence key)配置表名不區分大小寫 修改my.cnf----配置持久化鍵(persistence key) MySQL8初始化數據庫之前配置好這些變量值&#xff0c;初始化數據庫之后可能無法修改這個值。 # 服務端配置 [mysqld] ######## 數據目錄和基…

關于系統架構思考,如何設計實現系統的高可用?

緒論、系統高可用的必要性 系統高可用為了保持業務連續性保障&#xff0c;以及停機成本量化&#xff0c;比如在以前的雙十一當天如果出現宕機&#xff0c;那將會損失多少錢&#xff1f;比如最近幾年Amazon 2021年30分鐘宕機損失$5.6M。當然也有成功的案例&#xff0c;比如異地…

【Unity筆記】實現可視化配置的Unity按鍵輸入管理器(按下/長按/松開事件 + UnityEvent綁定)

【Unity筆記】實現可視化配置的Unity按鍵輸入管理器 適用于角色控制、技能觸發的Unity按鍵輸入系統&#xff0c;支持UnityEvent事件綁定、長按/松開監聽與啟用開關 一、引言 在 Unity 游戲開發中&#xff0c;處理鍵盤輸入是最常見的交互方式之一。尤其是角色控制、技能釋放、菜…

Fortran 中使用 C_LOC 和 C_F_POINTER 結合的方法來實現不同類型指針指向同一塊內存區域

在 Fortran 中&#xff0c;可以使用 C_LOC 和 C_F_POINTER 結合的方法來實現不同類型指針指向同一塊內存區域。以下是具體方法和示例&#xff1a; 關鍵步驟&#xff1a; 獲取內存地址&#xff1a;用 C_LOC 獲取原始數組的 C 地址。類型轉換&#xff1a;用 C_F_POINTER 將地址轉…

Spring Boot整合Kafka的詳細步驟

1. 安裝Kafka 下載Kafka&#xff1a;從Kafka官網下載最新版本的Kafka。 解壓并啟動&#xff1a; 解壓Kafka文件后&#xff0c;進入bin目錄。 啟動ZooKeeper&#xff1a;./zookeeper-server-start.sh ../config/zookeeper.properties。 啟動Kafka&#xff1a;./kafka-server-…