(1)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 什么是微服务架构,.netCore微服务选型
开发工具:VS2017 .Net Core 2.1
什么是微服务?
单体结构:
缺点:
1)只能采用同一种技术,很难用不同的语言或者语言不同版本开发不同模块;
2)系统耦合性强,一旦其中一个模块有问题,整个系统就瘫痪了;一旦升级其中一个模块,整个系统就停机了;
3)要上线必须一起上线,互相等待,无法快速响应需求;
4)集群只能是复制整个系统,即使只是其中一个模块压力大;
微服务:
不同模块放到不同的进程/服务器上,模块之间通过网络通讯进行协作。
适用于:模块比较多,访问量比较大的互联网类系统,并不是所有项目都适合微服务
优点:
1)可以用不同的语言或者语言不同版本开发不同模块;
2)系统耦合性弱,其中一个模块有问题,可以通过“降级熔断”等手段来保证系统不血崩;
3)可以独立上线,能够迅速响应需求;
4)可以对不同模块用不同的集群策略,哪里慢集群哪里。
缺点:
1)开发难度大,系统结构更复杂;
2)运行效率低;(网络通讯没有进程通讯快)
微服务架构要处理哪些问题?
服务间通讯;服务治理与服务发现;网关和安全认证;限流与容错;监视等
第一代微服务:Dubbo(Java)、Orleans(.Net)等 和语言绑定紧密;
第二代微服务:Spring Cloud等 适合混合开发
第二代微服务:Service Mesh(Service Fabric(微软内部使用的、开源的)、lstio、Conduit等)
目前:第三方微服务还在快速发展中,更新迭代比较快(还不完善)
.NetCore 微服务选型
为什么是.net Core?虽然.Net Framework也可以实现微服务,但是.Net Core是为云而生,用来实现微服务更方便,而且.Net Core可以跨平台。(.Net Framewordk不会再有.Net5.x 下一代就是.Net Core)
第二代微服务架构:Consul+Ocelot+.Net Core+Polly+.....;
腾讯.net大队长张善友把腾讯内部的架构实战整理出一个开源项目NanoFabric(Github上可以搜到),NanoFabric不是一个独立的技术,它只是帮我们搭建好了,配置好了的一个脚手架,只是一个胶水项目,文档不全,仅供我们参考。
在SpringCloud中:EurekaServer做服务治理和服务发现、Hystrix做熔断降级、Zuul做网关;
在NanoFabric中:Consul做服务治理和服务发现、Polly做熔断降级、Ocelot做网关;
在微服务中,服务之间的通讯有俩种主要形式:
1)Restful,也就是传输Json格式数据。.net中就是对应的webapi技术 效率比较低,数据冗余,短连接
2)二进制RPC:二进制传输协议,比restful用的http通讯效率更高,但是耦合性更强。技术有Thrift、gRPC等
此文档是根据杨中科老师的.net Core微服务视频和课件做的记录
小哥哥 小姐姐们 如果本篇文章对你们有帮助的话 就点点右下角的推荐吧 0.0
(1)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 什么是微服务架构,.netCore微服务选型的更多相关文章
- 酷学习笔记——ASP.NET Core 简介
ASP.NET Core 简介 其实就是说酷好,不好好学,不学好,没饭吃. 新词汇:IoT,Internet of Things,网联网,微软物联网英文网站.微软物联网中文网站
- Docker学习笔记之--.Net Core应用容器通过网桥连接Redis容器(环境:centos7)
上节演示通过应用容器连接sql server容器,连接:Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) 本节演示安装 redis容器,通过网桥连接 先决 ...
- ASP.NET Core在Azure Kubernetes Service中的部署和管理
目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...
- 如何在ASP.NET Core中使用Azure Service Bus Queue
原文:USING AZURE SERVICE BUS QUEUES WITH ASP.NET CORE SERVICES 作者:damienbod 译文:如何在ASP.NET Core中使用Azure ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库
采用异步来实现重新连接服务器或者重新启动服务 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 ...
- 使用Code First建模自引用关系笔记 asp.net core上使用redis探索(1) asp.net mvc控制器激活全分析 语言入门必学的基础知识你还记得么? 反射
使用Code First建模自引用关系笔记 原文链接 一.Has方法: A.HasRequired(a => a.B); HasOptional:前者包含后者一个实例或者为null HasR ...
- ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理
ServiceProvider最终提供的服务实例都是根据对应的ServiceDescriptor创建的,对于一个具体的ServiceDescriptor对象来说,如果它的ImplementationI ...
- .Net Core 学习 (1) - ASP.NET Core 总览
什么是ASP.NET 1.0 开源 - GitHub 跨平台 - 支持Windows, Mac, Linux 从底层进行了优化 - 使用最小开销的模块化组件 - 给与了开发人员很大的灵活性 为什么要使 ...
- 学习ABP ASP.NET Core with Angular 环境问题
1. 前言 最近学习ABP架构 搭建ASP.NET Core with Angular遇到了些问题,折腾了一个礼拜最终在今天解决了,想想这个过程的痛苦就想利用博客记录下来.其实一直想写博客,但因为 时 ...
随机推荐
- git 入门教程之紧急修复
和往常一样,每个人团队开发者都在自己的本地分支上进行日常工作,相互独立又相互联系,一直以来相安无事,可是某天下午,上级领导突然急冲冲的打电话告诉你线上出bug了,需要你紧急修复,下班之前必须解决! 我 ...
- mysql之代码执行结构
本文内容: 什么是代码执行结构 顺序结构 分支结构 循环结构 首发日期:2018-04-18 什么是代码执行结构: 这里所说的代码执行结构就是多条sql语句的执行顺序. 代码执行结构主要用于触发器.存 ...
- Scala隐式参数
Scala方法可以具有隐式参数列表,由参数列表开头的implicit关键字标记.如果参数列表中的参数没有像往常一样传递,Scala将查看它是否可以获得正确类型的隐式值,如果可以,将自动传递. Scal ...
- Linux中Root密码破解
1.开机后在选择菜单时按下e进入编辑模式 2.选择linux16这一行,在行末尾添加 rd.break 3.然后Ctrl+x执行.然后进入shell界面: 4.设置密码: 1.重新挂载根目录为读写模式 ...
- Bean named '...' is expected to be of type [...] but was actually of type [com.sun.proxy.$Proxy7解决方法
报错 三月 07, 2017 8:09:52 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepare ...
- JSON Web Tokens简单学习
JWT用于加密生成安全认证的令牌,存储登录验证成功的部分用户信息 一.安装JWT 二.加密 解密 代码 /*存储在加密字符串的信息*/ var payload = new Dictionary< ...
- Tell Me About Yourself - Best Answers and Examples
http://a4academics.com/interview-questions/73-human-resource/723-tell-me-about-yourself?showall=& ...
- innerHTML的使用
inerHTML是html标签的属性,成对出现的标签大多数都有这个属性,用来设置或获取位于对象起始和结束标签 内的HTML.(获取HTML当前标签的起始和结束里面的内容)不包括标签本身. ...
- Linux 小知识翻译 - 「日志」(log)
这次聊聊「日志」. 「日志」主要指系统或者软件留下的「记录」.出自表示「航海日志」的「logbook」. 经常听说「出现问题的时候,或者程序没有安装自己预期的来运行的时候,请看看日志!」. 确实,记录 ...
- 使用Razor Generator构建模块化ASP.NET MVC应用程序
在构建Web应用程序的时候,我们很难做到模块化的开发,这是因为Web应用程序不仅仅包含编译的C#代码,还包含了js.css和aspx等资源. 在ASP.NET MVC中,我们发布应用程序的时候,还会包 ...