微服务技术对比

Dubbo

SpringCloud

SpringCloudAlibaba

注册中心

zookeeper、Redis

Eureka、Consul

Nacos、Eureka

服务远程调用

Dubbo协议

Feign(http协议)

Dubbo、Feign

配置中心


SpringCloudConfig

SpringCloudConfig、Nacos

服务网关


SpringCloudGateway、Zuul

SpringCloudGateway、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.微服务可以将自己的业务暴露为接口,供其他微服务调用。

项目初始化

导入项目:https://gitee.com/lookoutthebush/cloud-demo

微服务视图解析器的路径问题_微服务视图解析器的路径问题

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

创建数据库表:

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

微服务视图解析器的路径问题_微服务_02

启动项目:

微服务视图解析器的路径问题_java_03

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

访问

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