分析目前项目结构 眼前出现这么一坨坨的文件夹,相信很多人已经看不下去了.是的,首先就是要把它给做掉. 按照这个项目文件夹的命名意图,大概可以划分如下: 1.Business:业务代码 2.Data:数据访问 3.Helpers:辅助类(通用类库之类的) 4.Models:各种模型(包括视图模型) 5.theme:皮肤,还有一些content.scripts之类的应该是要删除或整理到theme中. 6.Controller.Views.DB:这些就先不动他了. 按文件夹名的意图重新整理项目结构 首…
做这个开源项目的意义是什么?(口水自问自答,不喜可略过) 从功能上来说,请参考 预告篇,因自知当时预告片没有任何含金量,所以并没有主动推送到首页,而是私下的给一些人发的. 从个人角度上来说,我希望.net的环境会越来越好,就我自己的成长曲线是从mxdn开始自学.cxdn尝试解答问题.博客园读别人博客再到自己写博客.最后到工作中经常使用到的stackxxxxflow.gxxgle.这其中我当然是走了很多弯路,踩过无数的坑,也埋了无数的坑.现在自己有了一点小小的能力,想尽自己所能,通过一个项目整理出…
G.系列导航 [G]开源的分布式部署解决方案 - 预告篇 [G]开源的分布式部署解决方案(一) - 开篇 [G]开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的 [G]开源的分布式部署解决方案(三) - 一期规划定稿与初步剖析 抱歉 首先我先说声抱歉,因为上一篇结尾预告第三篇本该是“部署项目管理”,那为什么变成本篇呢? 请容我解释一下,在预告篇到现在为止,经常会有人问我这个项目到底是干什么的.或许之前写的比较粗糙.那我相信目前定稿后的功能概览图应该会给大家一个比较清晰的认识.…
G.系列导航 [G]开源的分布式部署解决方案 - 导航 序言 因各种原因,决定先写使用文档.也证明下项目没有太监.至于安装过程复杂,是因为还没有做一键安装,这个现阶段确实没精力. 项目进度 (点击图片看大图) 必备工具 IDE:VS2015+ 运行环境: .Net Framework 4.6.1(已测可降4.5,其余没测) 宿主:IIS 下载源码 源码地址 http://git.oschina.net/doddgu/G/ ps:强烈希望顺手点下 star.watch.fork VS克隆源码 编译…
G.系列导航 [G]开源的分布式部署解决方案 - 导航 已知问题 导航没有联动 因为权限只是做了基础的登录校验,考虑到后面导航要跟权限关联上暂时是写死的. 只有部分界面使用了Vue.js 因为刚开始没有太多js操作,想着用Razor更顺手更快,到后面做部署界面对前端操作较多,不只是各网页元素的信息同步还涉及到一些公用前端功能点抽取就选择了Vue.JS. 左边导航的Search无效 也是希望与权限关联上,支持搜索各个级别的页面,快速定位,暂时未实现. 设置部署流程的勾无效 目前不管是否勾选,会根据…
G.系列导航 [G]开源的分布式部署解决方案 - 导航 微软官方部署方式 右键项目->发布 这个大家应该再熟悉不过,在部署前有个预览界面可以看本次更新到底更新哪些文件. 既然它可以预览部署结果,那其实它部署也不会完全覆盖,而是采取部分覆盖的方式,并提供了增.删.改的实际数量. 这都要依赖一个叫做 Web Deploy 的项目. 传送门 当然,web deploy功能绝不仅仅如此,包括打包.备份.还原.更新数据库等. 在此不多做普及,提到了它的优点,自然要支持它.所以本项目支持原始+Web Dep…
G.系列导航 [G]开源的分布式部署解决方案 - 导航 设置项目部署流程 项目类型:选择Console,这个跟功能无关,只是做项目分类,后面会有后续功能 宿主:选择Console 部署方式:选择原始,目前部署Console只支持原始部署方式 宿主属性:格式以宿主属性前面的问号给的为准 控制负载均衡 保证你已经设置项目属性里面的负载均衡值,以及服务器的标识 增加了部署环境标签,可以查看与当前项目环境相关的服务器,然后对每台服务器进行设置权重. 跳转到持续集成控制台 当持续集成Build失败时,往往…
为什么想到要做分布式部署解决方案? 当项目越做越大以后,你会发现部署变成一件极其头疼的事情.当然头疼的绝不仅仅在部署一个环节,比如新服务器环境搭建当中就许多坑要踩.各种重复性的工作,包括但不仅限于增加IIS Application.修改防火墙.加入到域等. 不要慌,我不会做一个大而全的解决方案,一方面本人实在没那么多精力满足所有人的需求,另一方面很多定制化的功能我也不可能加入进来. 所以本开源项目的第一个版本的目的就相对简单而明确. PS:将来会在此基础上扩展更多实用的功能,先卖个关子,都是跟分…
环境:2台 ubuntu 16.04 角色列表 角色 IP地址 宿主端口 docker端口  peer0.org1.example.com  47.93.249.250  7051  7051  peer1.org1.example.com  47.93.249.250  7051  8051  peer0.org2.example.com  47.93.249.250  7051  9051  peer1.org2.example.com  47.93.249.250  7051  10051…
数据一致性是构建业务系统需要考虑的重要问题 , 以往我们是依靠数据库来保证数据的一致性.但是在微服务架构以及分布式环境下实现数据一致性是一个很有挑战的的问题.最近在研究分布式事物,分布式的解决方案有很多解决方案,也让我在研究的同时也引发了很多思考.今天我想讲的是分布式事物解决方案是和saga有关. 原文地址:微服务场景下的数据一致性解决方案 PPT地址:Saga分布式事务解决方案与实践 incubator-servicecomb-saga地址:incubator-servicecomb-saga…
概述 定义 Spring Cloud Alibaba Seata 官网地址 https://seata.io/zh-cn/ 最新版本1.5.2 Spring Cloud Alibaba Seata 文档地址 https://seata.io/zh-cn/docs/overview/what-is-seata.html Spring Cloud Alibaba Seata GitHub源码地址 https://github.com/seata/seata Spring Cloud Alibaba…
摘抄笔记:http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1307wanghaining/ 前言 对于集团公司,企业内容的集中管理是目前的一个趋势,在这边文章里,我们讲解某集团银行如何通过 FileNet 实现企业内容的统一管理. 业务场景描述 某集团银行是我国最大的投资银行之一,下属五十几家分行,分布在全国各地.在日常业务中,每天会产生大量的业务凭证,包括信贷合同.储蓄凭单.支票.会计档案等.如何对这些凭证进行统…
1.什么是分布式 关于"分布式系统"的定义,我们先看下书中是怎么说的.<分布式系统原理和范型>一书中是这样定义分布式系统的:"分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统". 关于这个定义,我们直观的感受就是: 首先,这种系统相对来说很厉害,由好几台主机组成.以谷歌.亚马逊等服务商而言,他们的数据中心都由上万台主机支撑起来的. 其次,虽然很它很厉害,但对于外人来说,是感觉不到这些主机的存在.也就是说,我们只看到是一个系统在运…
微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.当前被越来越多的开发者推崇,系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变的非常突出.分布式事务已经成为微服务落地最大的阻碍,也是最具挑战性的一个技术难题.   1. 什么是微服务化带来的分布式事务问题? 首先,设想一个传统的单体应用(Monolithic App),通过 3 个 Module,在同一个数据源上更新数据来完成一…
摘要: 阿里妹导读:广为人知的阿里分布式事务解决方案:GTS(Global Transaction Service),已正式推出开源版本,取名为“Fescar”,希望帮助业界解决微服务架构下的分布式事务问题,今天我们一起来深入了解. 阿里妹导读:广为人知的阿里分布式事务解决方案:GTS(Global Transaction Service),已正式推出开源版本,取名为“Fescar”,希望帮助业界解决微服务架构下的分布式事务问题,今天我们一起来深入了解.微服务倡导将复杂的单体应用拆分为若干个功能…
一. 前言 日志对于一个程序的重要程度不用过多的言语修饰,本篇将以实战的方式讲述开源微服务全栈项目 有来商城 是如何整合当下主流日志解决方案 ELK +Filebeat . 话不多说,先看实现的效果图,绝不搞些浪费大家时间且没意义的东西. 二. Elastic Stask 技术栈 1. 为什么引入 Filebeat ? ELK 作为分布式日志解决方案让人为之津津乐道,即使没有实践过也能耳熟,可见其火热程度. Beats 作为数据采集器后来加入进来 Elastic 家族,ELK正式更名为 Elas…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 前面已经了解了分布式事务的基础理论,以理论为基础,针对不同的分布式场景业界常见的解决方案有2PC.TCC.可靠消息最终一致性.最大努力通知这几种. 1.什么是2PC 2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase).提交阶段(commit  phase),2是指两个阶段,P是指准备阶段,C是指提交阶段. 举例:张三和李四好久不见,老友约起聚餐,饭店老板要求先…
github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink 1 概述及背景 我们有一个全国性质的面向工业的公有云平台,通过专线或4G的链路方式实时向平台传输数据,每天处理1亿条左右的数据量,为现场用户提供实时的在线服务和离线数据分析服务.现在已经上线稳定运行有将近3年的时间.同时也为工业企业提供私有云建设服务. 我们计划使用Flink作为云平台后台的实时计算部分,基本实现数据点的聚合…
因业务发展需要现在的系统不足以支撑现在的用户量,于是我们在一周之前着手项目的性能优化与分布式部署的相关动作. 概况 现在的系统是基于RabbitHub(一套开源的开发时框架)和Rabbit.WeiXin(开源的微信开发SDK)开发的一款微信应用类系统,主要业务是围绕当下流行的微信元素,如:微官网.微商城.微分销.营销活动.会员卡等. 关于RabbitHub详情请戳: .NET 平台下的插件化开发内核(Rabbit Kernel) RabbitHub开源情况及计划 关于Rabbit.WeiXin详…
0-前言 分布式系统中,分布式ID是个必须解决的问题点: 雪花算法是个好方式,不过不能直接使用,因为如果直接使用的话,需要配置每个实例workerId和datacenterId,在微服务中,实例一般动态配置,直接指定具体实例的这两个参数是不现实的: 所以,一般采用雪花算法的变种,主要是将这两个参数由手动配置改为动态生成,美团leaf.百度uid-generator都属于改良的变种算法,可以适当采用: 不过这些算法都或多或少对其他存在一定依赖,不是非常方便,今天我们来说一种非常方便的分布式ID解决…
Hadoop生态圈-flume日志收集工具完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   目前为止,Hadoop的一个主流应用就是对于大规模web日志的分析和处理,因此想要把web服务的日志导入到Hadoop来进行分析就得借助日志收集工具了.目前主流的Hadoop日志收集工具能够跟Hadoop进行交接的有三个工具,即flume,scribe和chukwa.本篇博客的主角是Apache的flume. 一.主流日志收集工具简介 1>.flume Flume是Cl…
kubeadm介绍 kubeadm概述 Kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令作为快速创建 kubernetes 集群的最佳实践. kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群.kubeadm 只关心启动集群,而不关心其他工作,如部署前的节点准备工作.安装各种Kubernetes Dashboard.监控解决方案以及特定云提供商的插件,这些都不属于 kubeadm 关注范围. kubeadm功能 kubead…
虽然微服务现在如火如荼,但对其实践其实仍处于初级阶段.即使互联网巨头的实践也大多是试验层面,鲜有核心业务系统微服务化的案例.GTS是目前业界第一款,也是唯一的一款通用的解决微服务分布式事务问题的中间件,而且可以保证数据的强一致性.本文将对GTS做出深入解读. 微服务倡导将复杂的单体应用拆分为若干个功能简单的.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.概念2012年提出迅速火遍全球,被越来越多的开发者推崇,很多互联网行业巨头.开源社区等都开始了微服务的讨论和实践.根据Netfl…
项目地址:FESCAR 以下是官网的文档.简介2019年,Fescar 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务 场景下面临的分布式事务问题. 1. 什么是微服务化带来的分布式事务问题?首先,设想一个传统的单体应用(Monolithic App),通过 3 个 Module,在同一个数据源上更新数据来完成一项业务. 很自然的,整个业务过程的数据一致性由本地事务来保证. 随着业务需求和架构的变化,单体应用被拆分为微服务:原来的 3 个 Modul…
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 五.配置 MyCat MyCat 集群部署(HAProxy + MyCat) 一.本节课程的依赖课程 二.软件版本 三.部署环境规划 四.MyCat 集群部署架构图如下: 五.MyCat 节点 2 的部署 六.配置 MyCat 状态检查服务(在 MyCat 节点主机上配置) 七.HAProxy 介绍…
目录 1 前言 2 分布式存储可靠性常用方法 2.1 冗余 2.2 校验 3 MinIO存储机制 3.1 概念理解 3.2 纠删码EC(Erasure Code) 3.3 存储形式 4 部署实践 4.1 单节点部署多磁盘 4.2 多节点部署 4.2.1 部署脚本 4.2.2 部署注意点 4.2.3 使用 nginx 负载均衡 5 总结 参考资料 往期文章 高可用分布式对象存储,MinIO 轻松实现. 1 前言 上一篇文章介绍了使用对象存储工具 MinIO 搭建一个优雅.简单.功能完备的静态资源服…
kubeadm介绍 kubeadm概述 参考<附003.Kubeadm部署Kubernetes>. kubeadm功能 参考<附003.Kubeadm部署Kubernetes>. 本方案描述 本方案采用kubeadm部署Kubernetes 1.18.3版本: etcd采用混部方式: KeepAlived:实现VIP高可用: HAProxy:以系统systemd形式运行,提供反向代理至3个master 6443端口: 其他主要部署组件包括: Metrics:度量: Dashboar…
为什么要分布式 Redis是一款开源的基于内存的K-V型数据库,因为内存访问速度快,一般被用来做系统的缓存. Redis作为单机部署能够支持业务简单,数据量不大的系统需求,但在实际应用中,一旦系统规模上来,单机的Redis就会遇到下面的挑战: 伸缩性.系统随着长期运行与业务增长,对Redis存储的数据量需求也越来越大,单机必然受限于服务器的内存与磁盘大小. 高性能.系统规模变大后,对Redis的吞吐量需求也会提高,而单机的吞吐量必然有限,这种情况会影响整体系统的性能. 高可用.Redis持久化机…
kubeadm介绍 kubeadm概述 参考附003.Kubeadm部署Kubernetes. kubeadm功能 参考附003.Kubeadm部署Kubernetes. 本方案描述 本方案采用kubeadm部署Kubernetes 1.20.4版本: etcd采用混部方式: KeepAlived:实现VIP高可用: HAProxy:以系统systemd形式运行,提供反向代理至3个master 6443端口: 其他主要部署组件包括: Metrics:度量: Dashboard:Kubernete…
在不久之前发布了一篇"项目分布式部署那些事(1):ONS消息队列.基于Redis的Session共享,开源共享",因为一些问题我们使用了阿里云的OCS,下面就来简单的介绍和分享下相关的解决方案和心得. 为什么放弃Redis? 因为我们Redis是需要自己部署的,而自己部署意味着要花经历去维护这样一套Redis的方案,而一开始我们以为一台简单的服务器简单的安装配置一下Redis就可以负荷我们现在的应用了(我们的应用目前只有Session使用了它),可事与愿违再部署上去的过程中经常出现re…