微服务快速实践3-java下开源组件选型

微服务快速实践3-java下常见开源组件选型

记录下微服务项目中使用到的开源组件技术选型。

1.服务调用

1.http调用

springcloud(包括fegin、ribbon、httpclient、httpinvoke等)

springcloud:https://spring.io/projects/spring-cloud

2.rpc调用

dubbo 、grpc、或者自定义开发rpc

dubbo:http://dubbo.apache.org/en-us/

grpc:http://doc.oschina.net/grpc?t=57966

2.常见网关选型

zuul/zuul2

springcloud-gateway

kong (基于nginx,集成了lua库):https://github.com/Kong/kong

3.分布式配置中心

apollo :https://github.com/ctripcorp/apollo

nacos :http://dubbo.apache.org/zh-cn/docs/user/references/registry/nacos.html

zookeeper:https://zookeeper.apache.org/

etcd:https://etcd.io/

springcloud-config:https://spring.io/projects/spring-cloud-config

4.分布式注册中心

zk eureka redis etcd
consul:https://www.consul.io/

5.分布式限流

目前开源的网关组件都集成了各自的限流模块,只需要基于这些模块自定义开发即可。

zuul网关系列的:https://github.com/marcosbarbero/spring-cloud-zuul-ratelimit
sentinel:https://github.com/alibaba/Sentinel

结合网关自定义实现(如kong网关在集成的限流模块基础上,lua开发)

6.分布式事务(数据库)

事务消息:rocketmq,kafka

seata:https://github.com/seata/seata

7.数据库分库分表

Cat :http://www.mycat.io/

shard-jdbc :https://shardingsphere.apache.org/document/current/cn/overview/

Tddl:https://github.com/alibaba/tb_tddls

8.APM,链路追踪

Cat:https://github.com/dianping/cat

Zipkin:https://zipkin.io/

Pinpoint:https://github.com/naver/pinpoint

SkyWalking:https://github.com/apache/skywalking

prometheus:https://prometheus.io/

9.日志相关

logstash:https://github.com/elastic/logstash

kafka:http://kafka.apache.org/

logbeat:https://elasticsearch.cn/topic/beat

filebeat:

你可能感兴趣的:(微服务开发实践,微服务,开源组件选型)