A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逆风TO 黑马粉丝团   /  2020-4-28 14:01  /  3686 人查看  /  48 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本文介绍一下微服务架构常用技术组件选型!
开发语言
  • JAVA
    主流编程语言,适合构建大型后台服务
  • Golang
    Go语言是谷歌2009发布的第二款开源编程语言。专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。Google对Go寄予厚望。其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。目前作为云计算领域的不二之选!
开发工具
  • IntelliJ IDEA
    jetbrains公司旗下产品,智能代码助手、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合等。多语言支持,免费版只支持JAVA等少数语言。旗舰版为收费版本,同时提供免费版(功能上较旗舰版有减少)。
  • VS Code
    是一款免费的、开源的、高性能的、跨平台的、轻量级的代码编辑器,同时,在性能,语言支持、开源社区方面也做的很不错!

开发技术框架
  • 微服务框架
    Spring Cloud / Spring Cloud alibaba : Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,提供了全套微服务解决方案。
  • RPC
    RestTemplate / WebClient:Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端
    gRPC :   GRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP2协议,基于protobuf 3.x的一款rpc框架。 多种语言支持; 支持链接复用,集群内可采用长链接; 性能简单调优后,可满足多数业务场景需求。
  • 分布式事务
    Seata : 阿里巴巴重点开源项目、Java开发、性能高、无锁、代码无侵入AT模式0代码、支持MT模式非事务型存储、社区活跃,版本更新快,使用简单!
  • 流量控制、熔断降级
    Sentinel:阿里巴巴重点开源项目、Java开发、二次开发方便、社区活跃

中间件
  • API网关
    Spring Cloud Gateway:Spring首选、方便二次开发、支持异步非阻塞
    Kong:Kong是一款基于Nginx_Lua模块写的高可用,易扩展由Mashape公司开源的API Gateway项目。性能优异,插件丰富基本开箱即用,二开有一定的使用门槛。
  • 配置中心
    Nacos:阿里巴巴重点开源项目、可同时作为注册/中心配置中心,简化技术栈、有完善管理界面、Java开发、二次开发方便、社区活跃、CP模式,还在不断更新迭代。
    Apollo:是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
  • 服务发现
    Nacos : 阿里巴巴重点开源项目、可同时作为注册/中心配置中心,简化技术栈、有完善管理界面、Java开发、二次开发方便、社区活跃、CP模式,还在不断更新迭代。
    Zookeeper:ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。性能可以满足较大规模的服务发现和配置中心,生效实时性高,不适合大规模实时数据同步场景。
  • 监控
    Prometheus:功能较为全面的开源监控系统,CNCF技术栈、社区活跃
    Grafana:Grafana是一个开源的度量分析与可视化套件。纯 Javascript 开发的前端工具,通过访问库(如InfluxDB),展示自定义报表、显示图表等。大多使用在时序数据的监控方面,如同Kibana类似。Grafana的UI更加灵活,有丰富的插件,功能强大。 界面简洁美观,支持自由定制,社区有丰富的Dashboard支持。
  • 链路跟踪
    SkyWalking:分布式追踪系统,国产链路跟踪、社区文档丰富!
  • 日志采集
    EFK:分布式服务日志处理,扩展方便。

组件类库
  • 序列化
    Jackson:Spring首选、稳定安全
    protobuf:Protocol Buffer( 简称Protobuf) 是google开源的一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或RPC 数据交换格式。
工具
  • 构建工具
    Maven:主流的项目构建和管理工具,Maven是 Apache 下的一个纯 Java 开发的开源项目,是一个项目构建和管理的工具;它提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
  • 接口请求工具
    postman:postman是一款功能强大的网页调试和模拟发送HTTP请求的Chrome插件,支持几乎所有类型的HTTP请求,操作简单且方便。
  • 容器
    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。使用Docker可以带来以下几个优势:1. 更快速的交付和部署;2. 高效的部署和扩容;3. 更高的资源利用率;4. 简单的管理
  • 集群管理
    Kubernetes:Kubernetes一个用于容器集群的自动化部署、扩容以及运维的开源平台。通过Kubernetes,你可以快速有效地响应用户需求;快速而有预期地部署你的应用;极速地扩展你的应用;无缝对接新应用功能;节省资源,优化硬件资源的使用。为容器编排管理提供了完整的开源方案。生态丰富,易扩展;功能丰富稳定,大公司背书;易上手。

运行环境
  • 操作系统:
    Linux<CentOS 7+>:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
  • Web服务器
    Tomcat<8+>:Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Nginx:轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器NodeJs:服务端JavaScript环境




本文转自链接:https://juejin.im/post/5ea793a1f265da7c01701c4a



48 个回复

倒序浏览
6666666666666666666666
回复 使用道具 举报
666666666666666666666666666666
回复 使用道具 举报
感谢分享哦~
回复 使用道具 举报
作者棒棒哒
回复 使用道具 举报
作者棒棒哒
回复 使用道具 举报
作者棒棒哒
回复 使用道具 举报
我爱我1022 来自手机 中级黑马 2020-5-4 12:07:50
8#
回复 使用道具 举报
作者棒棒哒
回复 使用道具 举报
66666666666666666
回复 使用道具 举报
作者棒棒哒
回复 使用道具 举报
作者棒棒哒
回复 使用道具 举报
作者棒棒哒
回复 使用道具 举报
作者棒棒哒
回复 使用道具 举报
66666666666666666666666666666666666666666666666666
回复 使用道具 举报
很不错哦!!!
回复 使用道具 举报

感谢分享哦~
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报

感谢分享哟~  棒棒哒加油~~
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马