软件架构师实战

来源:互联网 发布:韩国东大门代购淘宝店 编辑:程序博客网 时间:2024/05/24 03:49

高级软件架构师实战培训阶段1
构建:高可扩展性、高性能、大数据量、高并发、分布式的系统架构。
技术要点:
1:构建基本的业务功能块,基于Maven+Git+Spring mvc+spring+mybatis+ehcache+mysql+X-gen代码生成
2:高扩展性的分布式体系架构(基于Nginx+Varnish+Memcache+ActiveMQ)
3:NoSQL的合理使用和架构优化(基于MongoDB)
4:分布式文件存储和架构优化(基于MogileFS)

工程:分模块,分工程管理;多模块、多Web应用,合成一个War包;
基本业务:用户管理、商品管理、购物车、订单管理、库存管理;
重点:大数据量、高并发下,并发读、并发写、并发混合读写等的性能;

架构应用的技术:
Nginx:各个模块的配置使用、反向代理、负载均衡、动静分离、Rewrite、配置优化和使用;
Varnish:VCL基础和进阶、负载均衡、缓存管理、日志、监控分析并优化Varnish;
Memcache:缓存的读写、分布式缓存、一致性Hash算法、虚拟节点、命中率的提升、缓存管理与监控、理解Memcached的数据存储方式、最佳实践;
ActiveMQ:JMS编程、基于ActiveMQ的开发、ActiveMQ的集群、管理和监控、消息传送和持久化、ActiveMQ各种高级特性、与Tomcat集成、与Spring集成、性能优化;
MongoDB:CRUD操作、索引、集合、聚合框架、副本集、分片、应用管理、运行监控和管理、备份、Java操作MongoDB、与Spring集成、最佳实践;
MogileFS:配置和使用、理解MogileFS、Java客户端的应用开发、文件存取、管理监控;

这里写图片描述
squid是缓存服务器科班出生
varnish是觉得squid性能不行,纯内存缓存服务器方案
nginx cache是属于不务正业,得益于nginx强大的性能
这里写图片描述

高级软件架构师实战培训阶段2
一:分布式架构和部署,大致包括:
1:如何进行分布式部署
2:系统拆分后,模块之间如何相互调用
3:如何进行统一的会话(Session)管理
4:如何实现单点登录
5:如何保证一致性更新
6:如何规划和处理分布式事务
7:如何对重要服务实现HA

分布式:单台服务器无法承担访问压力、大数据处理、高并发访问、高可用性、自动容错、并行、高性能应用;
特点:
面对高并发、大数据的处理要求
高可扩展性
高性能
同步异步操作混杂
安全性:授权认证、sso单点登录、Oauth
透明性:访问透明、位置透明、并发透明、故障透明、伸缩透明
缺点:
相互调用不便
网络通信的可靠性
网络传输安全性
系统开发更复杂
测试困难

分布式部署演化:中小型应用、企业级应用
1台服务器
分离web服务器和数据库服务器
水平增加web服务器,加入Nginx负载均衡
加入分布式文件系统
加入缓存服务
MySQL数据库的主从集群、读写分离

大数据量:记录数在千万级上存储体量在TB以上。
大数据:对大数据量进行分析和挖掘,涉及数据仓库、数据挖掘、人工智能。
大数据量处理思路
一:分字诀 :尽量是每次操作的数据的基数减少
用和不用分开,常用和不常用分开
对数据库存放的数据:分区、分库、分表
对文件存放的数据:拆文件(日志文件按时间拆分)
考虑分批处理
二:合理使用缓存
三:数据库优化:
合理设计数据库结构
合理构建索引
数据库集群、读写分离
四、优化算法优化:操作数据算法、优化SQL
考虑使用临时表、中间表
五、合理使用NoSql:Mongodb、Redis、HBase
六、使用分布式大数据处理方案:Hadoop、Spark、Storm

二:高并发和Web层的性能优化,大致包括:
1:高并发的处理
2:Nginx的优化,Varnish的配置和优化,比如:反向代理、负载均衡、读写分离、业务拆分访问
3:Web层的缓存和静态化
4:Web层的性能优化,基本原理、各种优化的手段
5:如何处理动态、实时内容,比如价格 AJAX ESI
6 : tomcat集群和MSN
三:逻辑层处理和性能优化,大致包括:
1:缓存规划和集群:Memcashed集群(使用magent)
2:Memcashed和Redis
3:异步规划和集群,以及优化
4:纯内存操作,应对复杂业务逻辑,比如:库存的查询和修改
5:如何处理高并发的业务,比如:秒杀活动
四:数据层处理和性能优化,大致包括:
1:大数据量的处理
2:如何分库
3:如何分表
4:NoSQL的应用
5 : 应用MySQL fabric
五:数据库优化:
1:常见的优化配置
2:Sql语句级的优化
3:MySQL的分区
4:MySQL的主从集群和读写分离
5:Galera MySQL集群
6: MySQL的HA和负载均衡
六:JVM优化
七:硬件和服务器
1:包括OS、网络、I/O等的调整和优化配置
八:集群和其它,大致包括:
1:集群:应用集群、Web服务器、缓存服务器、文件系统、消息处理系统、数据库、NoSQL等
2:了解其他的相关技术和手段,比如CDN等

高级软件架构师实战培训阶段3
一:分布式搜索引擎ElasticSearch快速上手,大致包括:
1:ES提供的各类接口的功能、基于Java的开发等
2:深化ES各部分的功能应用;理解ES各个部分的实现机制等
3:ES在电商中的典型应用,比如:通用搜索、按商品属性搜索等
二:ELK日志数据查询、挖掘和分析快速上手,大致包括:
1:Logstash日志处理快速上手
2:Kibana数据分析可视化快速上手
3:ELK在电商中的典型应用
三:Dubbo+Zookeeper分布式架构,大致包括:
1:Zookeeper开发快速上手群
2:Dubbo开发快速上手
3:基于Dubbo的分布式应用架构设计
四:JVM和性能调优,大致包括:
1:JVM机制和原理
2:JVM性能监控和调优
3:JVM调优实战

0 0
原创粉丝点击