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. 5233杨光--Linux第一次实验

    学习计时:共14小时 读书:2小时 代码:7小时 作业:2小时 博客:3小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Li ...

  2. 学习pl/sql之一

    --使用pl/sql语句打印一个hello world begin   dbms_output.put_line('hello,world'); end;      但是在sqlplus里面就不一样了 ...

  3. hihocoder #1388 : Periodic Signal fft

    题目链接: https://hihocoder.com/problemset/problem/1388 Periodic Signal 时间限制:5000ms内存限制:256MB 问题描述 Profe ...

  4. java异常处理及自定义异常的使用

    1. 异常介绍 异常机制可以提高程序的健壮性和容错性. Throwable:Throwable是java语言所有错误或异常的超类. 有两个子类Error和Exception. 1.1 编译期异常 编译 ...

  5. Docker的volume机制实现容器数据的持久性存储

    1:可以启动一个容器的时候,临时指定挂载的volume,这个volume会自动创建,无需在宿主机上事先创建 docker run -it -v /busybox busybox:latest 登入到b ...

  6. 软工网络15团队作业8——Beta阶段冲刺合集

    博客链接集合 Beta阶段敏捷冲刺计划博客 Beta阶段冲刺第一天 Beta阶段冲刺第二天 Beta阶段冲刺第三天 Beta阶段冲刺第四天 Beta阶段冲刺第五天

  7. 获取字符串中某个指定的子串出现的开始位置(CHARINDEX用法)

    CHARINDEX作用 写SQL语句我们经常需要判断一个字符串中是否包含另一个字符串,但是SQL SERVER中并没有像C#提供了Contains函数,不过SQL SERVER中提供了一个叫CHAEI ...

  8. python读取文件解码失败

    python2.7 urllib2 抓取新浪乱码 中的: 报错的异常是 UnicodeDecodeError: 'gbk' codec can't decode bytes in position 2 ...

  9. Linux上的free命令详解-收藏

    解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][ ...

  10. Java并发知识点总结

    前言:Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.同时,如果想要提升自己的技术,Java并发知识必不可少,这里简单整理了一些相关内容,希望可以起到抛砖引玉的作用 ...