Go 微服务架构Micro相关概念理解
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相关概念理解的更多相关文章
- 关于SpringCloud微服务架构概念的一点理解
目前微服务是非常火的架构或者说概念,也是在构建大型互联网项目时采用的架构方式. 1.单体架构单体架构,是指将开发好的项目打成war包,然后发布到tomcat等容器中的应用. 假设你正准备开发一款与Ub ...
- 深入理解微服务架构spring的各个知识点(面试必问知识点)
什么是spring spring是一个开源框架,spring为简化企业级开发而生,使用spring可以使简单的java bean 实现以前只有EJG才能实现的功能. Spring是一个轻量级的控制反转 ...
- Spring Cloud Alibaba微服务架构入门最容易理解篇
微服务架构介绍 Spring Cloud Alibaba推荐的微服务生态架构基于分层架构实现如下: 接入层:最外层为LVS+Keepalived,可承受几十万级高并发流量洪峰,然后再通过内层的ngin ...
- 微服务架构 技能图谱skill-map
# 微服务架构 技能图谱 ## 理论基础### 概念#### 多微合适 - 非代码函数 - 非重写时间 - 适合团队最重要 - 独立业务属性 - 全功能团队 #### 进程隔离 - 服务运行在独立的进 ...
- 【.net core】电商平台升级之微服务架构应用实战
一.前言 这篇文章本来是继续分享IdentityServer4 的相关文章,由于之前有博友问我关于微服务相关的问题,我就先跳过IdentityServer4的分享,进行微服务相关的技术学习和分享.微服 ...
- WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例
最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架 ...
- NET实现的DDD、CQRS与微服务架构
WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例 最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间 ...
- Spring Cloud搭建微服务架构----前言
前言 微服务并不神秘,只是在互联网技术发展过程中的一个产物,整个架构系统随着客户端的多样性,服务越来越多,devops的发展而产生的架构变种. 许多公司,通过采用微处理结构模式解决单体应用的问题,分解 ...
- 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)
背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...
随机推荐
- Nginx中ngx_http_auth_basic_moudel和ngx_http_stub_status_module模块
ngx_http_auth_basic_module实现基于⽤用户的访问控制,使⽤用basic机制进⾏行行⽤用户认证指令:5.1 auth_basicSyntax: auth_basic string ...
- python utf8
1. # coding:utf-8 作用是定义源代码的编码. 如果没有定义, 此源码中是不可以包含中文字符串的.PEP 0263 -- Defining Python Source Code Enco ...
- django.db.utils.OperationalError: (1050, "Table 'article_category' already exists")
(转自:https://blog.csdn.net/huanhuanq1209/article/details/77884014) 执行manage.py makemigrations 未提示错误信息 ...
- 将 Python 程序打包成 .exe 文件
1.简介 做了一个excel的风控模板,里面含有宏,我用python的第三方xlwings部署到linux后发现,linux环境并不支持xlwings. Python 程序都是脚本的方式,一般是在解析 ...
- 浏览器顶部设置margin-top时存在的bug
浏览器bug<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...
- [git]一个本地仓库,多个远程仓库
操作步骤如下: 1. 克隆某个远程仓库的代码到本地 git clone http://...... // 或者 git clone git@.... 2. 查看当前远程仓库地址 // 查看需要添加的远 ...
- cursor: hand和cursor:pointer的区别
cursor:hand 与 cursor:pointer 的效果是一样的,都像光标指向链接一样,光标变成手行. cursor:hand :IE完全支持.但是在firefox是不支持的,没有效果. cu ...
- GitHub 在国内无法访问
解决方法: 1.打开Dns检测|Dns查询 - 站长工具 2.在检测输入栏中输入http://github.com官网 3.把检测列表里的TTL值最小的IP输入到hosts里,并对应写上github官 ...
- 关于slf4j log4j log4j2的jar包配合使用的那些事
由于java日志框架众多(common-logging,log4j,slf4j,logback等),引入jar包的时候,就要为其添加对应的日志实现.. 不同的jar包,可能用了不同的日志框架,那引用了 ...
- fiddler在小米8下抓取https数据包.
问题,在小米8下一直报 证书链问题,爬了半天帖子发现可能是Android版本问题,有的说用Charles没问题. 没有测试,网上接着爬帖子... 稍稍说下导入证书的问题吧. 可以使用浏览器下载证书,也 ...