.NET CORE微服务实践

https://www.cnblogs.com/zengqinglei/p/9570343.html

.NET CORE

实践部署架构图
实践源码:https://github.com/zengqinglei/microservice-deploy

为了更加接近生产环境的部署方式,我们使用vmware创建如下几台主机:

centos-02:192.168.0.102 应用集群节点-2
centos-03:192.168.0.103 应用集群节点-3
ubuntu-04:192.168.0.104 应用集群节点-4
ubuntu-05:192.168.0.105 数据库节点-5
虚拟IP:192.168.0.110

main-1

mic-service-arc

系列导航目录
由于文章中涉及内容较多,所以其中如设计docker构建、配置等复杂教程都会引导大家去github查看详情,大家注意一下引导链接地址,文章中尽可能通过简要的原理及对于微服务架构的作用配合图讲解,让文章更加通俗易懂。

  1. 微服务系列介绍
  2. 搭建服务器(cenos + ubuntu)环境
  3. 搭建docker,docker-compose环境
  4. 负载集群及高可用(keepalived + nginx)
  5. 搭建consul集群服务发现、注册、健康检查环境
  6. 搭建mysql,sqlserver数据库环境
  7. 搭建携程Apollo集群统一配置中心
  8. 基于Skywalking的服务跟踪及性能监控
  9. 搭建统一服务日志中心
  10. .NET CORE 微服务示例
  11. 集群完整版
    推荐一下我的 Asp.Net Core 框架
    名称:Creekdream.AspNetCore
    开源地址:http://github.com/zengqinglei/Creekdream.AspNetCore

简单介绍
我自己的框架参考了一些Abp框架,根据近一两年针对微服务开发设计,总结开发出来的。
首先,说明一下Abp框架确实很优秀,但随着微服务的发展,框架整体相对较为臃肿,模块化设计不够彻底,核心类库都依赖了各种接口的实现,我们团队在使用的过程中可能由于不熟悉会导致一些莫名的问题,再加上微服务盛行,使得更多的模块变得没有必要。

微软的 .NET CORE 已经做到很优秀,提供Service注入统一入口,中间件、日志、依赖注入的加入等,使得模块化以及开发模式的规约都使得开发变得更加规范可控,框架的设计原则尽可能遵从 .NET CORE 的设计理念。

简要特点
分离模块化,独立模块都有自己的核心库
依赖注入,抽象使其能替换依赖注入框架
DDD领域分层
提供快捷生成项目模板
提供EntityframeworkCore以及Dapper两种ORM
工作单元支持
核心模块仅依赖必要的接口
框架架构图
app-arc

总结
本次微服务系列从基本概念到一步步的基础设施的搭建最后晚上的一套服务架构体系,用完全docker化的方式给大家呈现,方便根据实际的生产或者测试环境进行调整。
微服务之路是漫长的,我们仍还需要很多工作要做,在工作中,根据业务需求划分边界,微服务API的定义,服务内部的模块划分都需要我们花更多的时间去推敲。

.NET CORE微服务实践的更多相关文章

  1. [Abp vNext微服务实践] - 文章目录

    简介 ABP vNext是volosoft的新一代框架,ABP(vNext)完全使用.NET CORE和DDD(领域驱动)打造,目前GitHub已有6K+次提交,发布版本超过40次,Nuget包下载量 ...

  2. ASP.NET Core OceLot 微服务实践

    1.OceLot中间件介绍 在传统的BS应用中,随着业务需求的快速发展变化,需求不断增长,迫切需要一种更加快速高效的软件交付方式.微服务可以弥补单体应用不足,是一种更加快速高效软件架构风格.单体应用被 ...

  3. .NET Core微服务架构学习与实践系列文章索引目录

    一.为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有 ...

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

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

  5. .NET Core微服务系列基础文章索引(目录导航Final版)

    一.为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有 ...

  6. .NET Core微服务之基于Consul实现服务治理

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Consul基础介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发 ...

  7. .NET Core微服务之基于Consul实现服务治理(续)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 上一篇发布之后,很多人点赞和评论,不胜惶恐,这一篇把上一篇没有弄到的东西补一下,也算是给各位前来询问的朋友的一些回复吧. 一.Consul ...

  8. .NET Core微服务之服务间的调用方式(REST and RPC)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.REST or RPC ? 1.1 REST & RPC 微服务之间的接口调用通常包含两个部分,序列化和通信协议.常见的序列化 ...

  9. .NET Core微服务之基于Polly+AspectCore实现熔断与降级机制

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.熔断.降级与AOP 1.1 啥是熔断? 在广义的解释中,熔断主要是指为控制股票.期货或其他金融衍生产品的交易风险,为其单日价格波动幅度 ...

随机推荐

  1. javascript 快速排序方法

    "快速排序"的思想很简单,整个排序过程只需要三步: (1)在数据集之中,选择一个元素作为"基准"(pivot). (2)所有小于"基准"的元 ...

  2. LabView和DLL中的参数问题

    注意:在LabView中调用DLL函数时,一定要指定对应的参数类型,而不是选择“Adapt to Type”,否则会出错,不知道为什么书上是要选择“Adapt to Type”. 以下做个参考: 转自 ...

  3. SQL学习笔记四(补充-1)之MySQL单表查询

    阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录 ...

  4. PhpStorm提高效率的使用方法及设置(快捷键)

    原文链接:https://my.oschina.net/chunto/blog/262954 快捷键: CTRL + D  复制当前行到下一行 或 复制选中内容到选中内容之后 CTRL + Y  删除 ...

  5. Tensorflow代码解析(一)

    http://www.leiphone.com/news/201702/n0uj58iHaNpW9RJG.html?utm_source=tuicool&utm_medium=referral ...

  6. 线程访问ui,使用委托方式

    转:https://www.cnblogs.com/muyoucai/p/6257213.html Control类提供了一个Invoke方法来给子线程访问主线程的控件,它的原型是酱紫的: objec ...

  7. SSL/TLS协议概览

    SSL/TLS协议是什么 计算机网络的OSI七层模型和TCP/IP四层模型想必大家都知道.其中SSL/TLS是一种介与于传输层(比如TCP/IP)和应用层(比如HTTP)的协议.它通过"握手 ...

  8. c#解析Lrc歌词文件

    看到很多人解析歌词文件时写了一大片的字符处理代码,而且看得不是很明白,所以自己研究了一下, 首先来了解下Lrc文件 时间格式: 1.标准格式: [分钟:秒.毫秒] 歌词 注释:括号.冒号.点号全都要求 ...

  9. 使用dos2unix批量转换文件

    使用dos2unix批量转换文件 dos2unix是Linux下的一个用户转换格式的程序,由于windows上文件的结束符和linux上的不同,那么在windows上编写的文件或者是脚本在Linux上 ...

  10. JVM史上最佳入门指南

    提到Java虚拟机(JVM),可能大部分人的第一印象是“难”,但当让我们真正走入“JVM世界”的时候,会发现其实问题并不像我们想象中的那么复杂.唯一真正令我们恐惧的,其实是恐惧本身.而作为整个JVM系 ...