基于javaSpringCloud怎么搭建微服务

这篇文章主要介绍“基于java SpringCloud怎么搭建微服务”,在日常操作中,相信很多人在基于java SpringCloud怎么搭建微服务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于java SpringCloud怎么搭建微服务”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联建站长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为建邺企业提供专业的网站建设、成都网站制作建邺网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

开发环境

1、jdk1.8
2、springboot 2.0.6.RELEASE 以及SpringCloud相关服务
3、idea + maven

代码示例

itstack-demo-ddd-case | 基于DDD的微服务 {本段代码在上一章节已经演示}

 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 | 服务注册与发现

 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 | 启动服务

 1/**
2 * 微信公众号:bugstack虫洞栈 | 专注原创技术专题案例
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 | 服务配置

 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 | 调用方,通过API接口调用

 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 | 通过注册方式调用API

 1/**
2 * 微信公众号:bugstack虫洞栈 | 专注原创技术专题案例
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 | 启动服务

 1/**
2 * 微信公众号:bugstack虫洞栈 | 专注原创技术专题案例
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 | 服务配置

 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| 网关路由组件

 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 | 启动服务

 1/**
2 * 微信公众号:bugstack虫洞栈 | 专注原创技术专题案例
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 | 服务配置{本案例是静态路由,按需可以开发为动态路由}

 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/ | 服务中心

基于java SpringCloud怎么搭建微服务    

访问:http://localhost:9191/route-a/api/queryTreeSummaryInfo?treeId=10001 | 通过网关路由调用DDD服务接口

基于java SpringCloud怎么搭建微服务

到此,关于“基于java SpringCloud怎么搭建微服务”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


本文标题:基于javaSpringCloud怎么搭建微服务
标题网址:http://scyanting.com/article/pjjsdg.html