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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kitty-Cloud服务搭建过程剖析

發(fā)布時(shí)間:2023/12/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kitty-Cloud服务搭建过程剖析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

項(xiàng)目地址

https://github.com/yinjihuan/kitty-cloud[1]

服務(wù)搭建

大家目前看到的都是我已經(jīng)搭建好了的服務(wù),如果讓你從零開始自己搭建一個(gè)微服務(wù)的項(xiàng)目,要怎么做?

我們以 kitty-cloud-article 服務(wù)來進(jìn)行講解,希望大家看完后也能自己動(dòng)手大家一個(gè)屬于你自己的微服務(wù)項(xiàng)目。

創(chuàng)建 Maven 多模塊項(xiàng)目

創(chuàng)建 Maven 項(xiàng)目有很多種方式,一般創(chuàng)建 Spring Boot 的 Maven 項(xiàng)目我們會(huì)用 https://start.spring.io/[2] 這個(gè)頁面提供的工具來生成,然后導(dǎo)入到 IDEA 中就可以了。

或者直接在 IDEA 中創(chuàng)建一個(gè) Maven 項(xiàng)目,選擇菜單 Filte --> New --> Project --> Maven 項(xiàng)目,然后依次填寫信息,最后會(huì)生成一個(gè) Maven 項(xiàng)目。


比如你創(chuàng)建了一個(gè)空的 Kitty-Cloud 項(xiàng)目,然后就需要?jiǎng)?chuàng)建子模塊了。創(chuàng)建子模塊也非常簡(jiǎn)單,選中剛剛創(chuàng)建的 Kitty-Cloud,右鍵選擇 New --> Module --> Maven 依次填寫信息,跟上面的一樣。


子模塊下面我們還細(xì)分了三個(gè)子模塊,分別是 api,biz,provider。所以還需要按照上面的步驟分別創(chuàng)建這三個(gè)子模塊。成功后就是下圖的效果:


添加相關(guān)框架的依賴

api 依賴

<dependencies><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-web</artifactId><optional>true</optional></dependency><dependency><groupId>com.spring4all</groupId><artifactId>swagger-spring-boot-starter</artifactId></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-feign</artifactId></dependency> </dependencies>

kitty-spring-cloud-starter-web:web 依賴,基于 spring-boot-starter-web 包裝的,源碼在 kitty 倉庫中。optional 設(shè)置為 true 是不想強(qiáng)依賴,這邊只是要用到 Spring 里面的內(nèi)容。如果哪個(gè)模塊依賴 api 模塊,那么需要該模塊自身有 web 的依賴。

swagger-spring-boot-starter:swagger 依賴,用于生成 swagger 文檔。

kitty-spring-cloud-starter-feign:feign 依賴,基于 spring-cloud-starter-openfeign 包裝的,源碼在 kitty 倉庫中。

biz 依賴

<dependencies><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-cloud-user-api</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-web</artifactId></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-mybatis</artifactId></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-nacos</artifactId></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-jetcache</artifactId></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-cat</artifactId></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-dubbo</artifactId></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-sentinel</artifactId></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-spring-cloud-starter-lock</artifactId></dependency> </dependencies>

kitty-cloud-user-api:需要調(diào)用用戶服務(wù)的接口,所以這邊依賴了用戶服務(wù)的 API 模塊。這也是我們?yōu)槭裁匆v API 模塊單獨(dú)抽出來的原因,方便其他服務(wù)依賴然后調(diào)用服務(wù)中的接口。

kitty-spring-cloud-starter-mybatis:mybatis 依賴,基于 mybatis-plus 包裝。

kitty-spring-cloud-starter-nacos:nacos 依賴,基于 spring-cloud-starter-alibaba-nacos-discovery 包裝。

kitty-spring-cloud-starter-jetcache: jetcache 依賴,基于 jetcache-starter-redis 包裝。

kitty-spring-cloud-starter-cat:cat 依賴,基于 cat-client 包裝。

kitty-spring-cloud-starter-dubbo:dubbo 依賴,基于 spring-cloud-starter-dubbo 包裝。依賴 dubbo 是為了同時(shí)支持 Http 和 Rpc 兩種協(xié)議。

kitty-spring-cloud-starter-sentinel:sentinel 依賴,基于 spring-cloud-starter-alibaba-sentinel 包裝。

kitty-spring-cloud-starter-lock:分布式鎖依賴,基于 redisson-spring-boot-starter包裝。

provider 依賴

<dependencies><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-cloud-article-api</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.cxytiandi</groupId><artifactId>kitty-cloud-article-biz</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency> </dependencies>

kitty-cloud-article-api:依賴 api 定義模塊。

kitty-cloud-article-biz:依賴業(yè)務(wù)邏輯模塊。

spring-boot-starter-test:單元測(cè)試依賴。

服務(wù)啟動(dòng)

provider 作為服務(wù)的啟動(dòng)模塊,依賴了 api 和 biz。我們?cè)?provider 中創(chuàng)建 App 啟動(dòng)類。

/*** 文章服務(wù)啟動(dòng)類** @作者 尹吉?dú)g* @個(gè)人微信 jihuan900* @微信公眾號(hào) 猿天地* @GitHub https://github.com/yinjihuan* @作者介紹 http://cxytiandi.com/about* @時(shí)間 2020-02-12 20:01:04*/ @EnableSwagger2Doc @MapperScan("com.cxytiandi.kittycloud.article.biz.dao") @EnableDiscoveryClient @EnableCreateCacheAnnotation @EnableMethodCache(basePackages = "com.cxytiandi.kittycloud.article.biz.manager") @SpringBootApplication(scanBasePackages = {"com.cxytiandi.kittycloud.article","com.cxytiandi.kitty.web.config"}) public class KittyCloudArticleProviderApp {public static void main(String[] args) {SpringApplication.run(KittyCloudArticleProviderApp.class);} }

@EnableSwagger2Doc:啟用 Swagger。

@MapperScan:Mybatis Mapper 包掃描路徑。

@EnableDiscoveryClient:啟用服務(wù)發(fā)現(xiàn)。

@EnableCreateCacheAnnotation:jetCache 中啟用注解創(chuàng)建緩存,比如 @CreateCache。

@EnableMethodCache:jetCache 中啟用啟用方法上注解緩存,比如 @Cache。

@SpringBootApplication:Spring Boot 核心注解,主要關(guān)注下 scanBasePackages 里面的值,如果不配置,默認(rèn)掃描啟動(dòng)類所在包的路徑以及子路徑。

配置了就按配置的來,因?yàn)槲覀兊膯?dòng)類在 provider 中,provider 中的包名無法包含 api 和 biz。

比如:

com.cxytiandi.kittycloud.article.api com.cxytiandi.kittycloud.article.biz com.cxytiandi.kittycloud.article.provider

如果不手動(dòng)指定 scanBasePackages=com.cxytiandi.kittycloud.article 的話就無法掃描 api 和 biz。只能掃描到 com.cxytiandi.kittycloud.article.provider。

com.cxytiandi.kitty.web.config 是 web 模塊中有對(duì) Swagger 靜態(tài)資源映射的配置,也需要掃描到。

服務(wù)配置

resources --> META-INF --> app.properties

# Cat中的應(yīng)用名稱 app.name=kitty-cloud-article-provider

resources --> bootstrap.properties

# 服務(wù)名 spring.application.name=kitty-cloud-article-provider # dubbo配置 dubbo.scan.base-packages=com.cxytiandi.kittycloud.article.provider.service dubbo.protocol.name=dubbo dubbo.protocol.port=20081 dubbo.registry.address=spring-cloud://localhost # nacos注冊(cè)服務(wù)端地址 spring.cloud.nacos.discovery.server-addr=47.105.66.210:8848 # nacos配置服務(wù)端地址 spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.discovery.server-addr} # sentinel數(shù)據(jù)源地址 spring.cloud.sentinel.datasource.nacos.server-addr=${spring.cloud.nacos.discovery.server-addr} # mysql配置信息(原始配置在Nacos中存儲(chǔ)) spring.cloud.nacos.config.ext-config[0].data-id=kitty-cloud-mysql.properties spring.cloud.nacos.config.ext-config[0].group=MIDDLEWARE_GROUP spring.cloud.nacos.config.ext-config[0].refresh=true # 應(yīng)用配置信息(原始配置在Nacos中存儲(chǔ)) spring.cloud.nacos.config.ext-config[1].data-id=kitty-cloud-article-provider-application.properties spring.cloud.nacos.config.ext-config[1].group=APPLICATION_GROUP spring.cloud.nacos.config.ext-config[1].refresh=true # jetcache配置信息(原始配置在Nacos中存儲(chǔ)) spring.cloud.nacos.config.ext-config[2].data-id=kitty-cloud-redis-jetcache.properties spring.cloud.nacos.config.ext-config[2].group=MIDDLEWARE_GROUP spring.cloud.nacos.config.ext-config[2].refresh=true # sentinel配置信息(原始配置在Nacos中存儲(chǔ)) spring.cloud.nacos.config.ext-config[3].data-id=kitty-cloud-sentinel.properties spring.cloud.nacos.config.ext-config[3].group=MIDDLEWARE_GROUP spring.cloud.nacos.config.ext-config[3].refresh=true # redisson配置信息(原始配置在Nacos中存儲(chǔ)) spring.cloud.nacos.config.ext-config[4].data-id=kitty-cloud-redis-redisson.properties spring.cloud.nacos.config.ext-config[4].group=MIDDLEWARE_GROUP spring.cloud.nacos.config.ext-config[4].refresh=true

resources --> logback.xml

<appender name="CatAppender" class="com.dianping.cat.logback.CatLogbackAppender"></appender> <root level="INFO"><appender-ref ref="CatAppender" /> </root>

logback 主要關(guān)注的就是這個(gè) CatAppender,不配置 CatAppender 的話當(dāng)程序報(bào)錯(cuò)的時(shí)候,error 級(jí)別的日志無法接入 Cat。

參考資料

[1]?kitty-cloud: https://github.com/yinjihuan/kitty-cloud
[2]?spring.io: https://start.spring.io

關(guān)于作者:尹吉?dú)g,簡(jiǎn)單的技術(shù)愛好者,《Spring Cloud 微服務(wù)-全棧技術(shù)與案例解析》, 《Spring Cloud 微服務(wù) 入門 實(shí)戰(zhàn)與進(jìn)階》作者, 公眾號(hào)?猿天地?發(fā)起人。個(gè)人微信 jihuan900, 歡迎勾搭。

相關(guān)推薦

  • 雙劍合璧的開源項(xiàng)目Kitty-Cloud

  • Kitty-Cloud環(huán)境準(zhǔn)備

后臺(tái)回復(fù)?學(xué)習(xí)資料?領(lǐng)取學(xué)習(xí)視頻

如有收獲,點(diǎn)個(gè)在看,誠摯感謝

總結(jié)

以上是生活随笔為你收集整理的Kitty-Cloud服务搭建过程剖析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。