提交 50a80861 编写于 作者: Y yanglbme

fix: update micro-services-technology-stack.md

上级 70666650
......@@ -60,6 +60,7 @@ sentinel,中文名是哨兵。哨兵是 Redis 集群架构中非常重要的
## Redis 哨兵主备切换的数据丢失问题
### 导致数据丢失的两种情况
主备切换的过程,可能会导致数据丢失:
* 异步复制导致的数据丢失
......@@ -159,4 +160,4 @@ sdown 达成的条件很简单,如果一个哨兵 ping 一个 master,超过
哨兵完成切换之后,会在自己本地更新生成最新的 master 配置,然后同步给其他的哨兵,就是通过之前说的 `pub/sub` 消息机制。
这里之前的 version 号就很重要了,因为各种消息都是通过一个 channel 去发布和监听的,所以一个哨兵完成一次新的切换之后,新的 master 配置是跟着新的 version 号的。其他的哨兵都是根据版本号的大小来更新自己的 master 配置的。
这里之前的 version 号就很重要了,因为各种消息都是通过一个 channel 去发布和监听的,所以一个哨兵完成一次新的切换之后,新的 master 配置是跟着新的 version 号的。其他的哨兵都是根据版本号的大小来更新自己的 master 配置的。
\ No newline at end of file
# 微服务技术栈
* Author: [HuiFer](https://github.com/huifer)
* Description: 该文简单介绍微服务技术栈有哪些分别用来做什么
* Description: 该文简单介绍微服务技术栈有哪些分别用来做什么
## 技术栈
......@@ -13,16 +13,16 @@
* Spring MVC
* Spring Boot
[官网](https://spring.io/),Spring 目前是 JavaWeb 开发人员必不可少的一个框架,SpringBoot 简化了 Spring 开发的配置目前也是业内主流开发框架。
[Spring](https://spring.io/) 目前是 JavaWeb 开发人员必不可少的一个框架,SpringBoot 简化了 Spring 开发的配置目前也是业内主流开发框架。
### 微服务注册发现
作用:发现服务,注册服务,集中管理服务
作用:发现服务,注册服务,集中管理服务
#### Eureka
* Eureka Server : 提供服务注册服务, 各个节点启动后,会在 Eureka Server 中进行注册。
* Eureka Client : 简化与 Eureka Server 的交互操作
* Eureka Client : 简化与 Eureka Server 的交互操作
* Spring Cloud Netflix : [GitHub](https://github.com/spring-cloud/spring-cloud-netflix)[文档](https://cloud.spring.io/spring-cloud-netflix/reference/html/)
#### Zookeeper
......@@ -43,51 +43,37 @@ Zookeeper 保证 CP,Eureka 保证 AP:
作用:统一管理一个或多个服务的配置信息, 集中管理。
#### Disconf
#### [Disconf](https://github.com/knightliao/disconf)
Distributed Configuration Management Platform(分布式配置管理平台) , 它是专注于各种分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务, 是一套完整的基于 zookeeper 的分布式配置统一解决方案。
* [GitHub](https://github.com/knightliao/disconf)
#### [SpringCloudConfig](https://github.com/spring-cloud/spring-cloud-config)
#### SpringCloudConfig
* [GitHub](https://github.com/spring-cloud/spring-cloud-config)
#### Apollo
#### [Apollo](https://github.com/ctripcorp/apollo)
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,用于微服务配置管理场景。
* [GitHub](https://github.com/ctripcorp/apollo)
### 权限认证
作用:根据系统设置的安全规则或者安全策略, 用户可以访问而且只能访问自己被授权的资源,不多不少。
#### Spring Security
#### [Spring Security](https://spring.io/projects/spring-security)
* [官网](https://spring.io/projects/spring-security)
#### apache Shiro
#### [Apache Shiro](http://shiro.apache.org/)
> Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any application – from the smallest mobile applications to the largest web and enterprise applications.
* [官网](http://shiro.apache.org/)
### 批处理
作用: 批量处理同类型数据或事物
#### Spring Batch
* [官网](官网)
#### [Spring Batch](https://spring.io/projects/spring-batch)
### 定时任务
> 作用: 定时做什么.
#### Quartz
> 作用: 定时做什么。
* [官网](http://www.quartz-scheduler.org/)
#### [Quartz](http://www.quartz-scheduler.org/)
### 微服务调用 (协议)
......@@ -102,12 +88,11 @@ Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能
* Remote Procedure Call
* 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 不依赖于具体的网络传输协议,tcp、udp 等都可以。
#### gRPC
#### [gRPC](https://www.grpc.io/)
* [官网](https://www.grpc.io/)
* > A high-performance, open-source universal RPC framework
> A high-performance, open-source universal RPC framework
> 所谓 RPC(remote procedure call 远程过程调用) 框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从 server/client 模型。使用的时候客户端调用 server 端提供的接口就像是调用本地的函数一样。
所谓 RPC(remote procedure call 远程过程调用) 框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从 server/client 模型。使用的时候客户端调用 server 端提供的接口就像是调用本地的函数一样。
#### RMI
......@@ -118,125 +103,85 @@ Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能
> 作用:多个服务之间的通讯
#### Feign(HTTP)
#### [Feign(HTTP)](https://github.com/OpenFeign/feign)
Spring Cloud Netflix 的微服务都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去调用,而 Feign 是一个使用起来更加方便的 HTTP 客戶端,使用起来就像是调用自身工程的方法,而感觉不到是调用远程方法。
* [GitHub](https://github.com/OpenFeign/feign)
### 服务熔断
> 作用: 当请求到达一定阈值时不让请求继续.
#### Hystrix
* > Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.
>
#### [Hystrix](https://github.com/Netflix/Hystrix)
* [GitHub](https://github.com/Netflix/Hystrix)
> Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.
#### Sentinel
#### [Sentinel](https://github.com/alibaba/Sentinel)
* > A lightweight powerful flow control component enabling reliability and monitoring for microservices. (轻量级的流量控制、熔断降级 Java 库)
* [GitHub](https://github.com/alibaba/Sentinel)
> A lightweight powerful flow control component enabling reliability and monitoring for microservices. (轻量级的流量控制、熔断降级 Java 库)
### 服务的负载均衡
> 作用:降低服务压力, 增加吞吐量
#### Ribbon
#### [Ribbon](https://github.com/Netflix/ribbon)
* >Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具, 它基于 Netflix Ribbon 实现
> Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具, 它基于 Netflix Ribbon 实现
>
* [GitHub](https://github.com/Netflix/ribbon)
#### Nginx
#### [Nginx](https://github.com/nginx/nginx)
Nginx (engine x) 是一个高性能的 HTTP 和反向代理 web 服务器, 同时也提供了 IMAP/POP3/SMTP 服务
* [GitHub](https://github.com/nginx/nginx)
#### Nginx 与 Ribbon 区别
1. Nginx 属于服务端负载均衡,Ribbon 属于客户端负载均衡.Nginx 作用与 Tomcat,Ribbon 作用与各个服务之间的调用 (RPC)
Nginx 属于服务端负载均衡,Ribbon 属于客户端负载均衡。Nginx 作用与 Tomcat,Ribbon 作用与各个服务之间的调用 (RPC)。
### 消息队列
> 作用: 解耦业务, 异步化处理数据
#### Kafka
* [官网](http://kafka.apache.org/)
#### RabbitMQ
#### [Kafka](http://kafka.apache.org/)
* [官网](https://www.rabbitmq.com/)
#### [RabbitMQ](https://www.rabbitmq.com/)
#### RocketMQ
#### [RocketMQ](http://rocketmq.apache.org/)
* [官网](http://rocketmq.apache.org/)
#### activeMQ
* [官网](http://activemq.apache.org/)
#### [activeMQ](http://activemq.apache.org/)
### 日志采集 (elk)
> 作用: 收集各服务日志提供日志分析、用户画像等
#### Elasticsearch
* [GitHub](https://github.com/elastic/elasticsearch)
#### Logstash
* [GitHub](https://github.com/elastic/logstash)
#### [Elasticsearch](https://github.com/elastic/elasticsearch)
#### Kibana
#### [Logstash](https://github.com/elastic/logstash)
* [GitHub](https://github.com/elastic/kibana)
#### [Kibana](https://github.com/elastic/kibana)
### API 网关
> 作用: 外部请求通过 API 网关进行拦截处理, 再转发到真正的服务
#### Zuul
#### [Zuul](https://github.com/Netflix/zuul)
> Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
>
* [GitHub](https://github.com/Netflix/zuul)
### 服务监控
> 作用: 以可视化或非可视化的形式展示出各个服务的运行情况 (CPU、内存、访问量等)
#### Zabbix
* [GitHub](https://github.com/jjmartres/Zabbix)
#### Nagios
#### [Zabbix](https://github.com/jjmartres/Zabbix)
* [官网](https://www.nagios.org/)
#### [Nagios](https://www.nagios.org/)
#### Metrics
* [官网](https://metrics.dropwizard.io)
#### [Metrics](https://metrics.dropwizard.io)
### 服务链路追踪
> 作用: 明确服务之间的调用关系
#### Zipkin
* [GitHub](https://github.com/openzipkin/zipkin)
#### [Zipkin](https://github.com/openzipkin/zipkin)
#### Brave
* [GitHub](https://github.com/openzipkin/brave)
#### [Brave](https://github.com/openzipkin/brave)
### 数据存储
......@@ -244,68 +189,42 @@ Nginx (engine x) 是一个高性能的 HTTP 和反向代理 web 服务器, 同
#### 关系型数据库
##### MySql
* [官网](https://www.mysql.com/)
##### Oracle
* [官网](https://www.oracle.com/index.html)
##### MsSql
##### [MySql](https://www.mysql.com/)
* [官网](https://docs.microsoft.com/zh-cn/sql/?view=sql-server-ver15)
##### [Oracle](https://www.oracle.com/index.html)
##### PostgreSql
##### [MsSQL](https://docs.microsoft.com/zh-cn/sql/?view=sql-server-ver15)
* [官网](https://www.postgresql.org/)
##### [PostgreSql](https://www.postgresql.org/)
#### 非关系型数据库
##### Mongodb
##### [Mongodb](https://www.mongodb.com/)
* [官网](https://www.mongodb.com/)
##### Elasticsearch
* [GitHub](https://github.com/elastic/elasticsearch)
##### [Elasticsearch](https://github.com/elastic/elasticsearch)
### 缓存
> 作用: 存储数据
#### redis
* [官网](https://redis.io/)
#### [redis](https://redis.io/)
### 分库分表
> 作用: 数据库分库分表方案.
#### shardingsphere
* [官网](http://shardingsphere.apache.org/)
#### Mycat
#### [ShardingSphere](http://shardingsphere.apache.org/)
* [官网](http://www.mycat.io/)
#### [Mycat](http://www.mycat.io/)
### 服务部署
> 作用: 将项目快速部署、上线、持续集成.
#### Docker
* [官网](http://www.docker.com/)
#### Jenkins
* [官网](https://jenkins.io/zh/)
#### Kubernetes(K8s)
#### [Docker](http://www.docker.com/)
* [官网](https://kubernetes.io/)
#### [Jenkins](https://jenkins.io/zh/)
#### Mesos
#### [Kubernetes(K8s)](https://kubernetes.io/)
* [官网](http://mesos.apache.org/)
#### [Mesos](http://mesos.apache.org/)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册