Micro是一个微服务框架(或者说是工具集):提供了各类组件,解决微服务架构中的不同问题,服务监控、服务发现、熔断机制,负载均衡等等,自己一个个解决这些问题几乎不可能,这时候就需要借助go-micro这些组件了。提供了微服务的基础框架。是一种架构.(go-micro  是Micro 底层实现, 用于写服务的,而工具集是用来访问附服务的)

服务被拆分为几十个甚至上百个后如何进行管理呢?比如服务的伸缩、监控、部署怎么做,这时候可用 google 的 k8s 来进行服务治理,k8s 提供了微服务治理所需的全套工具。

API网关(API Gateway):API网关是请求的入口,把请求动态路由到具体服务,拥有强大的路由能力,它可以处理http、gRPC、websocket、消息推送事件等等。API网关模块工作在软件服务架构的边缘。他的能力就是让单一的入口去访问微服务

命令行接口(Interactive CLI) :交互式的命令行接口。

服务代理(Service Proxy):它不暴露任何接口,只工作在内部环境,相当于桥接内部服务。 ???

模板生成(Template Generation):基于预置模版快速创建新的服务代码。

SlackOps小机器人(SlackOps Bot): Slack小机器人插件,当它运行中服务中时,这个插件允许开发者通过Slack消息来操作平台。与平台交互的另外一种形式。

管理控制台(Web Dashboard):通过Web管理控制台,可以直接在Web页面上查看服务的运行情况,管理控制台也有CLI交互页面提供给开发者在线上处理,就像直接操作终端一样。

Go-micro框架(Go Framework):是Micro的底层、核心。GO-Micro把分布式服务抽象,并提供简便的方式让大家构建具有高弹性的微服务。

组件做到职责分离

可以通过Micro工具集的cli,web ui,slack,或者api网关(api gateway)来访问操控服务。

API、Web、SRV作为micro工具集的一部分,我们尝试着使用一些设计模式规划出弹性的架构,通过把API接口、Web管理控制台、SRV(SRV是service的简称,可理解为后台业务逻辑部分)

Go-micro: 可以帮你编写微服务

  • 抽象出分布式系统
  • 集成服务发布、RPC、分发/订阅机制、消息编码
  • 超时容错、重试机制、负载均衡
  • 功能可扩展
  • 可插拔的后台交换技术

Go-config: 可以管理复杂的配置

Go-plugins: 插件集,包含了绝大多数的后端技术

Rpc 框架可以让你在 A 服务器调用 B 服务器上的函数接口,这中间因为走了网络,所以是没有单体应用中本地函数调用效率高的。但是当业务上规模后,这点损耗是可以忽略的

什么是微服务:

微服务是一种软件架构模式,用来把大而重的应用程序切成许多可管理的、可管理的独立服务,各服务之间的通信并不受不同语言的协议影响,每个服务只管做好一件事情。

  • 单一职责
  • 独立进程
  • 轻量通信
  • 容错隔离
  • 独立发布
  • 易于理解
  • 执行力强

Micro是一个微服务的生态系统

Service是Client和Server的封装:  包含了一系列的方法使用初始值去初始化Service和Client,使我们可以很简单的创建一个rpc服务

Go 微服务架构Micro相关概念理解的更多相关文章

  1. 关于SpringCloud微服务架构概念的一点理解

    目前微服务是非常火的架构或者说概念,也是在构建大型互联网项目时采用的架构方式. 1.单体架构单体架构,是指将开发好的项目打成war包,然后发布到tomcat等容器中的应用. 假设你正准备开发一款与Ub ...

  2. 深入理解微服务架构spring的各个知识点(面试必问知识点)

    什么是spring spring是一个开源框架,spring为简化企业级开发而生,使用spring可以使简单的java bean 实现以前只有EJG才能实现的功能. Spring是一个轻量级的控制反转 ...

  3. Spring Cloud Alibaba微服务架构入门最容易理解篇

    微服务架构介绍 Spring Cloud Alibaba推荐的微服务生态架构基于分层架构实现如下: 接入层:最外层为LVS+Keepalived,可承受几十万级高并发流量洪峰,然后再通过内层的ngin ...

  4. 微服务架构 技能图谱skill-map

    # 微服务架构 技能图谱 ## 理论基础### 概念#### 多微合适 - 非代码函数 - 非重写时间 - 适合团队最重要 - 独立业务属性 - 全功能团队 #### 进程隔离 - 服务运行在独立的进 ...

  5. 【.net core】电商平台升级之微服务架构应用实战

    一.前言 这篇文章本来是继续分享IdentityServer4 的相关文章,由于之前有博友问我关于微服务相关的问题,我就先跳过IdentityServer4的分享,进行微服务相关的技术学习和分享.微服 ...

  6. WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例

    最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架 ...

  7. NET实现的DDD、CQRS与微服务架构

    WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例 最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间 ...

  8. Spring Cloud搭建微服务架构----前言

    前言 微服务并不神秘,只是在互联网技术发展过程中的一个产物,整个架构系统随着客户端的多样性,服务越来越多,devops的发展而产生的架构变种. 许多公司,通过采用微处理结构模式解决单体应用的问题,分解 ...

  9. 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)

    背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...

随机推荐

  1. Derby 数据库基本操作 命令

    0. 命令行 登录/退出 登录 java org.apache.derby.tools.ij ..\dirs>java org.apache.derby.tools.ij ij 版本 10.3 ...

  2. ubuntu下后台服务的管理

    注册后台服务后都有脚本存在/lib/systemd/system路径下 如mysql为mysql.service 被service管理的进程被杀掉还是会重启的 应使用service XXX stop停 ...

  3. Rank HDU - 1704 【传递闭包水题】

    there are N ACMers in HDU team.ZJPCPC Sunny Cup 2007 is coming, and lcy want to select some excellen ...

  4. React项目性能优化

    1. 使用生产版本和Fragment 1. 生产版本 确保发布的代码是生产模式下(压缩)打包的代码. 一般运行npm run build命令. 直接从webpack看配置文件,需要设置mode = ' ...

  5. @MapperScan和@ComponentScan的区别

    区别 今天在撸SpringBoot的时候,突然对注解产生了混淆,@MapperScan和@ComponentScan都是扫描包,二者之间有什么区别呢? 首先,@ComponentScan是组件扫描注解 ...

  6. AT3913 XOR Tree(巧妙转换+状压dp)

    Step1:首先定义一个点的权值为与其相连边的异或和.那么修改一条路径,权值改变的只有两个端点.边权都为0和点权都为0实质相同. Step2:那么现在和树的结构就没有什么关系了.每次选两个点,然后同时 ...

  7. 【概率论】4-3:方差(Variance)

    title: [概率论]4-3:方差(Variance) categories: - Mathematic - Probability keywords: - Variance - Standard ...

  8. Win10配置Java环境变量

    很多同学在学习Java入门的时候被Java环境变量搞的一头雾水,今天这篇文章拓薪教育就来说一下如何在win10下配置环境变量; 下载jdk安装包: 首先我们需要下载jdk的安装包,这里提供jdk的安装 ...

  9. Mybatis——更新DB表的字段时,应该注意的点

    1.记录下哪些表发生了字段更新. 2.利用Navicat将最新的数据库(schema)转储SQL文件到项目的sql目录下,作为备份 3.依次更新 被记录表所对应的Po类,确保类的域和表的字段一一对应, ...

  10. 2019.6.28 校内测试 T3 【音乐会】道路千万条

    大眼一看最下面的题意解释的话,发现这和洛谷P1310表达式的值挺像的,大概都是给定一些运算符号,让最后的表达式为true的概率,为false的概率啥的QwQ~: 然后这个题嘛?就是在所有的运算符中提溜 ...