日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringCloud微服务:阿里开源组件Nacos,服务和配置管理

發布時間:2025/3/16 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringCloud微服务:阿里开源组件Nacos,服务和配置管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源碼地址:GitHub·點這里||GitEE·點這里

一、阿里微服務簡介

1、基礎描述

Alibaba-Cloud致力于提供微服務開發的一站式解決方案。此項目包含開發分布式應用微服務的必需組件,方便開發者通過SpringCloud編程模型輕松使用這些組件來開發分布式應用服務。只需要添加一些注解和少量配置,就可以將SpringCloud應用接入阿里微服務解決方案,通過阿里中間件來迅速搭建分布式應用系統。

2、核心功能

  • 服務限流降級

默認支持 WebServlet、WebFlux, OpenFeign、RestTemplate、SpringCloudGateway,Zuul,Dubbo和RocketMQ限流降級功能的接入,可以在運行時通過控制臺實時修改限流降級規則,還支持查看限流降級 Metrics 監控。

  • 服務注冊與發現

適配 Spring Cloud 服務注冊與發現標準,默認集成了 Ribbon 的支持。

  • 分布式配置管理

支持分布式系統中的外部化配置,配置更改時自動刷新。

  • 消息驅動能力

基于 Spring Cloud Stream 為微服務應用構建消息驅動能力。

  • 分布式事務

使用 @GlobalTransactional 注解, 高效并且對業務零侵入地解決分布式事務問題。

  • 分布式任務調度

提供秒級、精準、高可靠、高可用的定時(基于Cron表達式)任務調度服務。同時提供分布式的任務執行模型,如網格任務。網格任務支持海量子任務均勻分配到所有 Worker(schedulerx-client)上執行。

3、功能組件

  • Nacos

一個更易于構建云原生應用的動態服務發現、配置管理和服務管理平臺。

  • Sentinel

把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。

  • RocketMQ

一款開源的分布式消息系統,基于高可用分布式集群技術,提供低延時的、高可靠的消息發布與訂閱服務。

  • Dubbo

Apache Dubbo 是一款高性能 Java RPC 框架。

  • Seata

阿里巴巴開源產品,一個易于使用的高性能微服務分布式事務解決方案。

  • OSS

阿里云對象存儲服務(Object StorageService,簡稱OSS),是阿里云提供的海量、安全、低成本、高可靠的云存儲服務。您可以在任何應用、任何時間、任何地點存儲和訪問任意類型的數據。

  • SchedulerX

阿里中間件團隊開發的一款分布式任務調度產品,提供秒級、精準、高可靠、高可用的定時(基于 Cron 表達式)任務調度服務。

4、環境和依賴

  • Nacos服務

Nacos 致力于發現、配置和管理微服務。幫助開發者快速實現動態服務發現、服務配置、服務元數據及流量管理。敏捷構建、交付和管理微服務平臺。首先下載 Nacos 并啟動 Nacos server。

參考文章:Nacos組件,環境搭建和入門案例詳解

  • 版本關系

版本 2.1.x.RELEASE 對應的是 SpringBoot2.1.x版本。版本2.0.x.RELEASE對應的是SpringBoot2.0.x版本。PS通常學習新的東西,最容易讓人犯迷糊的地方就是版本對應關系,問題不好排查,一般都可以參考官網的給的樣例。

二、服務中心管理

1、案例結構

  • 服務端:node08-nacos-server
  • 客戶端:node08-nacos-clien

2、配置文件

配置內容如下:

my:name: cloudinfo: alibaba spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/data_oneusername: rootpassword: 123

核心內容:DataID、文件格式、文件內容的配置。這里還配置了一個MySQL數據源。

3、服務注冊發現

(1)、服務端配置

  • 核心依賴
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.1.RELEASE</version> </dependency>
  • 配置文件
spring:application:name: node08-nacos-servercloud:nacos:discovery:server-addr: 127.0.0.1:8848

這里的name配置和上面DataID一致,就可以讀取上述配置內容。

  • 提供服務接口
@RestController public class ServerWeb {private static Logger logger = LoggerFactory.getLogger(ServerWeb.class) ;@RequestMapping(value = "/web/getMsg",method = RequestMethod.GET)public String getMsg (@RequestParam("name") String name){logger.info("8001 服務被調用...");return "Hello:" + name ;} }
  • 啟動類注解
@SpringBootApplication // SpringCloud原生注解@EnableDiscoveryClient開啟服務注冊發現功能 @EnableDiscoveryClient public class ApplicationServer {public static void main(String[] args) {SpringApplication.run(ApplicationServer.class,args) ;} }

(2)、客戶端配置

  • 核心依賴
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.1.RELEASE</version> </dependency> <!-- Feign組件 --> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.1.3.RELEASE</version> </dependency>

這里也可以基于Feign模式,訪問上述服務端提供的接口服務 。

  • 基于Rest接口訪問

提供接口配置

@Configuration public class RestConfig {@LoadBalanced@Beanpublic RestTemplate restTemplate() {return new RestTemplate();} }

這里用法和SpringCloud原生框架生態相同 。

請求方法

@RestController public class ClientWeb {@Resourceprivate RestTemplate restTemplate ;@RequestMapping(value = "/web/getMsgV1/{name}",method = RequestMethod.GET)public String getMsgV1 (@PathVariable String name){String reqUrl = "http://node08-nacos-server:8001/web/getMsg/"+name ;return restTemplate.getForObject(reqUrl,String.class) ;} }
  • 基于Feign接口訪問

Feign接口配置

@FeignClient("node08-nacos-server") public interface MsgFeign {@GetMapping("/web/getMsg")String getMsg (@RequestParam(name = "name") String name); }

這里用法依舊和SpringCloud原生框架生態相同 。

請求方法

@RestController public class ClientWeb {@Resourceprivate MsgFeign msgFeign ;@RequestMapping(value = "/web/getMsgV2/{name}",method = RequestMethod.GET)public String getMsgV2 (@PathVariable String name){return msgFeign.getMsg(name) ;} }
  • 啟動類配置
@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients(basePackages={"cloud.nacos.client.feign"}) public class ApplicationClient {public static void main(String[] args) {SpringApplication.run(ApplicationClient.class,args) ;} }

三、配置中心管理

通過Nacos的配置管理可以將整合架構體系內配置,集中統一在Nacos中存儲管理。分離的多環境配置,靈活的權限管理。

1、核心依賴

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.1.1.RELEASE</version> </dependency>

2、服務端配置

spring:application:name: node08-nacos-servercloud:nacos:discovery:server-addr: 127.0.0.1:8848config:server-addr: 127.0.0.1:8848file-extension: yaml

這里的核心配置是config配置。

3、配置讀取方式

這里就是Spring框架原生的讀取方式。

@RestController @RefreshScope public class ValueWeb {@Value("${my.name:}")private String myName ;@Value("${my.info:}")private String myInfo ;@RequestMapping("/getNameInfo")public String getNameInfo (){return myName+":"+myInfo ;} }

4、數據庫連接

配置JDBC連接

這里基于Druid連接池,配置JdbcTemplate數據庫訪問API。

@Configuration public class DruidConfig {@Value("${spring.datasource.druid.url}")private String dbUrl;@Value("${spring.datasource.druid.username}")private String username;@Value("${spring.datasource.druid.password}")private String password;@Value("${spring.datasource.druid.driverClassName}")private String driverClassName;/*** Druid 連接池配置*/@Beanpublic DruidDataSource dataSource() {DruidDataSource datasource = new DruidDataSource();datasource.setUrl(dbUrl);datasource.setUsername(username);datasource.setPassword(password);datasource.setDriverClassName(driverClassName);return datasource;}/*** JDBC操作配置*/@Bean(name = "jdbcTemplate")public JdbcTemplate jdbcTemplate (@Autowired DruidDataSource dataSource){return new JdbcTemplate(dataSource) ;} }

測試方法

@RestController public class JdbcWeb {@Resourceprivate JdbcTemplate jdbcTemplate ;@RequestMapping("/getJdbc")public List<String> getJdbc (){String sql = "select phone from d_phone" ;List<String> phoneEntityList = jdbcTemplate.queryForList(sql,String.class) ;return phoneEntityList ;} }

四、案例總結

上面兩個使用案例走下來,感覺和原生SpringCloud的用法區別不大,整體上手難度也不太高,畢竟AlibabaCloud框架是在SpringCloud框架基礎上。適配了阿里很多開源組件,在微服務框架組件選擇上,根據業務需求和團隊的熟悉程序選擇即可。

五、源代碼地址

GitHub地址:知了一笑 https://github.com/cicadasmile/spring-cloud-base GitEE地址:知了一笑 https://gitee.com/cicadasmile/spring-cloud-base

推薦閱讀:微服務架構

《1、項目技術選型簡介,架構圖解說明》

《2、業務架構設計,系統分層管理》

《3、數據庫選型簡介,業務數據規劃設計》

《4、中間件集成,公共服務封裝》

《5、SpringCloud 基礎組件應用設計》

《6、通過業務、應用、技術、存儲方面,聊聊架構》

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的SpringCloud微服务:阿里开源组件Nacos,服务和配置管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 又欲又污又肉又黄短文 | 国产精品海角社区 | 日韩免费淫片 | 亚洲一线二线在线观看 | 国产尤物在线观看 | 91av视频免费观看 | 日本伦理一区二区 | 黄色国产一级 | 91老师国产黑色丝袜在线 | 欧美区一区二 | 日韩久久中文字幕 | 青青草一区二区三区 | www.欧美一区二区三区 | 欧美国产日韩一区二区 | 中文字幕人妻精品一区 | 国产又粗又大又长 | 九月丁香婷婷 | 国产午夜一级一片免费播放 | 在线观看欧美日韩 | 丁香花高清在线 | 精品无码一区二区三区免费 | 天堂中文在线观看 | 香蕉av一区二区 | 中文字幕你懂的 | 欧美黑粗硬| 成人国产在线视频 | 天天摸天天操 | 欧美极品一区 | 亚洲精品九九 | 深夜福利网站在线观看 | 黑森林av| 男人透女人免费视频 | youjizz中国少妇 | 女同久久另类69精品国产 | 日韩美女免费视频 | 少妇又紧又色又爽又刺激视频 | 天天艹夜夜艹 | 亚洲免费成人网 | 久久久久久91亚洲精品中文字幕 | 成人欧美一区二区三区黑人免费 | 风韵丰满熟妇啪啪区老熟熟女 | 靠逼网站在线观看 | 一区二区三区四区免费视频 | 尤物视频在线观看免费 | 奶水旺盛的少妇在线播放 | 不卡av电影在线 | 好吊视频一二三区 | 亚洲男人的天堂在线视频 | 九九色视频| 亚洲а∨天堂久久精品2021 | 69xx免费视频| 久久婷婷五月综合色国产香蕉 | 欧美七区| 激情综合六月 | 日韩视频免费 | 国产精品激情 | 91亚洲精品久久久蜜桃借种 | 中日韩在线| 久久免费一区 | 靠逼网站| 高潮一区二区 | 欧美三级视频在线 | 亚洲国产网址 | 日本黄色不卡 | 51啪影院| 开元在线观看视频国语 | 国产性色视频 | 色多多网站 | 黄色免费一级片 | 在线免费观看黄色片 | 中文字幕在线不卡视频 | 精品人妻码一区二区三区红楼视频 | 亚洲图片欧美 | 99热黄色| 国产图片一区 | 欧美色欧美色 | 肉色丝袜脚交一区二区 | 伊人久久99 | 亚洲视频免费在线观看 | 顶级黑人搡bbw搡bbbb搡 | 国产精品久久久久久久久夜色 | 成人黄色三级 | 最近中文字幕第一页 | 欧美日韩国产免费一区二区三区 | 手机av免费在线观看 | 深夜影院在线观看 | 被黑人各种姿势猛c哭h文1 | 一级特黄aaaaaa大片 | 在线观看视频一区二区三区 | 欧美做爰性生交视频 | 久久久久久久99 | 天天操好逼 | 婷婷五月小说 | a久久久久久 | 日本老太婆做爰视频 | 女优在线观看 | 国产精品熟女视频 | 麻豆av一区 | 在线观看欧美一区二区三区 |