Micro 是什么
  Micro 是微服务生态系统中专注于提供产品、服务和解决方案的一款软件,使得在现代软件企业中起到创新驱动。它计划是可以将任何微服务相关的资源与即将使用此款软件的公司结合起来,利用此技术来处理自己的业务。从早期原型的搭建直到大规模生产环境部署应用。
  Micro 可以理解为它就是一个微服务平台,提供微服务的方便构建,官方说法也叫做:一个开源的微服务工具箱
  Micro 为构建和管理微服务提供核心要求,其中它主要通过 Go 语言编程来提供一系列的库和工具,如果想要通过其他语言实现可通过 http 来使用,我们可以使用 Micro 提供的跨语言代理服务:sidecar
  micro 对应 github 地址:https://github.com/micro/micro
官方翻译:
    micro 的目的是为了简化分布式系统开发。它的核心是应该有足够的能力为任何想要开发微服务的人提供便利。当你有数以百计的服务规模时,micro 提供必要的工具来管理微服务的环境
    如果你打算使用 golang 来开发对应的服务那么就 check out 对应的项目名为:go-micro,如果是 java 语言开发就需要 check out 项目名为:ja-micro;其他语言如何使用可以查看:examples/sidecar
    micro 工具箱有以下组件构成:
    1. go-micro --> 一个用 golang 语言开发的可插入的RPC框架。它提供了所需要的库从而实现服务发现,客户端负载均衡、编码、同步和异步通信。
    2. sidecar   -->  是语言无关的RPC代理,可以实现go-micro作为HTTP端点的所有功能。 golang 是构建微服务很好的语言,当然你也可以使用其他语言,因此,sidecar 提供了一种方法将你的其他应用程序集成到micro世界。
    3. api   --> 这个 API 是一个 HTTP 网关服务和请求路由到适当的微服务。它作为一个单一入口点可以被用作一个反向代理或转化为RPC的HTTP请求。
    4. web    --> 一个web界面和反向代理的micro web应用程序。我们认为,web app 应该可以作为微服务,因此它可以被当做微服务中首先启动的组件。它的行为表现的像 api 中的反向代理,当然也包括支持web sockets。
    5. cli    --> 一个直接的命令行接口与微服务进行交互。当然,有时候我们不想直接连接到服务注册中心它还允许我们利用 sidecar 作为一个代理来进行交互
    6. bot(机器人) --> Hubot风格机器人,在你通过松弛微服务平台,并可以与之交互,HipChat,XMPP等等。它提供了通过消息传递cli的特性。可以添加额外的命令自动共同行动的任务。
go-micro
    它的实现是使用 golang 语言开发的一个可插入的 RPC 框架用于构建微服务。它提供了创建使用所需的基本特征、发现和交流服务。任何好的微服务架构都是从寻址服务发现、同步和异步通信开始。
    它包括以下功能特点:
      1. Registry - Client side service discovery
          注册 - 客户端服务发现
      2. Transport - Synchronous communication
          通讯 - 同步通信
      3. Broker - Asynchronous comunication
          中间代理 - 异步通信
      4. Selector - Node filtering and load balancing
          选择器 - 节点过滤和负载均衡
      5. Codec - Message encoding/decoding
       编码解码器 - 消息编码/解码
      6. Server - RPC server building on the above
       服务端 - 在这之上建立的 RPC 服务端
      7. Client - RPC client building on the above
       客户端 - 在这之上建立的 RPC 客户端

go-micro 不同于其他大部分的库,它是可插拔式的体系结构。这使得具体实现和后台系统每个package 中选择交换不同的插件。例如,go-micro 默认的服务注册机制是 Consul,但这可以很容易地换成例如 etcd、zookeeper 或其他任何你选择实现的插件。我们可以通过以下地址找到一家实现好的插件列表:
    github.com/micro/go-plugins
    go-micro 作为可插入系统,它的价值是能够选择平台用于支持微服务而不需要修改任何代码。 go-micro 不需要修改任何代码,只需要引入一个插件,你就完成了。
    doc:
    1. 查看 go-micro 的 redeme,它给我们提供了如何去写、运行以及查询一个服务的用法:https://github.com/micro/go-micro
    2. 还有 greeter 示例代码:github.com/micro/examples/greeter
    3. micro 所有服务的示例查看:github.com/micro/examples
    4. go-micro 的 plugins github地址:https://github.com/micro/go-plugins

micro sidecar
  The micro sidecar is a language agnostic proxy for building highly available and fault tolerant microservices.
  这个 micro sidecar 是一个跨语言的代理,目的是用来构建高可用和容错能力的微服务。它类似于 Netflix 的 Prana 或者 是 Buoyant 的 RPC 代理 Linkerd

micro 架构组件介绍的更多相关文章

  1. Android官方架构组件介绍之LifeCycle

    Google 2017 I/O开发者大会于近日召开,在开发者大会上谷歌除了发布了Android O等一些新产品之外,也对Android代码的架构做出了一个官方的回应. Google 2017 I/O开 ...

  2. Android官方架构组件介绍之LifeCycle(一)

    Android官方架构组件介绍之LifeCycle 下面是官方提供的Android App开发的架构图: 从上图可以看到一些关键字:ViewModel,LiveData,Room等.其实看了上面视频的 ...

  3. Android官方架构组件介绍之LiveData

    LiveData LiveData是一个用于持有数据并支持数据可被监听(观察).和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle ...

  4. Android官方架构组件介绍之LiveData(二)

    LiveData LiveData是一个用于持有数据并支持数据可被监听(观察).和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle ...

  5. Android官方架构组件介绍之ViewModel

    ViewModel 像Activity,Fragment这类应用组件都有自己的生命周期并且是被Android的Framework所管理的.Framework可能会根据用户的一些操作和设备的状态对Act ...

  6. Android官方架构组件介绍之ViewModel(三)

    ViewModel 像Activity,Fragment这类应用组件都有自己的生命周期并且是被Android的Framework所管理的.Framework可能会根据用户的一些操作和设备的状态对Act ...

  7. Android官方架构组件介绍之应用(四)

    讲一个项目常见的功能,友盟统计功能 例如一个项目有很多多modlue,每个里面modlue都有Activity,Activity需要友盟统一,Fragment也需要友盟统计.一般做法就是继承一个Bas ...

  8. Tomcat负载均衡、调优核心应用进阶学习笔记(一):tomcat文件目录、页面、架构组件详解、tomcat运行方式、组件介绍、tomcat管理

    文章目录 tomcat文件目录 bin conf lib logs temp webapps work 页面 架构组件详解 tomcat运行方式 组件介绍 tomcat管理 tomcat文件目录 ➜ ...

  9. Micro 架构与设计

    Micro 架构与设计 翻译自 Micro architecture & design patterns for microservices 注: 原文作者即 Micro 框架的开发者. 过去 ...

随机推荐

  1. Scrum立会报告+燃尽图(十二月六日总第三十七次):程序功能逻辑优化

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284 项目地址:https://git.coding.net/zhang ...

  2. so easy, too happy

    一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 • Estimate • 估计这个任务需要多 ...

  3. beat冲刺(7/7)

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(7/7) 后敬甲(组长) 过去两天完成了哪些任务 ppt制作 视频拍摄 接下来的计划 准备答辩 还剩下哪些 ...

  4. java编程的一些注意事项

    下面是参考网络资源和总结一些在java编程中尽可能做到的一些地方 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例 ...

  5. C51学习笔记

    转自:http://blog.csdn.net/gongyuan073/article/details/7856878 单片机C51学习笔记 一,   C51内存结构深度剖析 二,   reg51.头 ...

  6. JavaScript下的new操作符做了什么?

    可以参考知乎的一篇文章:https://zhuanlan.zhihu.com/p/23987456 参考网上其他人的文章,new发生了以下操作 参考MDN:https://developer.mozi ...

  7. tomcat 启动异常 EOFException: Unexpected end of ZLIB input stream

    EVERE: Exception fixing docBase for context [/agdis] java.io .EOFException: Unexpected end of ZLIB i ...

  8. C++模式学习------适配器模式

    适配器模式: 适配器模式属于结构型的设计模式,是将一个类的接口转换成使用方希望的另外一个接口,这样使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适配器模式有两种: 1.类的适配器:继承不 ...

  9. 【开发工具IDE】eclipse的SVN提交忽略target等多余文件

    这个build失败的解决方案就是不要把你项目的 target目录放在src repository 里面,还有 .project 和 .classpath最好也别放到src repository 里. ...

  10. Codeforces Round#509 Div.2翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...