分布式系统所带来的技术问题

前言

如果要把一个单体应用变成一个分布式系统,或者构建一个分布式系统需要用到哪些技术呢?下面介绍的框架都是开源的框架。

分布式服务框架

作为分布式系统,首先需要让各系统或服务之前互相通信,必须要有一个分布式服务框架。各个服务可以感知对方在哪里,发送请求,可能通过RPC的方式或HTTP的方式。

最常见的框架是dubbo和spring cloud。

分布式事务

基于TCC、最终一致性、2PC等分布式事务的实现方案和开源技术。

开源方案有:ShardingSphere、seata

分布式锁

基于zookeeper或者redis实现分布式锁

分布式缓存

例如redis、memcache等。

分布式消息系统

例如kafka、rabbitmq、rocketmq。

分布式搜索系统

例如ES。

分布式调度

例如:Elastic-Job

配置中心

例如: Spring config 、Apollo 、nacos

注册中心

例如:Zookeeper、Eureka、Nacos、Consul

全链路追踪

例如: Zipkin、Brave、Dapper、CAT

服务监控

例如: Zabbix、Nagios、Metrics、Spectator

日志收集和分析

FileBeat + Kafka + ELK

服务路由

例如:Zuul

服务熔断器

例如: Hystrix、Envoy

负载均衡

例如: Nginx 、 OpenResty


   转载规则


《分布式系统所带来的技术问题》 孤独如梦 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
log4j配置无效的解决方法 log4j配置无效的解决方法
前言在项目中配置了log4j不起作用,但仍然可以输日志,猜想是不是在其它地方配置了log4j。 解决方法如何去确认是否是使用其它地方的log4j配置呢?可以在java命令中加入-Dlog4j.debug虚拟机参数来显示log4j加载配置文件
2019-06-06
下一篇 
Zookeeper不断提示连接被拒绝问题解决 Zookeeper不断提示连接被拒绝问题解决
Zookeeper不断提示连接被拒绝问题解决问题描述zookeeper启动后,查看zookeeper.out文件提示连接被拒,每次都是秒断,日志不断刷新。 2019-03-20 18:50:36,190 [myid:] - INFO [N
2019-06-06
  目录