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代 ...
随机推荐
- spring-AOP动态代理,以及aspectJ的xml配置或注解配置方法,各个拦截器的使用顺序
package com.itheima.aspect; public class MyAspect { public void check_Permissions(){ System.out.prin ...
- [转载]Java进程物理内存远大于Xmx的问题分析
进程物理内存远大于Xmx的问题分析 问题描述 最近经常被问到一个问题,”为什么我们系统进程占用的物理内存(Res/Rss)会远远大于设置的Xmx值”,比如Xmx设置1.7G,但是top看到的Res的值 ...
- WordCount--实现字符,单词,代码统计
Github: https://github.com/whoNamedCody/WordCount PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计 ...
- Nginx中ngx_http_headers_module
*向由代理理服务器器响应给客户端的响应报⽂文添加⾃自定义⾸首部,或修改指定⾸首部的值**指令:14.1 add_header添加⾃自定义⾸首部Syntax: add_header name value ...
- python_tkinter弹出对话框1
tkinter提供了三个模块,可以创建弹出对话窗口:(使用必须单独导入模块) 1.messagebox 消息对话框 示例:askokcancel import tkinter # 导入消息对话框子模块 ...
- 属性 Attribute
一.创建属性 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Constructor, AllowMultiple = true, ...
- jaxb读有BOM的XML文件问题
一开始找了半天没找到什么原因,读文件就报错: Content is not allowed in prolog 后来发现是文件是UTF-8带BOM和不带BOM的问题 问题就好解决了,直接读带BOM文件 ...
- 可嵌入的脚本引擎 Jx9
Jx9是一个可嵌入的脚本引擎,基于JSON实现了图灵完备(Turing complete)的编程语言. Jx9 是那些需要流行和高效率脚本支持应用程序(比如:游戏.数据库系统,文本编辑器,网络应用程序 ...
- [Python自学] day-22 (1) (Session、CSRF、中间件)
一.响应函数补充 三种返回响应的方式: return HttpResponse() return render() return redirect() HttpResponse: 除了能够返回字符串, ...
- com.atomikos.datasource.ResourceException: XA resource 'masterDB': resume for XID异常
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014172271/article/det ...