架构
文章平均质量分 78
garagong
腾讯大数据、人工智能解决方案架构师、原京东集团云计算架构师,从事能源行业信息化工作长达17年,擅长云计算、大数据、AI大模型等技术培训、结合业务场景编写落地方案。
展开
-
Dubbo的架构设计详解
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。...原创 2018-07-23 09:34:10 · 345 阅读 · 0 评论 -
SSM架构搭建所需要的配置流程
SSM是目前比较流行的一种架构,已经超越SSH框架。所谓SSM就是指SpringMVC、Spring、Mybatis三个框架进行整合而成,主要用来搭建Web应用开发架构,下面我主要从搭建架构的流程一步一步说起,便于初学者使用。 第一步:首先引入依赖包,我采用的Maven构建工具,通过Pom.xml配置文件进行依赖加载。 首先引入Spring相关的依赖包,主要...原创 2018-07-31 00:28:42 · 930 阅读 · 0 评论 -
如何使用jackson解决对象与JSON转换问题
jackson 解析复杂json问题jackson常见的json生成和解析的工具包,下面一起看看它对于复杂的json解析时带来的问题jackson简介 jackson依赖包 jackson解析javaBean jackson解析泛型的List jackson解析复杂的jsonjackson简介Jackson是一种JSON API,也是最流行,速度最快的JSON API。Ja...原创 2018-08-05 15:54:18 · 1085 阅读 · 0 评论 -
分布式消息队列(联网架构核心中间件)之研讨
本次分享是结合网络上现有的资料和自己的一点感想,进行总结,按照下面六方面进行详细阐述:消息、消息协议、消息队列概述 消息队列应用场景 消息中间件示例 JMS消息服务 常用消息队列 总结一、消息、消息协议、消息队列概述 消息即是信息的载体。为了让消息发送者和消息接收者都能够明白消息所承载的信息(消息发送者需要知道如何构造消息;消息接收者需要知道如何解析...原创 2018-08-06 09:23:46 · 1295 阅读 · 0 评论 -
Redis理论及应用经验总结
Redis是一个键值缓存和存储框架(KV Cache and Store)主要实现功能: 1、In-Memory缓存:所有的数据查询都在缓存中,100万KV键值对,其中V是String类型,仅仅占用100M内存; 2、持久化:缓存中的数据能够自动持久化到硬盘中,目的不是存储数据,而是防止分布式系统雪崩,内存数据丢失;持久化主要采用两种方式:快照(采用异步的方式把内存...原创 2018-08-15 18:51:37 · 220 阅读 · 0 评论 -
NIO、BIO和AIO的概念
NIO、BIO、AIO分别是同步阻塞、同步非阻塞、异步非阻塞,分别从客户端与服务端之间网络通信中是否为连接、请求提供线程,首先介绍一下同步、异步、阻塞 与非阻塞的概念,再介绍NIO、BIO、AIO的具体概念。 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。 异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Jav...原创 2018-08-06 16:47:25 · 551 阅读 · 0 评论 -
Logback组件的应用及实践
Logback是由log4j创始人Ceki Gülcü设计的又一个开源日志组件,Logback基于Log4j设计和开发的,性能和功能优于Log4j,Logback当前分成三个模块:logback-core,logback- classic和logback-access。Logback的主要标签:Logger、Appender、Layout。 Logger:日志的记录器,把...原创 2018-08-01 23:38:49 · 497 阅读 · 0 评论 -
Netty概念、特性以及应用场景
netty是异步的 事件驱动的基于NIO实现的开源框架,用以快速轻松的实现高性能、高可靠性的网络客户端和服务器端最基础的通信组件,通俗的讲:Netty是Jboss开发做的JAR包,很好的封装了Socket,处理网络通信的一个开源通信框架。一、Netty的特性1)设计统一的API,适用于不同的协议(阻塞和非阻塞)基于灵活、可扩展的事件驱动模型高度可定制的线程模型...原创 2018-08-06 18:43:36 · 7493 阅读 · 0 评论 -
Redis与SSM框架整合应用之一
我们在建设和应用互联网架构时,往往需要考虑高并发、高性能的要求,为也提高系统的响应速度,往往需要采用缓存技术,在这里我使用的是Redis缓存技术,把一些变动频率较低的数据放在缓存中,提高系统访问速度,下面主要讲解Redis在SSM框架中如何去整合和实现。一、搭建Redis环境在这里我是在阿里云服务器上搭建了一个Redis服务器,首先去https://redis.io/down...原创 2018-08-15 22:28:58 · 1334 阅读 · 0 评论 -
Spring拦截器应用之一
Spring拦截器常用于对用户的请求进行拦截处理,例如:实现登陆验证、系统权限验证、编码过滤等方面,这样在用户的请求未处理之前,进行预处理或者请求进行转发等。 对于每一个请求可以设置多个拦截器,多个拦截器按照一定的顺序执行,当任何一个拦截器返回false时,请求处理结束。我们如何配置和应用拦截器,下面主要两个步骤就OK。 拦截类要继承Spring提供的HandlerIn...原创 2018-08-15 23:08:13 · 242 阅读 · 0 评论 -
在JAVA编程语言中,volatile、synchronized和lock对同步机制的理解
1、概述在研究并发程序时,我们需要了解java中关键字volatile和synchronized关键字的使用以及lock类的用法。首先,了解下java的内存模型:(1)每个线程都有自己的本地内存空间(java栈中的帧)。线程执行时,先把变量从内存读到线程自己的本地内存空间,然后对变量进行操作。 (2)对该变量操作完成后,在某个时间再把变量刷新回主内存。那么我们再了解下锁提供的...原创 2018-08-13 11:33:27 · 582 阅读 · 0 评论 -
Maven聚合与继承实例详解
概述 在javaweb高速发展的今天,我们软件设计人员往往会用很多种方式对软件划分模块,目的就是为了能有清晰的设计和低耦合性的,高重用性的软件。Maven有很好的依赖管理系统(Dependency Management System)和项目生命周期的管理(Project Leftcycle),而其中的依赖管理是本文阐述和做出实例的重点。实例背景 利用一个教程的上面...原创 2018-08-25 16:23:38 · 2130 阅读 · 0 评论 -
Feign简单介绍
1、Feign简介Feign是一个声明式的Web服务客户端,使用Feign可使得Web服务客户端的写入更加方便。它具有可插拔注释支持,包括Feign注解和JAX-RS注解、Feign还支持可插拔编码器和解码器、Spring Cloud增加了对Spring MVC注释的支持,并HttpMessageConverters在Spring Web中使用了默认使用的相同方式。Spring Cloud集...原创 2018-09-25 22:27:09 · 3088 阅读 · 1 评论 -
基于Springboot技术的博客系统实践及应用之一
博客系统功能如下:涉及到的技术:通过技术实现,完成代码开发,最后系统效果如下图:博客实战博客实战分三步走:第一点:主要讲解的核心技术:1、Gradle、Gradle Wrapper2、开发环境搭建及项目运行3、 Thymleaf知识讲解及实战4、数据持久化讲解及实战5、全文搜索讲解及实战6、Bootstrap讲解及实战第二步:主要讲解...原创 2018-10-27 12:14:53 · 1096 阅读 · 0 评论 -
CAP理论个人见解
CAP理论在1998年首次被提出,1999年被发表为文章,2000年Brewer在PODC大会演说时将CAP作为假设,2002年才被证明为定理。CAP定理属于理论计算机科学中的内容。一个分布式系统最多只能同时满足 一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。解读CAP的定义如下:...原创 2018-07-25 17:08:51 · 446 阅读 · 0 评论 -
Mysql四种常用存储引擎
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平、特性等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎,MySQL常用的四种引擎的介绍(1)InnoDB存储引擎* InnoDB是事务型数据库的首选引擎,支...原创 2018-07-25 13:57:40 · 340 阅读 · 0 评论 -
Spring boot如何集成Redis(四)
1.什么是RedisRedis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。 1.1 R...原创 2018-02-09 10:37:14 · 313 阅读 · 0 评论 -
maven私服搭建和使用(初级篇)
为什么要用远程仓库(私服) 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件,这样就加大了中央仓库的负载和浪费了外网的带宽,如果网速慢的话还会影响项目的进程。为团队创建私服,可以让公司的团队共享一套构件,加快了项目搭建的进程。所以我们选择用Nexus创建私服。 Nexus下载下载地址:http:...原创 2018-02-09 13:20:05 · 15842 阅读 · 5 评论 -
GIT与SVN的关系与区别
GIT概念 git是一个开源的分布式版本控制系统,用以快速高效的处理项目从很小到非常大的项目的版本控制的所有事情。另外官网上的介绍还有,git性能卓越,超过甚至颠覆一些其他的产品如cvs,perfamce等,git有非常方便的本地分支,多个工作流等。git和svn的比较 git和svn是目前最常用的团队协作的版本控制系统。下面我们从版本控制系统的以下的1,2,3也正是版本控制的演进历史:①本地...原创 2018-02-09 14:24:20 · 327 阅读 · 0 评论 -
设计模式之行为型模式(责任链、命令、解释器、迭代式、仲裁者、备忘录、观察者、状态、策略、模板方法、访问者)
1.1 设计模式之行为型模式(共十一种)行为型模式设计到算法和对象间的职责分配,不仅描述对象或类的模式,还描述它们之间的通信方式,刻划了运行时难以跟踪的复杂的控制流,它们将你的注意力从控制流转移到对象间的关系上来。行为型类模式采用继承机制在类间分派行为,例如Template Method 和Interpreter;行为对象模式使用对象复合而不是继承。一些行为对象模式描述了一组相互对等的对象如何原创 2018-02-05 10:55:14 · 589 阅读 · 0 评论 -
架构之消息队列应用
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。一、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景1.1异步处理场景说明:用户注册后,需要...原创 2018-02-12 14:08:44 · 331 阅读 · 0 评论 -
Tomcat绿色免安装版环境变量配置及自动服务配置
Tomcat是什么就不用多说了,简单说一下java环境变量的配置问题,注意选择适合自己电脑版本的jdk,如果是32位系统千万别下载64位的jdk,而且tomcat也要选择合适版本的jdk,之前tomcat状态一直是stoped,很伤脑筋,试了各种解决办法,最后发现笔记本jdk是64位的,而tomcat为了能给云主机(32位)使用,下了32位的,所以服务打不开。一:JDK下载及配置jdk...原创 2018-03-16 15:55:45 · 2240 阅读 · 0 评论 -
maven打war包xml、properties文件没打进去如何解决
maven项目在ide(Eclipse)中编译出的war包一般不会有很多问题。但是经过集成环境打war包会出现war包中打不进xml、properties等文件。这样打war包不会报错,但是war包放进tomcat中部署就报错了,提示找不到对应的配置文件。 解决方法是将src/main/java和src/main/resources中的配置文件在pom的build节点配置进...原创 2018-03-22 16:04:34 · 1083 阅读 · 0 评论 -
HTTP API 与Restful API 关系及区别
在工作和面试中,经常遇到Restful API,到目前为止,我对Restful API都不太清楚,经过查询有所了解,特总结如下,什么是REST?可以总结为一句话:REST是所有Web应用都应该遵守的架构设计指导原则。主要原则如下:1. C/S模型,通过统一接口通讯2. 层次化,可与多个服务器通讯3. 无状态,服务器不保存客户状态,发送请求时需包含足够信息4. Cache,C/S之间可使用缓存...原创 2018-04-20 16:03:36 · 22366 阅读 · 0 评论 -
吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
我们在系统建设过程中,往往需要衡量系统的非功能指标,就是系统性能指标,经常使用吞吐量(TPS)、QPS、并发数、响应时间(RT)概念,我对这些概念总结如下,以备以后查看使用. 1. 响应时间(RT) 响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能...原创 2018-06-08 10:59:26 · 911 阅读 · 0 评论 -
Hessian的使用以及原理
Hessian的使用以及原理内容主要包括以下内容:Hessian的基本使用 Hessian的原理 Hessian和Spring 的结合使用 扩展简单说来,Hessian是一个轻量级的RPC框架。它基于HTTP协议传输,使用Hessian二进制序列化,对于数据包比较大的情况比较友好。但是它的参数和返回值都需要实现Serializable接口。简单实现一个Hessian的例子:...转载 2018-07-23 10:44:25 · 986 阅读 · 0 评论 -
Mysql绿色版配置步骤
1,首先去官网下载 MySQL Community Server打开链接:http://dev.mysql.com/downloads/mysql/向下拉页面选择Windows(x86, 64-bit), ZIP Archive进行下载。2、解压MySQL压缩包将下载的 MySQL 压缩包解压到自定义目录下。比如我解压到了“C:\D\mysql-5.7.13-winx64\”,并复制了一份配置文件...原创 2018-07-04 23:21:42 · 416 阅读 · 0 评论 -
Tomcat8安装及配置步骤
1.下载tomcat8 ,官网地址:http://tomcat.apache.org/根据自己电脑的系统 ,下载对应的版本zip ,我下载的是window64位的zip包下一步:2.解压缩apache-tomcat-8.5.11-windows-x64.zip到D盘3.环境变量配置:(请先看文章结尾)3.1 系统变量 ,新增 CATALINA_HOME,地址就是刚才文件夹 ,不需要带/bin3.2...原创 2018-07-04 23:40:54 · 240214 阅读 · 76 评论 -
apache-maven-3.3.9 环境配置
本地 maven 环境 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成。Maven是 Apache 下的一个项目,目前我的新版本是 3.3.9。 1.官网下载 Maven:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.9-bin.tar.gz 2.配置 maven 环境变...原创 2018-07-05 00:04:02 · 9122 阅读 · 0 评论 -
服务化架构具备哪些基本功能以及如何实现
根据我在服务化架构设计上的一些实践经验,谈谈一个服务化框架其应该具备的一些功能以及其基本实现方式。 这里说到的“服务”,本质上来说,就是指“RPC”。单纯的RPC功能实现,其实很简单,无非就是client发起调用,中间某个组件(甚至就是client本身)拦截调用信息,序列化后将信息传输到server端,server端收到调用请求后反序列化,根据请求详细发起实际调用后返回响应传...原创 2018-07-23 15:52:36 · 4584 阅读 · 1 评论 -
Nginx主要用来干什么
1、静态HTTP服务器首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。配置: server { listen80; # 端口号 location / { root /usr/share/nginx/html; # 静态文件路径 } } 2、反向代理服务器什么是反向...转载 2018-07-24 09:09:26 · 27826 阅读 · 4 评论 -
Redis与Memchache的主要区别
Redis与Memchache都是非常优秀的分布式缓存系统,且性能都足够卓越。 Memchache出现的较早,应用的比较方法,客户较多; Redis比Memchache出现晚一些,由于Redis 卓越的性能以及弥补Memchache的一些缺陷,有超过Memchache的趋势,但是两者目前都有自己的优势。下面主要从以下几个方面说明一下区别与联系;1、数据存储介质: Memc...原创 2018-07-24 15:50:00 · 2563 阅读 · 0 评论 -
Lombok(@Data注释等)的概念以及在在maven项目中如何使用
一、Lombok是什么 现在看一下Lombok官方对其进行的解释:Lombok官网:https://projectlombok.org第一句话,Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库。接着,不用再一次写额外的getter或者equals方法。翻译到这里其实就可以,后面是对Lombok早期应用的介绍。通过这两句话不难理解lombok其实就是帮助我们编写get...原创 2018-11-02 12:55:06 · 15717 阅读 · 1 评论