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. 作业要求 20181127-5 Beta发布用户使用报告

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2450 一.用户反馈 反馈截图(部分) 三.用户反馈情况统计图

  2. mysql 官方集群

    一.环境准备(Centos7,mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64.tar.gz) 卸载以前安装的Mysql 或者 mariadb yum -y ...

  3. Task 3 求最大数组和

    题目:返回一个整数数组中最大子数组的和. (要求:输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为 ...

  4. java-switch语句

    switch语句是常用的java循环判断语句,但是有的知识点并不一定清楚. 首先是switch语句括号中的判断条件,判断条件只能是整型或者字符和整型或者字符组成的表达式. 再就是case语句,可以称之 ...

  5. DPDK flow_filtering 源码阅读

    代码部分 main.c /*- * BSD LICENSE * * Copyright 2017 Mellanox. * * Redistribution and use in source and ...

  6. 【CSAPP笔记】12. 高速缓存存储器

    高速缓存存储器 在存储层次结构中,高速缓存存储器,也叫 cache 是最接近 CPU 寄存器的那一块. 更一般而言,缓存(caching)是一个无所不在的技术.缓存的意思是:对于每层的存储设备,位于 ...

  7. 对it行业的一些看法

    随着世界产业转移的加速,欧美.日本等发达国家将大量的软件开发业务转移到中国.印度等国家,随之而来的是这些国家对it人才的急切需求! 对比国内的大学生就业形势而言,无疑是it相关专业的毕业生就业压力较少 ...

  8. 看懂Qt源代码-Qt源码的对象数据存储

    第一次看Qt源代码的人都会被其代码所迷惑,经常会看到代码中的d_ptr成员.d_func(函数)和Q_DECLARE_PRIVATE等奇怪的宏,总是让人一头雾水,下面这篇文章转自http://www. ...

  9. 微信公众平台实现获取用户OpenID的方法

    这篇文章主要介绍了微信公众平台实现获取用户OpenID的方法,需要开发人员经过微信授权后获取高级接口才能使用此功能,用户OpenID对于微信公众平台建设有着非常广泛的用途,需要的朋友可以参考下 本文实 ...

  10. vmware 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

    错误提示:已将该虚拟机配置为使用 64 位客户机操作系统.但是,无法执行 64 位操作. 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态. 如果已在 BIOS/固件设置中禁用 ...