参考

  微软官方文档  service fabric

  百家号   大话微服务架构之微服务框架微软ServiceFabric正式开源

一、概述

  1.概念

    Azure Service Fabric 是一款分布式系统平台,可方便用户轻松打包、部署和管理可缩放的可靠微服务和容器。 Service Fabric 还解决了开发和管理云本机应用程序面临的重大难题。 开发人员和管理员不需解决复杂的基础结构问题,只需专注于实现苛刻的任务关键型工作负荷,即那些可缩放、可靠且易于管理的工作负荷。 Service Fabric 代表了下一代平台,用于生成和管理在容器中运行的企业级单层云规模应用程序。

  2.微服务

    微服务是指用小型服务集合来构建服务端应用的方法,每个服务在独立的进程中运行,服务间通过特定协议(http,AMQP)通信,每个服务能够独立开发、部署,拥有自己的领域数据模型和领域逻辑,可以有不同的数据存储技术甚至是不同的编程语言。

    微服务的目的在:解耦。解耦是永恒的主题,依赖注入是为了解耦,应用分层是为了解耦,这些可以看做是纵向解耦,而微服务是把应用横向解耦,服务间解耦。

    下图是传统一体式应用开发与微服务开发的对比:

      

      

      ①单一式应用包含域特定的功能,通常按照功能层来划分,例如传统三层。

      ②单一式应用可通过复制到多个服务器/虚拟机/容器上进行扩展。

      ③微服务应用程序将单个功能分隔成单个较小的服务。

      ④微服务方法可通过独立部署每个服务而扩展,跨服务器/虚拟机/容器创建这些服务的实例。

    service fabric 从三方面来帮助我们使用微服务的方式来构建应用:

      ①提供系统服务的平台,用于部署、升级、检测和重启失败的服务、发现服务、路由消息、管理状态和监视运行状况

      ②能够部署在容器中运行或作为进程运行的应用程序。

      ③有助于以微服务形式生成应用程序的生产编程 API:ASP.NET Core、Reliable Actors 和 Reliable Services。 可以选择使用任意代码来生成微服务。 但使用这些 API 不仅可让作业变得更简单,也能更深入地与平台集成。 例如,可以获取运行状况和诊断信息,或利用内置的高可用性

      下图是service fabric 与spring cloud 的对比:

          

二、应用场景

  1.高可用服务:Service Fabric 服务通过创建多个辅助服务副本提供快速的故障转移。 节点、进程或单独的服务因硬件或其他故障而不可用时,其中一个辅助副本会提升为主副本,将对服务的损失降到最低。

  2.可缩放服务:可对单独的服务进行分区,以允许在群集范围内扩大状态。 此外,还可以动态创建并删除单独的服务。 服务可以快速简单地从几个节点上的几个实例扩大到多个节点上的数千个实例,并再次减少,具体取决于资源需求。 可以使用 Service Fabric 来生成这些服务并管理其整个生命周期。

  3.基于回话的交互式应用:在应用程序(例如在线游戏或即时消息)需要低延迟读取和写入时,Service Fabric 非常有用。 Service Fabric 使你能够生成这些交互式的有状态应用程序,而无需创建一个无状态应用所需的单独存储或缓存。 (这会增加延迟时间并可能产生一致性问题)。

  4.数据分析和工作流:Service Fabric 的快速读取和写入使必须可靠处理事件或数据流的应用程序成为可能。Service Fabric 还可让应用程序描述处理管道,其中的结果必须能够可靠地传递到下一个处理阶段而不会丢失。这包括交易和财务系统,其中的数据一致性和计算保证至关重要。

三、开发准备

  1.Windows下开发环境准备

    如果需要在windows上开发并运行service fabric 应用程序,需要安装Service Fabric 运行时、SDK 和工具

    具体安装步骤可参照  Windows上安装service fabric

    以下是windows 10 下,安装了vs2017的开发人员的环境准备

    ①重新运行vs2017安装软件,选择修改,选择azure开发

        

        

    ②安装 Microsoft Azure Service Fabric SDK

    ③启用 PowerShell 脚本执行

      Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
      2.Linux下开发环境准备
    参照步骤:在 Linux 上准备开发环境

    

微服务之Service Fabric 系列 (一):概览、环境安装的更多相关文章

  1. 【Azure 微服务】Service Fabric中微服务在升级时,遇见Warning - System.Collections.Generic.KeyNotFoundException 服务无法正常运行

    问题描述 使用.Net Framework 4.5.2为架构的Service Fabric微服务应用,在升级后发布到Azure Fabric中,服务无法运行.通过Service Fabric Expl ...

  2. 【Azure 微服务】Service Fabric, 使用ARM Template方式来更新SF集群的证书(Renew SF Certificate)

    问题描述 因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)一文中,描述了因为证书过期而导致了SF集群不可用,并且通过命令dd-AzServiceFabricCluster ...

  3. 浅谈服务治理、微服务与Service Mesh(三) Service Mesh与Serverless

    作为本系列文章的第三篇(前两篇<浅谈服务治理.微服务与Service Mesh(一)Dubbo的前世今生>,<浅谈服务治理.微服务与Service Mesh(二) Spring Cl ...

  4. .NET Core 微服务学习与实践系列文章目录索引(2019版)

    参考网址: https://archy.blog.csdn.net/article/details/103659692 2018年,我开始学习和实践.NET Core,并开始了微服务的学习,以及通过各 ...

  5. Spring Boot微服务电商项目开发实战 --- 多环境部署配置、端口号统一配置及Dubbo提供者消费者实现

    昨天已经搭建好了SpringBoot基于Maven的基础父子级项目,今天开始进入项目分模块及分布式实现.首先我们基于昨天的项目,在父级工程下建lyn-sys,lyn-customer,lyn-good ...

  6. 通过Dapr实现一个简单的基于.net的微服务电商系统(十四)——开发环境容器调试小技巧

    之前有很多同学提到如何做容器调试,特别是k8s环境下的容器调试,今天就讲讲我是如何调试的.大家都知道在vs自带的创建项目模板里勾选docker即可通过F5启动docker容器调试.但是对于启动在k8s ...

  7. 期待微软平台即服务技术Service Fabric 开源

    微软的Azure Service Fabric的官方博客在3.24日发布了一篇博客 Service Fabric .NET SDK goes open source ,介绍了社区呼声最高的Servic ...

  8. 微服务&spring cloud架构系列汇总

    为了方便查找,把微服务&微服务架构之spring cloud架构系列文章按时间正序整理了一下,记录如下:   1. 微服务架构之spring cloud 介绍 2. 微服务架构之spring ...

  9. 小马哥-Java 微服务实践 - Spring Boot 系列-01Java 微服务实践 - Spring Boot 系列(一)初体验

    课程github地址 https://github.com/mercyblitz/segmentfault-lessons 传统的web应用架构.微服务是一种架构.不限定什么语言 单体应用和微服务的对 ...

随机推荐

  1. 编辑框等控件边框美化(继承CEdit,然后覆盖OnMouseLeave, OnSetFocus, OnPaint函数即可。原来的CEdit虽然代码不可见,但它也是有句柄的,照样随便画)

    源码说明:美化能获取焦点控件的边框颜色,获取焦点后颜色不同(类似彗星小助手.QQ等软件),支持自定义颜色,支持单独设置各个控件颜色.实现方法:子类化,在WM_NCPAINT.WM_PAINT等消息自己 ...

  2. LUOGU 1137 - 拓扑排序

    传送门 题目分析 拓扑排序:将图从度为0的点不断的剥掉外层的点,即可得到拓扑序,再按照拓扑序进行一遍简单的dp. code #include<bits/stdc++.h> using na ...

  3. 项目中碰到的ExceptionInInitializerError异常

    背景 之前在集成第三方即时通信系统-融云的时候,我直接clone它的服务端源码,然后导入我的项目,我在测试它连接融云服务器案例时,发现一直不成功,始终报一个 ExceptionInInitialize ...

  4. 不安装 oracle的客户,就可以使用pl/sql访问远程oracle 数据库的方法

    免安装Oracle客户端使用PL/SQL连接Oracle      大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Oracl ...

  5. 同一性(identical)

    f(x)=x,表明 f(⋅) 为同一函数. A 与 B 具有 360° 的区别 A 向左转,再向右转 ⇒ A A 向左转,向左转,向后转 ⇒ A

  6. ASP.Net Core 2.2使用SQLite数据库unable to open database file

    原文:ASP.Net Core 2.2使用SQLite数据库unable to open database file 最近把项目更新到了ASP.Net Core 2.2,发布之后发现在IIS下使用SQ ...

  7. jQuery在线选座订座(高铁版)

    除了电影院在线选座,我们还会接触到飞机机舱选座,当然也有汽车票火车票选座的.假如有一天买火车票也提供在线选座,那么今天我来给大家介绍下如何使用jQuery选座插件完成高铁列车座位布置.选座.不同等级座 ...

  8. CUDA多个流的使用

    CUDA中使用多个流并行执行数据复制和核函数运算可以进一步提高计算性能.以下程序使用2个流执行运算: #include "cuda_runtime.h" #include < ...

  9. UVA 548(二进制重建和遍历)

    J - Tree Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Ap ...

  10. 在.net core自带DI中服务生命周期 Transient,Scoped,Singleton

    只要是透过WebHost产生实例的类型,都可以在构造方法注入.所以Controller.View.Filter.Middleware或自定义的Service等都可以被注入. Transient是瞬时的 ...