中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloudAlibaba分布式組件的示例分析

發布時間:2021-08-26 13:52:42 來源:億速云 閱讀:208 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關SpringCloudAlibaba分布式組件的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

分布式組件-SpringCloud Alibaba

SpringCloudAlibaba分布式組件的示例分析

簡介

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba的優勢:
阿里使用過的組件經歷了考驗,性能強悍,設計合理,現在開源出來大家用成套的產品搭配完善的可視化界面給開發運維帶來了極大的便利,搭建簡單,學習曲線低。
SpringCloud Alibaba-Nacos:注冊中心(服務發現/注冊)
SpringCloud Alibaba-Nacos:配置中心(動態配置管理)
SpringCloud-Ribbon:負載均衡
SpringCloud-Feign:聲明式HTTP客戶端(調用遠程服務)
SpringCloud Alibaba-Sentinel:服務容錯(限流、降級、熔斷)
SpringCloud-Gateway:API網關
SpringCloud-Sleuth:調用鏈監控
SpringCloud Alibaba-Seata:原 Fescar,即分布式事務

gulimall-common的pom.xml

<dependencyManagement>
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
      <version>2.1.0.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Nacos注冊中心

第一步:gulimall-common的pom.xml加入依賴
<!--        服務注冊/發現-->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
第二步:下載nacos
地址:github.com/alibaba/nacos/releases
版本:1.1.3
第三步:修改你要將那個服務注冊上去的application.yml
spring:
  application:
    name: gulimall-coupon
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
第四步:在啟動類上標注注解
@EnableDiscoveryClient
第五步:訪問nacos
路徑:127.0.0.1:8848/nacos/#/login

SpringCloudAlibaba分布式組件的示例分析

OpenFeign遠程調用

需求:gulimall-member會員服務調用gulimall-coupon優惠券服務

1.在gulimall-common pom.xml文件加入
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.//gulimall-coupon
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @RequestMapping("/member/list")
    public R membercoupons(){
        CouponEntity couponEntity = new CouponEntity();
        couponEntity.setCouponName("滿100減10");
        return R.ok().put("coupon",Arrays.asList(couponEntity));
    }
}
3.//gulimall-member
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")
    public R membercoupons();
}
4.//開啟遠程調用功能:EnableFeignClients
@EnableRedisHttpSession
@EnableFeignClients(basePackages = "com.xunqi.gulimall.member.feign")
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallMemberApplication {
    public static void main(String[] args) {
        SpringApplication.run(GulimallMemberApplication.class, args);
    }
}
5.調用
@RestController
@RequestMapping("member/member")
public class MemberController {
    @Autowired
    private MemberService memberService;
    @Autowired
    CouponFeignService couponFeignService;
    @RequestMapping("/coupons")
    public R test(){
        MemberEntity memberEntity = new MemberEntity();
        memberEntity.setNickname("張三");
        R  membercoupons = couponFeignService.membercoupons();
        return R.ok().put("member",memberEntity).put("coupons",membercoupons.get("coupons"));
    }
}

SpringCloudAlibaba分布式組件的示例分析

配置中心-簡單實例

1.在gulimall-common pom.xml文件加入
<!--        配置中心來做配置管理-->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.在gulimall-coupon創建bootstrap.yml
spring:
  application:
    name: gulimall-coupon
  cloud:
    nacos:
      config:
        server-addr: localhost:8848

3.在application.properties

//此方法有了注冊中心后,不再使用
application.properties
coupon.user.name=zhangsan
coupon.user.age=18

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba分布式組件的示例分析

配置中心-命名空間

了解幾個概念
1.命名空間:配置隔離;默認是public
2.配置集:所有配置的集合
3.配置集id:類似于文件名
4.配置分組

SpringCloudAlibaba分布式組件的示例分析

剛剛,我們創建的gulimall-coupon.properties是在public的命名空間,里面的內容是name=zhangsan,age=24

現在,我們在prop下也創建一個gulimall-coupon.properties

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba分布式組件的示例分析

以上,演示完了命名空間,里面命名空間做環境的隔離;其實是通過dev、prop、public(開發、生成、默認)等角度來命名
現在,我們要給每一個微服務創建自己的命名空間。

SpringCloudAlibaba分布式組件的示例分析

配置分組的概念

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba分布式組件的示例分析

最終版使用:每一個微服務創建自己的服務命名空間;使用配置分組來確定是dev、prop、test。

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba分布式組件的示例分析

配置中心-加載多配置集

隨著我們服務越來越多,一個yml文件里面需要配置mysql、redis、server.port等等的配置。現在,我們要將他們抽取出來。

SpringCloudAlibaba分布式組件的示例分析

拆分后

SpringCloudAlibaba分布式組件的示例分析

SpringCloudAlibaba分布式組件的示例分析

Gateway網關核心

Gateway創建測試網關

1.創建網關服務gulimall-gateway

2.application.properties
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.application.name=gulimall-gateway
server.port=88
3.bootstrap.yml
spring:
  application:
    name: gulimall-coupon
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848
#        file-extension: yml
        namespace: ea65d118-135f-4928-bbc6-c8ec85b3fd78
4.application.yml
spring:
  cloud:
    sentinel:
      transport:
        #配置sentinel dashboard地址
        dashboard: localhost:8080
    gateway:
      routes:
#        - id: test_route
#          uri: https://www.baidu.com
#          predicates:
#            - Query=uri,baidu
#
#        - id: qq_route
#          uri: https://www.qq.com
#          predicates:
#            - Query=uri,qq

感謝各位的閱讀!關于“SpringCloudAlibaba分布式組件的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

轮台县| 莲花县| 安庆市| 巴南区| 大丰市| 宿迁市| 平泉县| 黎城县| 黔西县| 安乡县| 京山县| 福州市| 绩溪县| 麻城市| 洪江市| 临高县| 东阳市| 东明县| 灵丘县| 寻乌县| 平阴县| 东海县| 海伦市| 苍南县| 稷山县| 泾川县| 理塘县| 犍为县| 瑞金市| 长阳| 儋州市| 镇赉县| 马鞍山市| 互助| 疏附县| 九龙坡区| 凤阳县| 泸州市| 泾源县| 樟树市| 许昌市|