一 什么是Micro?Micro是一个微服务生态系统,致力于提供产品 , 服务和解决方案,以实现现代软件驱动型企业的创新 。我们计划成为任何与微服务相关的事实资源,并期待公司能够利用这项技术为自己的业务 。从早期的原型开始一直到大规模的生产部署 。
我们已经看到行业发生根本性转变 。摩尔定律是有效的,我们每天都能获得越来越多的计算能力 。但是,我们无法完全获取这种新的能力 。现有的工具和开发实践在这个新时代并没有scale 。没有提供开发人员从单一代码库转向更高效的设计模式的工具 。大多数公司不可避免地以单一设计达到收益递减 , 必须进行大规模的研发再造 。Netfix,Twitter,Gilt和Hailo都是最好的例子 。所有最终都建立了自己的微服务平台 。
我们的愿景是提供基本的构建模块,使任何人都可以轻松采用微服务 。
二 go-micro简介Go Micro是一个插件化的基础框架 , 基于此可以构建微服务,Micro的设计哲学是可插拔的插件化架构
在架构之外,它默认实现了consul作为服务发现(2019年源码修改了默认使用mdns),通过http进行通信,通过protobuf和json进行编解码
Micro 是一个用于构建和管理分布式系统的系统.
Micro 的主要组件如下:
- 运行时: 用于管理服务包括 auth, config, discovery, networking 的运行时环境.
- 框架: 用于编写要在运行时运行的服务的 Go 框架.
- 客户端: 多语言客户端, 使其他程序能够访问微服务.
- 服务发现:自动服务注册和名称解析 。服务发现是微服务开发的核心 。当服务A需要与服务B通话时,它需要该服务的位置 。默认发现机制是多播DNS(mdns),一种零配置系统 。您可以选择使用SWIM协议为p2p网络设置八卦,或者为弹性云原生设置设置consul
- 负载均衡:基于服务发现构建的客户端负载均衡 。一旦我们获得了服务的任意数量实例的地址 , 我们现在需要一种方法来决定要路由到哪个节点 。我们使用随机散列负载均衡来提供跨服务的均匀分布,并在出现问题时重试不同的节点
- 消息编码:基于内容类型的动态消息编码 。客户端和服务器将使用编解码器和内容类型为您无缝编码和解码Go类型 。可以编码任何种类的消息并从不同的客户端发送 。客户端和服务器默认处理此问题 。这包括默认的protobuf和json
- 请求/响应:基于RPC的请求/响应,支持双向流 。我们提供了同步通信的抽象 。对服务的请求将自动解决,负载平衡,拨号和流式传输 。启用tls时,默认传输为http / 1.1或http2Async Messaging:PubSub是异步通信和事件驱动架构的一流公民 。事件通知是微服务开发的核心模式 。启用tls时,默认消息传递是点对点http / 1.1或http2
- 可插拔接口:Go Micro为每个分布式系统抽象使用Go接口,因此,这些接口是可插拔的,并允许Go Micro与运行时无关,可以插入任何基础技术插件地址:https://github.com/micro/go-plugins
如果有需要通知所有的Server端可以使用Brocker进行信息的推送,Brocker 信息队列进行信息的接收和发布
五 go-micro核心接口go-micro之所以可以高度订制和他的框架结构是分不开的,go-micro由8个关键的interface组成,每一个interface都可以根据自己的需求重新实现,这8个主要的inteface也构成了go-micro的框架结构
文章插图
【Go Micro介绍与入门】
推荐阅读
- 华为p50pro骂声一片_华为p50pro缺点与不足
- C++和Java多维数组声明和初始化时的区别与常见问题
- 荣耀magic3有超级终端功能吗_超级终端功能介绍
- 我的世界信标怎么用,信标功能详细介绍(我的世界中的信标是怎么用的)
- 华为mate40的优点和缺点_华为mate40的优缺点介绍
- 玛咖牡蛎片压片糖果的功效与作用是什么?
- Go_Channel详解
- Docker 部署Kibana
- 创造与魔法10月25日礼包兑换码是多少
- 剑与远征绿裔树奶赏金试炼之地路线怎么走