.Net业务搭配实用技术栈
前言
昨天有篇文章在讨论webform的设计思路,我已经四五年不用webform了,虽然它也提供了HttpModule和httphandle来处理请求,提供了一般处理程序ashx来简化处理流程,但依然会想起它的form runat=server,想起注册客户端脚本,想起那堆服务器控件,还有著名的GridView72变。但即使不用服务器控件,它也能提供很强大的功能。
后来微软提供了另一套解决方案asp.net mvc 。其实刚开始我并不习惯,一是因为思路转变,新知识需要学习。二是因为当时做报表用rdlc,但mvc不支持。rdlc对于数据的处理很强大,但浏览器兼容性太差,用于winform客户端效果还是很棒的。mvc用熟后,webform再也没用过了。我没再用过的东西多了,但不否认它们依旧强大,也足够支撑你庞大的业务。
C/S端的话,winform和wpf依旧应该很流行。这块我做的少,理念上大同小异。
无意浪费时间去争论谁好谁坏,能为你挣钱的都是好框架。闲话少说,书归正传。今天我根据以往接触或未来想要进修学习的业务规模,来总结下对应的技术栈,来为未来准备,面向未来思考。
第一种类型企业官网
性质:访问量少,网页功能相当简单。一般为首页,公司介绍,产品介绍,联系我们等。
对应解决方案:
这类可推荐一些来源CMS,无需关心后台,设计好页面,只修改前端页面就行。
如果打算自己开发,见几个表存取下完事。不要想太复杂的架构。简单来,快速交付。
数据库:可采用access,SQLite或sqlserver,mysql都行。
.net需要储备:了解ado.net,dapper,泛型,反射等。了解数据库操作常用语句。
第二种类型流量内容网站
整个网站属于新闻类型,有较多内容分类,日均访问量一万以下。每小时平均一千量。相对于iis每秒成百上千处理数,这点量丝毫不成压力。能日均一万访问量,那说明这个站在小圈子内有很大名气了。
对应解决方案:
仍然推荐开源或自研的cms,一般方案首页和分类定时静态化或启用缓存,明细页直读数据库或经过缓存。
数据库:sqlserver,mysql,mongodb
.net储备:
定时任务如hangfire,quartz.net,
Cache系列(页面缓存,httpruntime缓存等),
安装windows服务topshelf
常用的设计模式等。
数据库增量备份还原与全量备份还原。数据库索引优化。
uv和pv等了解。
搜索引擎优化知识必要了解。
第三种类型小流量业务管理系统
小流量业务管理系统的特点是业务较复杂,但用的人数可能控制在几人几十人。但业务单据一天天下来也非常多。有很多公司每年底或年初会清数据,汇集到数据仓库,新的一年新数据。我之前待过的一家集团超市公司有几个分店,业务系统基于powerbuilder开发,用的是db2数据库,每天营业额数据也挺大的。每天十点有日结,月底有月结。
对应解决方案:
这里一般是购买商业软件或者基于产品二次开发了,完全从头开发需要投入很多时间和费用。
数据库:sqlserver,mysql,postgresql
.net储备:
数据库存储过程,函数,优化,关联表等。
数据库性能重中之重。
数据库每几分钟增量备份,一周全备份。读 写分离也可以在这时介入。
Redis可以考虑引入。
设计模式有需要的场景。
在计算报表和一些情况下,多线程,并行处理数据也会考虑引入。
Dapper,EF开始了用武之地,干起来!
依赖注入,aop 可以考虑引入。
可考虑引入前端vue,element。
以上考虑部分,根据业务规模和使用频数来决定是否引入。业务量太小时,引入多余架构反而有些笨重。
第四种类型百花齐放互联网和大数据量项目
性质:面向c端或B端。访问量大,业务多。虽然还有很多细分,但面向了互联网,我们就时刻准备着未来它能爆发式迎接大批量数据,我们的应用要高可用,健壮!时刻准备着,为未来!哪怕很多互联网公司生存周期只有几年!
数据库:Mongodb,mysql,postgresql
.net储备:
数据库集群。
Mongodb集群,分片等。
必不可少,Redis缓存,缓解数据库压力。需要了解redis运行机制,缓存穿透和缓存雪崩等。
必不可少,消息队列rabbitmq或Kafka,多业务系统之间消息传递,解藕。需要了解rabbitmq运行机制和amqp协议。
很重要 Elastic-search,Es可以通过mongo-connector实现同步mongodb数据,是一个数据极快的搜索引擎。另外可以用ELK搭建日志分析系统,这块我还需要练练手,需要了解Es如何应用,部署,问题排查等。
理论积累之微服务:微服务api网关,监控,服务发现,熔断降级,限流等。可参考微软olreans,Akka.net,ocelot,appllo,前些天过千的surging。有源码的常分析借鉴,理解透。
理论积累之TDD:单元测试,集成测试,自动化测试。
理论积累之CI/CD:需要熟练掌握jenkins配置。熟悉docker生态工具用法。
理论积累之领域驱动:微服务怎么拆?怎么微?服务之间如何联系?领域驱动设计为你提供了大量的建议,虽然不会都完美,但可以为你提供思路。领域,子域和限界上下文,领域服务,事件驱动,CQRS责任分离,贫血富血模型。我现在正在抽时间看这个,期待能有所应用。
理论积累之.net:
并行编程,异步编程。多线程安全等。
网络编程socket,orleans的网关连接就是基于socket,在之上又包装了一层gateway连接。socket和tcp/ip通信息息相关,熟练了这个,其他语言同样思路都会了。很多RPC框架也是基于socket,是网络连接的源泉。
.netcore mvc的通用主机,内置kestrel,中间件等,单元测试,docker运行等需要深入了解。
理论积累之Linux:
.netcore最重要特性是跨平台,以前对linux不熟悉的部分,需要尽快熟练,要变成一个老手。
业务演练之单点登录
业务演练之秒杀
业务演练之短信限发
业务演练之实现消息队列模型
业务演练之实现分布式通信模型
业务演练之搭建微服务框架模型。
后语
粗糙了列了一堆技术栈,好像都见过,深入一问总卡壳,我觉得还是写的文章太少。不写出来,印象就会不会太深刻。我最近已经开启了两日一更,不知道能坚持多久,而且太散。先继续积累吧,以后能不能写成系列性的文章再说。收拾心情再出发!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
(一)ActiveMQ :windows 环境搭建及配置
一、下载ActiveMQ 地址:http://activemq.apache.org/download-archives.html 目前是5.15.2版本 二、ActiveMQ目录 ![image](https://yqfile.alicdn.com/ae2f78e2004c2f5796309df09aeaf7f09d3c539f.png) bin:可执行文件 conf:所有配置文件 data:log日志文件,kahadb持久化数据库文件存储,临时文件 docs:文档 examples:小例子 lib:jar包库 webapps: activemq 监控台web程序 三、ActiveMQ启动 1.运行bin\activemq.bat ,但是需要通过命令行窗口启动 cd /d bin目录下 activemq start 2.根据操作系统位数,选择win32/win64直接运行actviemq.bat 四、重点配置 1.MQ相关配置:activemq.xml - 通信协议配置 <transportConnectors> <!-- DOS protection, limit...
- 下一篇
微服务springCloud架构案例实战,完整操作流程详解
QuickStart 基于SpringCloud体系实现,简单购物流程实现,满足基本功能:注册、登录、商品列表展示、商品详情展示、订单创建、详情查看、订单支付、库存更新等等。 每个业务服务采用独立的MYSQL数据库,初期考虑用到如下组件: 列表内容 服务注册、发现: eureka 配置管理:spring config , spring security 集群容错: hystrix(待实现) API网关: zuul(待实现) 服务负载:feign+ribbon api文档输出:swagger2 代码简化:lombok 消息队列:rabbitmq 分布式锁: redis (待实现) 链路跟踪:spring cloud sletuh ->zipkin 安全认证:oauth2/JWT(待实现) 服务监控:spring-boot-admin 各模块介绍 模块名称 端口 简介 admin-server 9002 服务监控中心,监控所有服务模块 conf-server 9004 分布式配置中心,结合spring-security/rabbitmq同时使用 eureka-server 9003 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装