`
BradyZhu
  • 浏览: 247673 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
【编者按】微服务背后的大理念是将大型、复杂且历时长久的应用在架构上设计为内聚的服务,这些服务能够随着时间的流逝而演化。本文主要介绍了利用 Java 生态系统构建微服务的多种方法,并分析了每种方法的利弊。 快速预览 在 Java 生态系统中构建微服务的策略主要有:container-less, self-contained 和 in-container; Container-less 微服务把应用程序及其所有依赖打包成单一的 jar 文件; Self-contained 微服务也会将应用及其依赖打包成单一的Jar文件,但它还包含可能含有第三方库的嵌入式框架; In-container ...
Tomcat模块 Service 我们将 Tomcat 中 Connector、Container 作为一个整体比作一对情侣的话,Connector 主要负责对外交流,可以比作为 Boy,Container 主要处理 Connector 接受的请求,主要是处理内部事务,可以比作为 Girl。那么这个 Service 就是连接这对男女的结婚证了。是 Service 将它们连接在一起,共同组成一个家庭 Service 只是在 Connector 和 Container 外面多包一层,把它们组装在一起,向外面提供服务,一个 Service 可以设置多个 Connector,但是只能有 ...
思维方式 惯性思维方式:按照经验和直觉来分析和处理问题 逻辑思维方式:强调推理和逻辑分析 水平思维方式:有创意天马行空,尝试关联一些特殊属性来获得创新 结构化思维:以假设为先导,强调快速、系统解决问题 什么是结构化思维 以假设为前提,以事实为依据(分类假设 ) 一种从框架到细节的思维方式 强调在分析问题的过程中,不先入为主,不马上陷入细节 对构成要素和思想观点进行合理的分类分组,分组后的思想观点经过
敏捷开发 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发 在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态 敏捷4大宣言 个体和交互胜过过程和工具 人是软件项目获得成功最为重要的因素 合作、沟通能力以及交互能力比单纯的软件编程能力和工具更为重要 可以工作的软件胜过面面俱到的文档
Spring模块 Core(核心容器) 说明 核心容器提供 Spring 框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现 BeanFactory使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开 IOC(控制反转模式 ) 不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。
Java内存模型 工作内存和主内存 主内存 Java内存模型所有的变量都存储在主内存中 工作内存: 每个线程有自己独立的工作内存,它保存了该线程使用的变量的主内存拷贝 线程对变量的操作都在自己的工作内存中进 ...
1,数据库概述 在互联网时代,海量数据的存储与访问成为系统设计与使用的瓶颈问题,对于海量数据处理,按照使用场景,主要分为两种类型 联机事务处理(OLTP:On-line transaction processing): 也称为面向交易的处理系统,其基本特征是原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果 功能:日常交易处理 DB设计:面向实时交易类应用 数据处理:当前的,最新的细节的,二维的分立的 实时性:实时读写要求高 事务:强一致性 分析要求:低,简单 联机分析处理(OLAP:
1,Netty简述 Netty 是一个基于 JAVA NIO 类库的异步通信框架,用于创建异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性的网络客户端和服务器端 RPC高性能分析,请参考文章“【总结】RPC性能之道 ” 特点 异步、非阻塞、基于事件驱动的NIO框架 支持多种传输层通信协议,包括TCP、UDP等 开发异步HTTP服务端和客户端应用程序 提供对多种应用层协议的支持,包括TCP私有协议、HTTP协议、WebSocket协议、文件传输等 默认提供多种编解码能力,包括Java序列化、Google的ProtoBuf、二进制编解码、Jboss marshalling、文本 ...
1,缓存:Memcached - 只支持简单的Key / Value结构 -不支持数据持久化 - 每个Key的值最大1MB -协议简单:不使用复杂的XML等格式,而使用简单的基于文本行的协议 -基于libevent的事件处理:libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue
1,ZooKeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务 是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件 为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等 2,ZooKeeper使用场景 分布式配置中心(数据发布与订阅) 【说明】发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新
1,Redis 丰富的数据结构(Data Structures) 字符串(String) Redis字符串能包含任意类型的数据 一个字符串类型的值最多能存储512M字节的内容 利用INCR命令簇(INCR, DECR, INCRBY)来把字符串当作原子计数器使用 使用APPEND命令在字符串后添加内容 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序 你可以添加一个元素到列表的头部(左边:LPUSH)或者尾部(右边:RPUSH) 一个列表最多可以包含232-1个元素(4294967295,每个表超过40亿个元素) 在社交网络中建立一个时间线模 ...
1,背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进 单一应用架构 当网站流量很小时,只需一 ...
1,MySQL基础 - MySQL物理文件组成 - MySQL逻辑架构 - MySQL自带工具 2,MySQL存储引擎 - MyISAM - Innodb - NDBCluster 3,MySQL性能优化 - 硬件层优化 - OS层优化 - MySQL层优化分析 - 系统架构及实现对性能的影响 -不适合放在数据库存放 -二
1,MySQL读写分离 - MySQL复制(Replication) - 双主多从架构 2,MySQL高可用(HA)和读负载均衡 - 高可用:Keeplived,失效转移 - 读负载均衡:LVS 3,MySQL可扩展设计 - 数据切分 - 数据的垂直切分(纵向切分) - 场景/出发点 - 大字段 - 使用用途:属性类别 -
1,使用消息中间件场景 - 解耦和扩展性 - 系统之间集成只需要基于消息队列的数据接口层,这允许系统各自独立的扩展或修改各自的实现,只需要确保遵守同样的接口约束 - 异步通信/处理 - 一些事务性很强,耗时久的请求,如下订单,注册发邮件等,接受请求后马上告诉用户后台已经接受到了请求并在处理请等待,前台不停的检查处理情况,防止了用户一直挂在当前页面,提升了交互体验 - 有些请求伴随着很多后台的附加处理,比如:记录日志,发通知邮件,相关计算处理更新通知等,都可以通过发消息的方式处理,不影响用户请求的主流程 - 处理突发高并发/高峰值的负载情况
Global site tag (gtag.js) - Google Analytics