版主:  hobin
昵称:sharon
等级:
Lv.155 至尊
经验
2.44万
金币
25.10万
积分
7301
 发表于 2024-05-01 09:44  查看 3 | 倒序浏览
.Net Core微服务框架及概述和基本原理详解
一、微服务架构起源
2005年彼得·罗杰斯在云端运算博览会提出Micro Web 服务,即将程序设计成细颗粒的服务以作为下一阶段的软件架构,核心思想让服务安装类似命令行管道的存取方式使用,使用简单的URI来开放接口,任何服务都能被开放

2014年,马丁·福勒和詹姆斯·刘易斯共同提出了微服务的概念,定义微服务架构以开发一组小型服务的方式来开发一个独立的应用系统,每个服务以一个独立的进程运行,服务围绕业务构建,可以通过全自动部署机制,可以采用不同的编程语言和数据库

二、微服务的优缺点

一、单体架构:应用程序将所有的功能打包成一个exe文件或dll文件,并部署到单个服务器中

单体架构优点:1、开发简单,集中式管理;2、不会重复开发;功能都在本地,没有分布式管理和调用的消耗

单体架构缺点:1、效率低;2、维护难;3、不灵活;4、稳定性差;5、扩展性不高

三、微服务架构的设计原则

基于微服务架构的程序设计过程,遵循一下原则:

1、垂直划分优先原则;2、持续演进原则;3、服务自治原则、接口隔离原则;4、自动化驱动原则

四、异步编程

异步编程编程模式和同步编程模式区别:同步编程程序中任务在程序继续执行之前需要等待同步任务执行完毕返回结果后在执行;异步模式程序在被执行的任务完成的同时执行其他任务

异步编程特点:异步编程模型(APM)基于事件的异步模式(EAP)和基于任务的异步模式(TAP)

TAP特点:1、等待I/O请求返回的同时可通过生成处理更多请求的线程,处理更多的服务器请求;  2、让UI响应更快;3、许多较新的 .NET APLS都是异步的

使用TAP实现异步编程:  基于System.Threading.Tasks.Task命名空间中的System.Threading.Tasks.Task<TResult>和System.Treading.Tasks类型,C#引入了await和async关键字用于异步方法,在方法执行中挂起起点,直到等待任务完成,当编程看见await关键字时,线程会挂起,等待运行结束,await关键字只能用在async关键字方法中,async关键字定义的方法通常包含一个或多个await关键字,使用await运算符的任务通常 是实现基于任务的异步模式的方法调用返回值,返回值包括Task、Task<TResult>、ValueTask和ValueTask<Tresult>对象方法

调用任务方法:通过await关键字调用任务方法,async修饰符只能返回Task和Void的方法,不能用于程序的入口,异步调用的方法前需要使用async关键字修饰符

Main()方法中最后一行代码必须是Console.ReadKey()方法

五、.Net Core平台具有哪些特点

1、跨平台:可以在Windows、macOS和Linus操作系统上运行

2、跨体系结构保持一致:在多个体系结构包括(x64、x86和ARM)

3、命令行工具:包括可用于本地开发和持续集成方案中的易于使用的命令行工具

4、部署灵活:可包含在应用或已安装的并行用户或计算机范围中,可搭配Docker容器使用

5、兼容性:.Net Core通过.Net Standard与.Net Framework 和Xamarin Mono兼容

6、开放源代码:.Net Core平台是开放源代码,使用MIT和Apache2许可证授权

7、由Microsoft支持

安装.Net Core平台有两种方式:独立安装和Visual Studio Installer安装

-------------------------------------------------------------------------------------------------------------------------------

一、微服务框架

微服务架构是一种架构概念,主要作用将功能分解到离散的各个服务当中,从而降低系统耦合性,并提供更加灵活的服务支持

微服务架构概述: 

1、Spring Cloud: 简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器和数据监控等,都可以用Spring Boot的开发风格一键启动和部署,通过Spring Boot再进行封装屏蔽掉了复杂的配置和实现原理,最终给开发者留了一套简单易懂、易部署和易维护的分布式系统开发工具包

2、Kubernetes:  简称K8s用8代表8个字符,它是一个开源的,用于管理云平台中多个主机上的容器化应用,目标让部署容器化的应用简单并且高校开发,还提供了应用部署、规划、更新、维护的一种机制

3、Service Fabric:  是微软公司开发的一套支撑高可用、高伸缩的云服务框架,核心是一个分布式系统平台,用于构建可扩展的应用

.Net Core微服务构件: 1、服务治理;2、API网关 Ocelot;3、作业调度 Quartz.NET、Hangfire;4、分布式日志 Exceptionless;5、ESB;6、APM

二、Consul服务治理

Consul是一个服务管理软件,支持多数据中心下的分布式高可用的服务发现和配置共享,采用Raft算法保证数据的一致性,从而保证服务的高可用,采用GOSSIP协议进行成员管理和消息广博,并支持ACL访问控制

Consul关键功能:服务发现、健康检查、KV Store、多数据中心

Consul语法: consul [version] [help] <command> [<args>]

agent 运行Consul代理
event 触发一个新的事件
info 为操作员提供调试信息
join 告诉代理加入集群
monitor Consul日志
version 打印Consul版本
watch 监控consul变化
三、Consul集群搭建

为了避免因为服务器故障原因带来的数据丢失,consul建议一个数据中心至少运行三个或五个服务端节点,奇数个数的服务端节点是为了避免服务端在选举过程中陷入僵局

查看集群中的成员:consul members

将节点纳入集群:consul join 入节点IP

查看节点raft信息:consul operator raft list-peers

四、watch机制

查看指定数据信息的一种方式,如查看列表、键值对、健康检查,Watch可以作为Agent配置的一部分,在Agent初始化时就运行,并且支持重新载入配置,watch type必须指定,当集群出现异常时,watch将通过该程序向用户发送信息
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/duijiudangge19/article/details/133212487
快速回帖