曾宪杰---大型网站系统与java中间件实践,笔记
2应用分布式
1,负载均衡
2,解决集群后的session问题。禁用cookie。
3,拆分应用:服务化SOA,使用消息中间件。
数据读写分布式
1,主从读写库
2,搜索引擎是个读库。
3,加速数据读取--缓存。
4,数据过大:业务垂直拆分,单表水平拆分。拆分后的路由问题,分页查询。
4,服务框架的设计与实现。
集中式-->分布式
服务的调用时的路由选择(众多服务ip中选哪个。方法提供版本号)。
服务化后的jar爆炸,及jar版本冲突。自定义classLoader,把服务框架自身用的类,和应用用的类控制在user-DefinedClassLoader级别。实现隔离。tomcat,OSGI的bundle。
osgi应用及实践。
服务框架需要优先启动。
5,数据访问层
分布式后的事务方案:
1,分布式事务XA,两段提交,太重。
2,最终一致原则。
一致性理论:CAP
consistency 数据一致性,所有节点在同一时间读到的数据一样。
Availability 数据可用性,无论成功或失败,每个请求都能收到反馈。
Partition-Tolerance 分区容忍性,部分出问题,系统仍能继续工作。
分布式中,不能同时满足CAP,
CA:单机数据库的选择。
AP:NoSQL
分布式中一般会选择AP,然后尽量满足C-最终一致。
访问层方案:
1,代理/装饰JDBC,类似DBCP连接池的方式。设计模式体会?
2,封装ORM层
一致性hash?????????
6,消息中间件
解耦:登陆后立刻返回。短信,安全等交给中间件处理。
发送消息的一致性?
JMS Queue模型,公用一个队列,一个消息只会被收到一次。
JMS Topic模型,一个消息被收到N次。
消息订阅者方式。
消息可靠性:消息存储。
核心问题:
数据计算,
数据存储(读写),倒排索引。
相关推荐
【大型网站系统与Java中间件实践读书笔记(二)】 大型网站系统是指处理海量数据、应对高并发访问、以及应对复杂业务逻辑的网络应用。在这些系统中,Java中间件扮演着关键角色,帮助实现系统的扩展性和高效运行。...
《大型网站系统与java中间件实践》读书笔记ppt分享,纯自己用心编写,同时也给同事做了分享,不过当时很多自己讲的内容没有备注进去
7. **中间件**:中间件如消息队列(RabbitMQ、Kafka)、缓存(Redis)、数据库连接池(HikariCP)、负载均衡(Nginx)等,它们在大型系统中起到关键作用,实现异步处理、高可用和高性能。 8. **大数据处理**:包括...
本笔记将深入探讨Java分布式应用的核心概念、技术和实践。 1. 分布式Java应用基础 分布式Java应用的核心在于组件之间的远程方法调用(Remote Procedure Call, RPC)。Java RMI(Remote Method Invocation)是Java...
本篇文章将深入探讨“java后端学习笔记”中的关键知识点,包括消息队列(Message Queuing)服务如ActiveMQ和RabbitMQ、工作流引擎Activity、容器化技术Docker、分布式服务框架Dubbo、网络库Netty、RPC(Remote ...
这份名为“Java笔记,从基础到进阶到源码分析,包括但不限于SSM,SpringBoot,SpringCloud,中间件”的压缩包文件,显然是一个全面学习Java技术体系的宝贵资源。我们将详细探讨其中涵盖的关键知识点。 首先,基础...
【信息系统项目管理师学习笔记】是一份针对信息系统项目管理的专业学习资料,主要涵盖了信息系统的基础知识、软件工程原理以及软件构件和中间件的应用。以下是对这些知识点的详细解释: 1. **信息系统生命周期**:...
其次,"大型网站系统与Java中间件实践"涉及到构建高并发、高可用的Web系统的技能。这可能涵盖负载均衡、缓存策略、数据库优化、消息队列等技术。Java中间件如Spring Boot、Nginx、Redis、RabbitMQ等在实际项目中的...
此外,还有IBM Software Institute的Java认证实录,以及张孝祥的JAVA就业培训,这些课程不仅讲解基础概念,还涉及具体的项目实践,如在线聊天系统、坦克大战项目和BBS的开发。 【J2ME移动通信开发方向培训】则专注...
【MK笔记.zip】是一个压缩包文件,包含了作者的个人学习笔记和相关资源,主要涵盖了编程语言、框架、中间件和算法等多个IT领域的知识点。以下是这些文件所代表的详细内容: 1. **笔记.md**:这可能是一份综合性的...
### Spring Cloud Alibaba(基础) 学习笔记 #### 微服务概述及发展历程 微服务架构是一种将单一应用程序开发为一组小服务的方法,每个服务运行在其独立的进程中,并使用轻量级机制(通常是HTTP资源API)进行通信...
【谷粒商城官方笔记.zip】是一个包含谷粒商城官方资料的压缩包,主要涉及Java编程、前后端分离技术以及尚硅谷的课程内容。这个压缩包里有多个文档和资源,让我们逐一探讨其中蕴含的重要知识点。 首先,我们看到一个...
【Java相关资料和基础知识点】 Java是一种广泛使用的面向对象的编程语言,由Sun ...通过深入学习和实践这些知识点,你将能够掌握Java编程的基础,并逐步进阶到更高级的主题,如框架、中间件、大数据处理等领域。
Java的特性包括跨平台性、稳定性和丰富的库支持,使其成为大型电商系统的首选语言。 1.2 架构设计 可参考在线流程图工具ProcessOn中的设计链接(https://www.processon.com/view/link/606bde8b1e08534321fd2103)...
### Oracle数据库培训笔记知识点概述 #### 一、数据库基础 - **版本简介**:Oracle数据库经历了从Oracle 7.3.4、8.0.6到8i、9i、10g、11g等多个版本的发展。其中,8i版本开始采用Java作为核心编程语言,实现了平台...
Mycat是一款开源的分布式数据库中间件,它能够将一个大型的数据库集群抽象成一个逻辑上的单个数据库,从而解决大数据量、高并发的问题。 首先,我们来看MySQL的主从复制。主从复制是MySQL数据库的一种数据冗余策略...
"后端语言的学习笔记.zip"这个压缩包很可能包含了关于各种后端编程语言的学习资源,特别是那些用于构建动态网站和Web服务的语言。尽管没有具体的标签提供额外信息,我们可以推测这可能涵盖了诸如Java、Python、Node....
在IT行业中,数据库架构设计是系统性能优化的关键环节,尤其是对于大型互联网公司而言。当我们谈论“47_来来来!咱们聊一下你们公司是怎么玩儿分库分表的?”这个话题时,实际上是在探讨数据库扩展性和高并发处理...
对于微服务,前端与后端的分离是常见的实践,Reagent使得Clojure程序员可以利用React的强大功能来构建现代Web应用。 部署方面,Clojure微服务可以借助于各种工具,如Leiningen或Boot进行构建和打包,然后用Docker...