您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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>
第一步: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
需求: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")); } }
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
了解幾個概念 1.命名空間:配置隔離;默認是public 2.配置集:所有配置的集合 3.配置集id:類似于文件名 4.配置分組
剛剛,我們創建的gulimall-coupon.properties是在public的命名空間,里面的內容是name=zhangsan,age=24
現在,我們在prop下也創建一個gulimall-coupon.properties
以上,演示完了命名空間,里面命名空間做環境的隔離;其實是通過dev、prop、public(開發、生成、默認)等角度來命名
現在,我們要給每一個微服務創建自己的命名空間。
最終版使用:每一個微服務創建自己的服務命名空間;使用配置分組來確定是dev、prop、test。
隨著我們服務越來越多,一個yml文件里面需要配置mysql、redis、server.port等等的配置。現在,我們要將他們抽取出來。
拆分后
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分布式組件的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。