千家信息网

基于java SpringCloud怎么搭建微服务

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要介绍"基于java SpringCloud怎么搭建微服务",在日常操作中,相信很多人在基于java SpringCloud怎么搭建微服务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2024年11月28日基于java SpringCloud怎么搭建微服务

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

开发环境

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

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

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

0