.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. docker——安全防护与配置

    Docker是基于Linux操作系统实现的应用虚拟化.运行在容器内的进程,跟运行在本地系统的进程本质上并无区别,配置不合适的安全策略将可能给本地系统带来安全风险,因此,Docker的安全性在生产环境中 ...

  2. 系统管理命令之who am i

    who am i 显示的是实际用户的用户名,即用户登陆的时候的用户ID.此命令相当于who -m. 用Linux的术语来解释就是:(实际用户=uid,即user id.有效用户=euid,即effec ...

  3. ruby on rails validates

    validates :conclusion, :presence => true, :inclusion => { :in => [0,1] } validates :email, ...

  4. Terminal(终端) 在 OS X下如何快速调用

    Terminal(终端) 在 OS X下如何快速调用 转载请注明原作者:文章如果对您有所启发或帮助,不介意您请我喝一杯咖啡 ​ Terminal作为人机交流中极其重要的一部分,无论是在Windows. ...

  5. 网关服务Spring Cloud Gateway(二)

    上一篇文章服务网关 Spring Cloud GateWay 初级篇,介绍了 Spring Cloud Gateway 的相关术语.技术原理,以及如何快速使用 Spring Cloud Gateway ...

  6. bzoj1625 / P2871 [USACO07DEC]手链Charm Bracelet

    P2871 [USACO07DEC]手链Charm Bracelet 裸01背包. 看到自己1年半前写的30分code.......菜的真实(捂脸) #include<iostream> ...

  7. How to install tensorflow from source on ubuntu 18.04 64bit

    1,install dependencies sudo apt-get install openjdk-8-jdk git python-dev python3-dev python-numpy py ...

  8. CodeForces 450B Jzzhu and Sequences(矩阵快速幂)题解

    思路: 之前那篇完全没想清楚,给删了,下午一上班突然想明白了. 讲一下这道题的大概思路,应该就明白矩阵快速幂是怎么回事了. 我们首先可以推导出 学过矩阵的都应该看得懂,我们把它简写成T*A(n-1)= ...

  9. Opencv3_Learning

    git地址 采用jupyter notebook进行编程,语言为python. 感谢博主--戳 这类东西真的是不是天天打,就是打过就忘.. 有志者事竟成,破釜沉舟,百二秦关终属楚. 苦心人天不负,卧薪 ...

  10. [BZOJ1877][SDOI2009]SuperGCD

    题目大意 求两个个高精度数的gcd 题目解析 在学习gcd的时候,书上就记载了"更相减损术"这一方法 基于这种方法,我们进行优化,使得我们能快速求出两个大数的gcd 对于 \(a, ...