第一节:微服务介绍和项目搭建

210 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情

学习资料来源于视频:www.bilibili.com/video/BV1LQ…


微服务技术对比

DubboSpringCloudSpringCloudAlibaba
注册中心zookeeper、RedisEureka、ConsulNacos、Eureka
服务远程调用Dubbo协议Feign(http协议)Dubbo、Feign
配置中心SpringCloudConfigSpringCloudConfig、Nacos
服务网关SpringCloudGateway、ZuulSpringCloudGateway、Zuul
服务监控和保护dubbo-admin,功能弱Hystrix(服务保护技术)Sentinel

Dubbo早在2012年开源的,不是一个完善的微服务技术,主要用于远程调用,配置中心、服务网关都没有实现。

SpringCloud整合了很多著名的微服务技术,形成了一套完整的微服务技术体系,有完善的服务注册中心,还实现了专业的配置中心SpringCloudConfig,也提供了Hystrix服务保护技术(隔离,熔断、降级)。

SpringCloudAlibaba是在SpringCloud的基础上的,实现了自己的注册中心Nacos,支持了Dubbo和Feign两种方式的调用。

认识SpringCloud

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state).

官方介绍:Spring Cloud为开发者提供了工具,可以快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)。

SpringCloud集成了各种微服务功能组件,并基于Springboot实现了这些组件的自动装配,从而提供了良好的开箱即用体验

微服务拆分注意事项

1.不同的微服务,不要重复开发相同的业务

2.微服务数据独立,不要访问其他微服务的数据库

3.微服务可以将自己的业务暴露为接口,供其他微服务调用。

项目初始化

导入项目:gitee.com/lookouttheb…

在这里插入图片描述

导入项目,项目中只有两个子项目,order-service和user-service,我把他上传到了gitee

创建数据库表:

需要创建2个数据库,cloud_user和cloud_order。两个数据库的初始化sql放到了sql文件夹下。

记得改写各自项目下的数据库配置。\color{#ff0000}{记得改写各自项目下的数据库配置。}

启动项目:

在这里插入图片描述

在services下,选中两个启动项,然后启动。

访问

两个项目的端口号分别是8080和8081,分别访问http://localhost:8081/user/2和http://localhost:8080/order/101验证项目构建成功。