當前位置:首頁 > 公眾號精選 > 架構師社區(qū)
[導讀]前言Nacos是阿里巴巴開源的服務注冊中心以及配置中心,致力于給開發(fā)者提供一款便捷、簡單上手的開源框架。Nacos究竟有什么驚人的地方呢?看下圖:從上圖不難看出阿里巴巴的野心,一個Nacos干掉了SpringCloud的三大組件,分別是注冊中心Eureka、服務配置Config,...

前言

Nacos是阿里巴巴開源的服務注冊中心以及配置中心,致力于給開發(fā)者提供一款便捷、簡單上手的開源框架。

Nacos究竟有什么驚人的地方呢?看下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
從上圖不難看出阿里巴巴的野心,一個Nacos干掉了Spring Cloud的三大組件,分別是注冊中心Eureka、服務配置Config,服務總線Bus。

本文目錄結構如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

為什么Nacos這么受歡迎?

Nacos官方文檔的介紹中有這么一句話,如下:

Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。Nacos 是構建以“服務”為中心的現(xiàn)代應用架構 (例如微服務范式、云原生范式) 的服務基礎設施。

什么意思呢?不著急,有對比才有傷害。

Eureka、Config這兩個組件相信大家都用過,有什么感受?

當然,這兩個組件給我最直觀的感受就是繁瑣,原因如下:

  1. 無論是Eureka還是Config都必須自己搭建個服務
  2. 英文界面不是那么友好
用過Nacos的開發(fā)者都說很爽,不用自己搭建服務,阿里給你準備好了服務,只需要啟動即可;界面中英文都有,很適合初學者。

當然最重要的原因就是以上組件很可能面臨停更、比如Eureka已經(jīng)停更了,誰知道后面其他的組件會不會如此呢?

如何自學呢?

對于初學者當然是官方文檔了,下面作者列出了Nacos相關的官方文檔:

  • https://nacos.io/zh-cn/docs/what-is-nacos.html(中英文兼?zhèn)洌?/li>
  • https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html(英文)
  • https://github.com/alibaba/nacos(Nacos項目倉庫)

本文版本說明

基于Maven構建的微服務項目,各個組件版本如下:

  • JDK1.8
  • Spring Boot-2.2.2.RELEASE
  • SpringCloud-Hoxton.SR3
  • SpringCloud Alibaba-2.2.1.RELEASE
注意:Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本可不是隨便選擇的,官網(wǎng)明確規(guī)定了各個版本的適配:https://github.com/alibaba/spring-cloud-alibaba/wiki,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
不同版本的Alibaba也對應了不同組件的版本,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
一定要完全按照文檔給出的版本來選擇,不然會出現(xiàn)意想不到的BUG,那豈不是雞雞....

作者使用的是分模塊的聚合項目演示,其中dependencyManagement依賴如下,對應著上文提到的版本:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
注意:如果你的版本的不是和作者一樣,請一定嚴格按照官方文檔給的版本進行適配,否則會有意想不到的BUG....

啟動Nacos服務

根據(jù)上面作者選擇的Spring Cloud Alibaba的版本,對應的Nacos版本是1.2.1,直接去GitHub(https://github.com/alibaba/nacos/tags)下載對應的版本即可,可以選擇windows或者Linux,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
下載完成之后直接解壓即可,從它的目錄結構和文件名稱一看這就是一個Spring Boot 項目。

進入/bin目錄,有兩個腳本,如下:

  • startup.cmd:windows平臺的啟動腳本
  • startup.sh:Linux平臺的啟動腳本
由于作者本地是windows,直接雙擊startup.cmd啟動項目,出現(xiàn)以下界面則啟動完成:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
在瀏覽器輸入http://localhost:8848/nacos進入Nacos的登錄界面。

用戶名:nacos;密碼:nacos

登錄成功的界面如下:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

服務注冊發(fā)現(xiàn)

微服務的服務注冊和發(fā)現(xiàn)相信都用過Eureka,要自己本地構建一個Eureka微服務,但是整合了Alibaba的Nacos則不用那么復雜,直接啟動Alibaba提供的Nacos服務即可,這樣讓程序員把全部精力放在業(yè)務上,下面是一個簡單的架構圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

如何演示效果呢?

參照上面架構圖,作者分別創(chuàng)建了兩個模塊,分別是nacos-provider(服務提供者)、nacos-consumer(服務消費者),職責如下:

  • nacos-provider:注冊進入nacos-server,對外暴露服務
  • nacos-consumer:注冊進入nacos-server,調(diào)用nacos-provider的服務

nacos-provider服務提供者創(chuàng)建

由于使用了多模塊聚合項目,只需要創(chuàng)建一個nacos-provider模塊即可。步驟如下:

1. 添加Maven依賴

需要添加spring-cloud-starter-alibaba-nacos-discovery這個依賴,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
由于父模板中指定了spring-cloud-alibaba-dependencies的版本,子模塊中直接引入依賴即可,不需要指定版本號,這樣才能達到版本管理的效果。

2. 配置YML文件

在配置文件中指定服務名稱、端口號、nacos-server的地址等信息,如下:

server:
??port:?9001
spring:
??application:
????##?指定服務名稱,在nacos中的名字
????name:?nacos-provider
??cloud:
????nacos:
??????discovery:
????????#?nacos的服務地址,nacos-server中IP地址:端口號
????????server-addr:?127.0.0.1:8848
management:
??endpoints:
????web:
??????exposure:
????????##?yml文件中存在特殊字符,必須用單引號包含,否則啟動報錯
????????include:?'*'

3. 開啟服務注冊發(fā)現(xiàn)功能

這個大部分Spring Boot功能模塊相同,都需要使用@EnableXxxx注解來開啟某個功能,否則無法引入自動配置。這里需要使用Spring Cloud的原生注解@EnableDiscoveryClient來開啟服務注冊發(fā)現(xiàn)的功能,如下:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

4. 寫個演示服務

nacos-provider作為服務提供者注冊到nacos中,肯定需要提供個服務來供消費者(nacos-consumer)調(diào)用,下面是隨便寫的一個接口:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

5. 啟動項目

按照上面的5個步驟算是完成了最基本的一個服務,現(xiàn)在只需要啟動nacos-provider這個服務即可。

啟動成功之后在nacos的服務管理->服務列表這里將會發(fā)現(xiàn)注冊進入的nacos-provider這個服務,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
OK,在nacos中能夠看到服務注冊成功了,完成任務..........

nacos-consumer服務消費者創(chuàng)建

同樣是注冊進入nacos,因此大致步驟都是一樣的,步驟如下:

1. 添加Maven依賴

需要添加spring-cloud-starter-alibaba-nacos-discovery這個依賴,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

2. 配置YML文件

同樣是指定服務名、端口、nacos-server的地址,如下:

server:
??port:?9002
spring:
??application:
????name:?nacos-consumer
??cloud:
????nacos:
??????discovery:
????????#?nacos的服務地址
????????server-addr:?127.0.0.1:8848
management:
??endpoints:
????web:
??????exposure:
????????##?yml文件中存在特殊字符,必須用單引號包含,否則啟動報錯
????????include:?'*'

3. 開啟服務注冊發(fā)現(xiàn)功能

使用@EnableDiscoveryClient標注,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

4. 寫個演示服務

如何演示呢?nacos-provider提供了一個服務,那么我們就調(diào)用它的服務來演示一把。

其實Nacos集成了Ribbon,何以見得呢?打開spring-cloud-starter-alibaba-nacos-discovery的依賴一看便知,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
因此我們便能使用Ribbon的負載均衡來調(diào)用服務,步驟如下:

  • 創(chuàng)建RestTemplate,使用@LoadBalanced注解標注開啟負載均衡,如下圖:
五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
  • 直接使用注冊到nacos的中的服務名作為訪問地址調(diào)用服務,如下圖:
五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
  • 上圖中的serviceUrl是什么東西呢?難道是IP地址?當然不是,既然nacos-provider和nacos-consumer都已經(jīng)注冊到nacos中,那么可能是可以直接通過服務名直接找到對應得服務,因此這個serviceUrl=http://service-name,如下圖:
五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
OK,至此nacos-consumer已經(jīng)準備完成,下面就可以啟動項目。

5. 啟動項目

啟動成功之后將會在nacos中的服務列表中查看到兩個服務,分別是nacos-provider、nacos-consumer,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
此時服務提供者和消費者都已成功注冊到Nacos,那么接下來就是測試服務能否調(diào)的通的問題了。

直接調(diào)用nacos-consumer的接口,輸入地址:http://localhost:9002/nacos/test/16,返回信息如下圖則表示相互調(diào)用成功:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

總結

Nacos的服務注冊發(fā)現(xiàn)很簡單,比Eureka簡單多了,無需自己構建個注冊中心。

啟動配置管理

為什么要用配置管理?其實這已經(jīng)不僅僅是微服務的痛點了,單體服務也存在這樣的痛點。試問線上的項目如果想要的修改某個配置,比如添加一個數(shù)據(jù)源,難道要停服更新?顯然是不太現(xiàn)實,那么如何解決呢?

對于單體應用前面已經(jīng)寫過一篇文章,感興趣的可以看:如何讓Spring Boot 的配置 "動" 起來?

微服務環(huán)境下可選的方案還是很多的,比如Config BUS,攜程開源的Apollo....

這都不是今天的重點,用過Config BUS覺得怎么樣?自己要搭建一個Config微服務,還要集成GitHub等,你不難受嗎?

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
下面就來介紹一下Nacos是如何完美的實現(xiàn)配置管理以及動態(tài)刷新的。

如何演示效果呢?

新建一個模塊nacos-config用來整合Nacos實現(xiàn)配置管理,項目結構如下:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
Nacos配置列表在哪里能看到呢?在管理平臺->配置管理->配置列表這一欄,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

添加依賴

由于使用了模塊聚合的工程,因此不需要指定版本號,依賴如下:

<dependency>
??????<groupId>com.alibaba.cloudgroupId>
??????<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
????dependency>

配置YAML文件

bootstrap.yml文件中設置Nacos的配置,如下:

spring:
??application:
????name:?nacos-config
????##?當前環(huán)境,這個和dataId有關->?${prefix}-${spring.profiles.active}.${file-extension}
??profiles:
????active:?dev
??cloud:
????nacos:
??????config:
????????##?nacos的地址,作為配置中心
????????server-addr:?127.0.0.1:8848
????????##?配置內(nèi)容的數(shù)據(jù)格式,目前只支持?properties?和?yaml?類型,這個和dataId有關->?${prefix}-${spring.profiles.active}.${file-extension}
????????file-extension:?properties
management:
??endpoints:
????web:
??????exposure:
????????##?yml文件中存在特殊字符,必須用單引號包含,否則啟動報錯
????????include:?'*'

Data ID是什么?

dataId是一個配置的唯一標識,怎么取值呢?格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix:前綴,默認是spring.application.name的值,也可以通過配置項 spring.cloud.nacos.config.prefix來配置。
  • spring.profiles.active:即為當前環(huán)境對應的 profile。當 spring.profiles.active 為空時,對應的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}
  • file-exetension 為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項 spring.cloud.nacos.config.file-extension 來配置。目前只支持 propertiesyaml 類型。

添加一個配置

下面在nacos中添加一個config.version的配置,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
以上就是添加的config.version的配置,發(fā)布之后查看列表如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

獲取nacos中的配置

獲取nacos中的配置很簡單,使用原生注解@Value()直接讀取即可,步驟如下:

  • 新建一個實體類DynamicConfigEntity
@Component
@Data
public?class?DynamicConfigEntity?{

????//直接讀取nacos中config.version的配置
????@Value("${config.version}")
????private?String?version;
}
  • 新建一個controller測試,如下:
@RestController
@RequestMapping("/nacos")
public?class?NacosController?{

????@Autowired
????private?DynamicConfigEntity?entity;


????@GetMapping("/test/{id}")
????public?String?test(@PathVariable("id")Integer?id){
????????return?"accept?one?msg?id=" id "-----?version=" entity.getVersion();
????}
}
運行項目成功后,在瀏覽器輸入地址:http://localhost:9003/nacos/test/1,返回如下結果:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
結果很明顯,Nacos中的配置生效了,是不是很簡單?

配置如何動態(tài)刷新?

設想一下:現(xiàn)在由于需求改變了,我需要將config.version這個配置改成2,那么我直接改變Nacos中的配置會生效嗎?

不妨試一下,直接將Nacos中的配置修改成2,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
此時我們再不重啟項目的情況下訪問:http://localhost:9003/nacos/test/1,結果如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
what???怎么沒變呢?不是說Nacos可以自動刷新配置嗎?

其實想要Nacos自動刷新配置還需要結合原生注解@RefreshScope,這個注解是不是很眼熟,在Config中也是用這個注解刷新配置,我們只需要將該注解標注在配置的實體類上即可,如下:

@Component
@RefreshScope
@Data
public?class?DynamicConfigEntity?{

????//直接讀取nacos中config.version的配置
????@Value("${config.version}")
????private?String?version;
}
此時加上@RefreshScope重啟之后將Nacos中config.version這個配置改成3,然后訪問http://localhost:9003/nacos/test/1,結果如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

多環(huán)境如何隔離配置?(Namespace)

試想一下:正常的業(yè)務開發(fā)至少有三個環(huán)境吧,如下:

  • dev:本地開發(fā)環(huán)境
  • test:測試環(huán)境
  • prod:生產(chǎn)環(huán)境
那么每個環(huán)境的配置肯定是不同的,那么問題來了,如何將以上三種不同的配置在Nacos能夠很明顯的區(qū)分呢?

很多人可能會問:DataId格式中不是有環(huán)境的區(qū)分嗎?這個不是可以滿足嗎?

DataId當然能夠區(qū)分,但是微服務配置可不止這幾個???一旦多了你怎么查找呢?多種環(huán)境的配置雜糅到一起,你好辨別嗎?

當然阿里巴巴的Nacos開發(fā)團隊顯然考慮到了這種問題,官方推薦用命名空間(namespace)來解決環(huán)境配置隔離的問題。

Namespace(命名空間):解決多環(huán)境及多租戶數(shù)據(jù)的隔離問題 在多套不同的環(huán)境下,可以根據(jù)指定的環(huán)境創(chuàng)建不同的Namespace,實現(xiàn)多環(huán)境的數(shù)據(jù)隔離

Nacos中默認提供的命名空間則是public,上述我們創(chuàng)建的config.version這個配置就屬于public這個命名空間,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
當然我們可以根據(jù)業(yè)務需要創(chuàng)建自己的命名空間,操作如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
陳某創(chuàng)建了三個,分別是dev、test、prod,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
注意:上圖中的命名空間ID是系統(tǒng)自動生成的唯一ID,后續(xù)指定不同的Namespace就用這個ID。

創(chuàng)建完成之后,在配置列表上方則可以看見不同的命名空間,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
既然Nacos中的Namespace配置好了,那么微服務中如何配置呢?前面也說過,Nacos默認指定的命名空間是public,那么如何在項目中指定命名空間呢?

其實很簡單,假設在test這個命名空間中添加一個config.version=4,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
此時只需要在bootstrap.yml配置中指定如下配置:

spring:
??application:
????name:?nacos-config
??cloud:
????nacos:
??????config:
??????##?namespace的取值是命名空間ID,這里取的是test命名空間ID
????????namespace:?d0ffeec2-3deb-4540-9664-fdd77461fd6b
注意:Namespace必須在bootstrap.yml配置文件中指定,否則不生效。

至此,已經(jīng)全部配置完畢,啟動項目,瀏覽器訪問http://localhost:9003/nacos/test/1,結果如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

不同業(yè)務配置如何隔離?(Group)

試想以下場景:有兩個微服務,一個是訂單系統(tǒng),一個是用戶系統(tǒng),但是他們有著相同的配置,比如datasource-url,那么如何區(qū)分呢?

此時Group就派上用場了,顧名思義Group是分組的意思。

Group:Nacos 中的一組配置集,是組織配置的維度之一,簡單的說則是不同的系統(tǒng)或微服務的配置文件可以放在一個組里。Nacos如果不指定Group,則默認的分組是DEFAULT_GROUP。

上述場景中訂單系統(tǒng)、用戶系統(tǒng)可以單獨分為一個組,比如ORDER_GROUP、USER_GROUP。當然這是比較細粒度的分組,根據(jù)企業(yè)的業(yè)務也可以多個微服務分為一組。

下面在Nacos中新建一個config.version=5,命名空間為test,分組為ORDER_GROUP,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
此時命名空間test中的配置如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
bootstrap.yml配置文件中指定分組,配置如下:

spring:
??application:
????name:?nacos-config
??cloud:
????nacos:
??????config:
????????##?指定命名空間
????????namespace:?d0ffeec2-3deb-4540-9664-fdd77461fd6b
????????##?指定分組為ORDER_GROUP
????????group:?ORDER_GROUP
注意:Group配置和Namespace一樣,要在bootstrap.yml文件中配置。

至此,已經(jīng)全部配置完畢,啟動項目,瀏覽器訪問http://localhost:9003/nacos/test/1,結果如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?

總結

Nacos實現(xiàn)配置管理和動態(tài)配置刷新很簡單,總結如下步驟:

  1. 添加對應spring-cloud-starter-alibaba-nacos-config依賴
  2. 使用原生注解@Value()導入配置
  3. 使用原生注解@RefreshScope刷新配置
  4. 根據(jù)自己業(yè)務場景做好多環(huán)境配置隔離(Namespace)、不同業(yè)務配置隔離(Group)
  5. 切記:命名空間和分組的配置一定要放在bootstrap.yml或者bootstrap.properties配置文件中

Nacos如何共享配置?

場景:一個項目的微服務數(shù)量逐漸增多,勢必會有相同的配置,那么我們可以將相同的配置抽取出來作為項目中共有的配置,比如集群中的數(shù)據(jù)源信息..

Nacos的共享配置能夠完美的解決上述問題,配置起來也是很簡單,沒辦法,就是這么強大。

Nacos中新建共享配置

陳某這里演示兩個共享配置,DataId分別是share-config1.properties,share-config2.properties,如下圖:

五十五張圖告訴你微服務的靈魂擺渡者Nacos究竟有多強?
注意:DataId一定要帶有后綴properties或者yml

share-config1.properties配置中的內(nèi)容如下:

database.url=jdbc:mysql://112.111.0.135:3306/nacos_config?characterEncoding=utf8
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉