micro 架构组件介绍
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 架构组件介绍的更多相关文章
- Android官方架构组件介绍之LifeCycle
Google 2017 I/O开发者大会于近日召开,在开发者大会上谷歌除了发布了Android O等一些新产品之外,也对Android代码的架构做出了一个官方的回应. Google 2017 I/O开 ...
- Android官方架构组件介绍之LifeCycle(一)
Android官方架构组件介绍之LifeCycle 下面是官方提供的Android App开发的架构图: 从上图可以看到一些关键字:ViewModel,LiveData,Room等.其实看了上面视频的 ...
- Android官方架构组件介绍之LiveData
LiveData LiveData是一个用于持有数据并支持数据可被监听(观察).和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle ...
- Android官方架构组件介绍之LiveData(二)
LiveData LiveData是一个用于持有数据并支持数据可被监听(观察).和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle ...
- Android官方架构组件介绍之ViewModel
ViewModel 像Activity,Fragment这类应用组件都有自己的生命周期并且是被Android的Framework所管理的.Framework可能会根据用户的一些操作和设备的状态对Act ...
- Android官方架构组件介绍之ViewModel(三)
ViewModel 像Activity,Fragment这类应用组件都有自己的生命周期并且是被Android的Framework所管理的.Framework可能会根据用户的一些操作和设备的状态对Act ...
- Android官方架构组件介绍之应用(四)
讲一个项目常见的功能,友盟统计功能 例如一个项目有很多多modlue,每个里面modlue都有Activity,Activity需要友盟统一,Fragment也需要友盟统计.一般做法就是继承一个Bas ...
- Tomcat负载均衡、调优核心应用进阶学习笔记(一):tomcat文件目录、页面、架构组件详解、tomcat运行方式、组件介绍、tomcat管理
文章目录 tomcat文件目录 bin conf lib logs temp webapps work 页面 架构组件详解 tomcat运行方式 组件介绍 tomcat管理 tomcat文件目录 ➜ ...
- Micro 架构与设计
Micro 架构与设计 翻译自 Micro architecture & design patterns for microservices 注: 原文作者即 Micro 框架的开发者. 过去 ...
随机推荐
- BufferedWriter与BufferedRead --------------------------Test
package com.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; ...
- 作业3//Calculator::1
计算器 作业博客 github 1.扯淡 代码其实是在十几号时打的,花了半晚上加半个下午.但是懒得打随笔,所以到现在才完成. 我的课程里没找到queue,是百度照着瞎打的. 2.总结 不大理解要求,S ...
- 第一个spring冲刺团队贡献分(80分满分)
团队贡献分(80分满分): 李泳江 24 叶煜稳 26 谢洪跃 18 周伟雄 12
- python learning Regular Expression.py
# 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式通常被用来检索.替换那些符合某个模式(规 ...
- AWS上的实例无法ping通的解决方案
首先Ping只是向服务器发送ICMP的数据包,如果在服务器的防火墙没有允许ICMP协议的数据包的话,那么即使服务器正常运行,那也是ping不同的. 对于亚马逊云服务器,首先我们要确保实例绑定的安全组允 ...
- 微服务架构之思维三部曲:What、Why、How
本文转自:http://www.servicemesh.cn/?/article/49 What:什么是微服务? 某百科对微服务架构的定义和阐述:微服务可以在“自己的程序”中运行,并通过“轻量级设备与 ...
- 使用FileReader对象的readAsDataURL方法来读取图像文件
使用FileReader对象的readAsDataURL方法来读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项 ...
- Mysql 定位执行效率低的sql 语句
一.通过MySQL慢查询日志定位执行效率低的SQL语句. MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysq ...
- Android如何避免OOM总结
转自:https://blog.csdn.net/ljx19900116/article/details/50037627 前面介绍了一些基础的内存管理机制以及OOM的基础知识,那么在实践操作当中,有 ...
- [转帖]22个必须学习的Linux安全命令
22个必须学习的Linux安全命令 http://os.51cto.com/art/201808/581401.htm Linux系统的安全性涉及很多方面,从设置帐户到确保用户合法,限制比完成工作所需 ...