分析微服务会用到哪些技术
Spring Cloud:http://projects.spring.io/spring-cloud(现在非常流行的微服务架构)Dubbo:http://dubbo.ioDropwizard: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>
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><exclusions><exclusion><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId></exclusion></exclusions></dependency><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、接口文档
<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>lego-common</artifactId><groupId>com.lego</groupId><version>1.0.7</version></parent><version>1.1.2</version><modelVersion>4.0.0</modelVersion><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></project>
12、mybatis-plus
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.0.5</version> </dependency>
作者:学习微站公众平台
来源链接:https://blog.csdn.net/weixin_43206161/article/details/123032979
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。