开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天
Spring Cloud:http://projects.spring.io/spring-cloud(现在非常流行的微服务架构)
Dubbo:http://dubbo.io
Dropwizard:http://www.dropwizard.io (关注单个微服务的开发)
Consul、etcd&etc.(微服务的模块)
微服务最低组件要求是:api网关、注册中心、提供者(provider)、消费者(consumer)
SpringCloud(也加上SpringBoot),没用dubbo
Dubbo有自己的一套技术
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
SpringCloud
Spring Cloud 基于 Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。
Spring Boot 是 Spring 的一套快速配置脚手架,使用默认大于配置的理念,用于快速开发单个微服务。
基于 Spring Boot
云服务、分布式框架集合(众多)
1、服务治理,也称注册中心,用的是Nacos,以前市场上常有的是springcloud自身的Eureka

<!--注册中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2、容错机制
feigin+sentinel
微服务之间通过 Feign 进行通信处理业务。
Hystrix 负责处理服务超时熔断。
断路器——Netflix Hystrix(Sentinel)
Turbine 监控服务间的调用和熔断相关指标。
Integration/Stream : MQ接口绑定
Bus : 事件监听
微服务组件配置Bus、Config,带你了解微服务组件配置
Sleuth+Zipkin : 分布式链路追踪
3、服务网关
SpringCloud Gateway
gateway
后面我们可以在gateway输出下请求的uri
4、均衡负载
Ribbon
5、同步通信与异步通信
http

RocketMQ(mq各有优缺点)
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
6、Git :用内部GitLab (市场上github,gitee)
7、SQL: MySQL、MongoDB
实时的排名参见 http//db-engines.com/en/ranking 网站
8、NoSQL: Redis、ES

<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
org.elasticsearch.client
elasticsearch-rest-high-level-client
org.elasticsearch.client
elasticsearch-rest-client
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
**9、配置中心**
nacos
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
市场上springcloud Config
10、安全模块
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
</dependency>
11、接口文档
lego-common com.lego 1.0.7 1.1.2 4.0.0
<artifactId>lego-common-swagger</artifactId>
<packaging>jar</packaging>
<description>接口文档</description>
<properties>
<knife4j-spring-ui.version>2.0.3</knife4j-spring-ui.version>
</properties>
<dependencies>
<!--swagger 依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j-spring-ui.version}</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-micro-spring-boot-starter</artifactId>
<version>${knife4j-spring-ui.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
</dependency>
</dependencies>
12、mybatis-plus
com.baomidou
mybatis-plus-extension
3.0.5
> 本文使用 [文章同步助手](https://juejin.cn/post/6940875049587097631) 同步