溫馨提示×

溫馨提示×

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

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

基于java SpringCloud怎么搭建微服務(wù)

發(fā)布時間:2021-11-18 10:15:38 來源:億速云 閱讀:182 作者:iii 欄目:編程語言

這篇文章主要介紹“基于java SpringCloud怎么搭建微服務(wù)”,在日常操作中,相信很多人在基于java SpringCloud怎么搭建微服務(wù)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”基于java SpringCloud怎么搭建微服務(wù)”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

開發(fā)環(huán)境

1、jdk1.8
2、springboot 2.0.6.RELEASE 以及SpringCloud相關(guān)服務(wù)
3、idea + maven

代碼示例

itstack-demo-ddd-case | 基于DDD的微服務(wù) {本段代碼在上一章節(jié)已經(jīng)演示}

 1itstack-demo-ddd-case
2└── src
3    ├── main
4    │   ├── java
5    │   │   └── org.itstack.demo
6    │   │       ├── application
7    │   │       │    ├── MallRuleService.java    
8    │   │       │    └── MallTreeService.java    
9    │   │       ├── domain
10    │   │       │    ├── rule
11    │   │       │    │   ├── model
12    │   │       │    │   │   ├── aggregates
13    │   │       │    │   │   │   └── UserRichInfo.java   
14    │   │       │    │   │   └── vo
15    │   │       │    │   │       ├── DecisionMatter.java
16    │   │       │    │   │       ├── EngineResult.java
17    │   │       │    │   │       ├── TreeNodeInfo.java
18    │   │       │    │   │       ├── TreeNodeLineInfo.java   
19    │   │       │    │   │       └── UserSchool.java 
20    │   │       │    │   ├── repository
21    │   │       │    │   │   └── IRuleRepository.java    
22    │   │       │    │   └── service
23    │   │       │    │       ├── engine
24    │   │       │    │       │   ├── impl    
25    │   │       │    │       │   └── EngineFilter.java   
26    │   │       │    │       ├── logic
27    │   │       │    │       │   ├── impl    
28    │   │       │    │       │   └── LogicFilter.java    
29    │   │       │    │       └── MallRuleServiceImpl.java    
30    │   │       │    └── tree
31    │   │       │        ├── model
32    │   │       │        │   ├── aggregates
33    │   │       │        │   │   └── TreeCollect.java    
34    │   │       │        │   └── vo
35    │   │       │        │       ├── TreeInfo.java   
36    │   │       │        │       └── TreeRulePoint.java  
37    │   │       │        ├── repository
38    │   │       │        │   └── ITreeRepository.java    
39    │   │       │        └── service
40    │   │       │            └── MallTreeServiceImpl.java    
41    │   │       ├── infrastructure
42    │   │       │    ├── common
43    │   │       │    │   └── Constants.java
44    │   │       │    ├── dao
45    │   │       │    │   ├── RuleTreeDao.java
46    │   │       │    │   ├── RuleTreeNodeDao.java    
47    │   │       │    │   └── RuleTreeNodeLineDao.java    
48    │   │       │    ├── po
49    │   │       │    │   ├── RuleTree.java
50    │   │       │    │   ├── RuleTreeConfig.java
51    │   │       │    │   ├── RuleTreeNode.java   
52    │   │       │    │   └── RuleTreeNodeLine.java       
53    │   │       │    ├── repository
54    │   │       │    │   ├── cache
55    │   │       │    │   │   └── RuleCacheRepository.java
56    │   │       │    │   ├── mysql
57    │   │       │    │   │   ├── RuleMysqlRepository.java    
58    │   │       │    │   │   └── TreeMysqlRepository.java
59    │   │       │    │   ├── RuleRepository.java 
60    │   │       │    │   └── TreeRepository.java 
61    │   │       │    └── util
62    │   │       │        └── CacheUtil.java
63    │   │       ├── interfaces
64    │   │       │    ├── dto
65    │   │       │    │   ├── DecisionMatterDTO.java
66    │   │       │    │   └── TreeDTO.java    
67    │   │       │    └── DDDController.java
68    │   │       └── DDDApplication.java
69    │   └── resources    
70    │       ├── mybatis
71    │       └── application.yml
72    └── test
73         └── java
74             └── org.itstack.demo.test
75                 └── ApiTest.java

itstack-demo-ddd-eureka-server | 服務(wù)注冊與發(fā)現(xiàn)

 1itstack-demo-ddd-eureka-server
2└── src
3    ├── main
4    │   ├── java
5    │   │   └── org.itstack.demo
6    │   │       └── EurekaServerApplication.java
7    │   └── resources    
8    │       └── application.yml
9    └── test
10         └── java
11             └── org.itstack.demo.test
12                 └── ApiTest.java

EurekaServerApplication.java | 啟動服務(wù)

 1/**
2 * 微信公眾號:bugstack蟲洞棧 | 專注原創(chuàng)技術(shù)專題案例
3 * 論壇:http://bugstack.cn
4 * Create by 付政委 on @2019
5 */
6@SpringBootApplication
7@EnableEurekaServer
8public class EurekaServerApplication {
9
10    public static void main(String[] args) {
11        SpringApplication.run( EurekaServerApplication.class, args );
12    }
13
14}

application.yml | 服務(wù)配置

 1server:
2  port: 8989
3
4eureka:
5  instance:
6    hostname: localhost
7  client:
8    registerWithEureka: false
9    fetchRegistry: false
10    serviceUrl:
11      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
12
13spring:
14  application:
15    name: itstack-demo-ddd-eureka-server

itstack-demo-ddd-feign | 調(diào)用方,通過API接口調(diào)用

 1itstack-demo-ddd-feign
2└── src
3    ├── main
4    │   ├── java
5    │   │   └── org.itstack.demo
6    │   │       ├── domain
7    │   │       │    └── TreeDTO.java
8    │   │       ├── service
9    │   │       │    └── MallService.java
10    │   │       ├── web
11    │   │       │    └── FeignController.java
12    │   │       └── FeignApplication.java
13    │   └── resources    
14    │       └── application.yml
15    └── test
16         └── java
17             └── org.itstack.demo.test
18                 └── ApiTest.java

MallService.java | 通過注冊方式調(diào)用API

 1/**
2 * 微信公眾號:bugstack蟲洞棧 | 專注原創(chuàng)技術(shù)專題案例
3 * 論壇:http://bugstack.cn
4 * Create by 付政委 on @2019
5 */
6@FeignClient(value = "itstack-demo-ddd-case")
7public interface MallService {
8
9    @RequestMapping(value = "/api/tree/queryTreeSummaryInfo", method = RequestMethod.POST)
10    Object queryTreeSummaryInfo(@RequestBody TreeDTO request);
11
12}

FeignApplication.java | 啟動服務(wù)

 1/**
2 * 微信公眾號:bugstack蟲洞棧 | 專注原創(chuàng)技術(shù)專題案例
3 * 論壇:http://bugstack.cn
4 * Create by 付政委 on @2019
5 */
6@SpringBootApplication
7@EnableEurekaClient
8@EnableDiscoveryClient
9@EnableFeignClients
10public class FeignApplication {
11
12    public static void main(String[] args) {
13        SpringApplication.run(FeignApplication.class, args);
14    }
15
16}

application.yml | 服務(wù)配置

 1server:
2  port: 9090
3
4spring:
5  application:
6    name: itstack-demo-ddd-feign
7
8eureka:
9  client:
10    serviceUrl:
11      defaultZone: http://localhost:8989/eureka/

itstack-demo-ddd-zuul| 網(wǎng)關(guān)路由組件

 1itstack-demo-ddd-zuul
2└── src
3    ├── main
4    │   ├── java
5    │   │   └── org.itstack.demo
6    │   │       └── ZuulApplication.java
7    │   └── resources    
8    │       └── application.yml
9    └── test
10         └── java
11             └── org.itstack.demo.test
12                 └── ApiTest.java

ZuulApplication.java | 啟動服務(wù)

 1/**
2 * 微信公眾號:bugstack蟲洞棧 | 專注原創(chuàng)技術(shù)專題案例
3 * 論壇:http://bugstack.cn
4 * Create by 付政委 on @2019
5 */
6@SpringBootApplication
7@EnableZuulProxy
8@EnableEurekaClient
9@EnableDiscoveryClient
10public class ZuulApplication {
11
12    public static void main(String[] args) {
13        SpringApplication.run(ZuulApplication.class, args);
14    }
15
16}

application.yml | 服務(wù)配置{本案例是靜態(tài)路由,按需可以開發(fā)為動態(tài)路由}

 1server:
2  port: 9191
3
4spring:
5  application:
6    name: itstack-demo-ddd-zuul
7
8eureka:
9  client:
10    serviceUrl:
11      defaultZone: http://localhost:8989/eureka/
12zuul:
13  routes:
14    api-a:
15      path: /route-a/**
16      serviceId: itstack-demo-ddd-feign
17

測試驗證

按照順序啟動;itstack-demo-ddd-eureka-server、itstack-demo-ddd-case{可以模擬啟動多個}、itstack-demo-ddd-feign、itstack-demo-ddd-zuul

訪問;http://localhost:8989/ | 服務(wù)中心

基于java SpringCloud怎么搭建微服務(wù)    

訪問:http://localhost:9191/route-a/api/queryTreeSummaryInfo?treeId=10001 | 通過網(wǎng)關(guān)路由調(diào)用DDD服務(wù)接口

基于java SpringCloud怎么搭建微服務(wù)

到此,關(guān)于“基于java SpringCloud怎么搭建微服務(wù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI