Java架构基础学习一
李初新
这个作者很懒,什么都没留下…
展开
-
Zookeeper搭建集群环境
Zookeeper搭建集群环境1.前置环境首先你要在Linux环境下安装好Java8环境。因为Zookeeper是使用java语言来开发的,使用之前必须要安装Java环境2.安装Zookeeper1.下载zookeeper安装包wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zook...原创 2019-09-05 11:23:45 · 204 阅读 · 0 评论 -
Java架构学习(四十一)SpringCloud&基础回顾&使用Fegin客户端调用&服务雪崩效应产生原因&Jmeter模拟服务雪崩效应&解决雪崩效应办法&Hystrix解决雪崩效应&相关面试
前置知识SpringCloud 是微服务解决框架,主要应用在RPC远程调用。2、里面集成了Eureka注册中心、Ribbon负载均衡客户端、Zuul接口网关 分布式配置中心。3、SpringCloud客户端调用工具、rest、fegin。4、SpringCloud断路器Hystrix服务降级、熔断机制、限流。其实总结高并发就一句话:通过负载均衡达和反向代理达到分流、通过限流达到防服...原创 2018-11-14 17:32:49 · 806 阅读 · 1 评论 -
Java架构学习(四十二)Zookeeper基础&ZK概述&ZK数据结构&windows搭建ZK&Java操作ZK&ZK创建临时节点&ZK的Watcher事件通知&架构面试
一、Zookeeper概述1、什么是Zookeeper?答:Zookeeper是分布式开源框架,是分布式协调工具。2、应用场景:答:dubbo 是rpc远程调用框架+Zookeeper作为注册中心,(命名服务) 发布订阅 --- wathcher 对zk节点发生改变的时候,都会有事件通知。3、负载均衡。4、分布式通知(wathcher)5、master选举策略-- 主备 投票机制...原创 2018-11-15 14:31:14 · 729 阅读 · 1 评论 -
Java架构学习(三十九)SpringCloud基础&网站架构演变&微服务架构概述&SpringCloud概述&服务注册与服务发现&搭建注册中心Euraka&rest和fegin调用原理
一、网站架构演变过程微服务架构 为什么出现了SpringCloud网站架构模式:单点应用---->分布式系统面向于服务架构(SOA)体系 webservice---->微服务架构web项目三层架构如果在互联网公司中,使用传统架构技术开发会产生代码冲突。所以需要拆分项目:这就产生了分布式开发分布式架构:就是将一个大项目,拆分成n个多个子项目。如:会员系统、支付系...原创 2018-11-02 17:24:20 · 617 阅读 · 0 评论 -
Java架构学习(四十)SpringCloud高级&SpringCloud基础知识&服务负载均衡实现原理&Ribbon搭建服务负载均衡&接口网关Zuul使用&使用Zuul搭建接口网关&使用Zuul网关
一、基础复习1、什么是SpringCloud?答:SpringCloud是一套完美的微服务解决框架。主要做RPC远程调用框架SpringClould:注册中心Euraka(管理服务地址信息)、Ribbon做负载均衡、rest作用调用接口。fegin:客户端调用,接口调用方式zuul接口网关:跨域、路由、拦截参数hystrix:断路器 -- 服务雪崩效应、服务降级、熔断机制、限流分...原创 2018-11-09 15:17:12 · 766 阅读 · 1 评论 -
Java架构学习(三十七)分布式JOB任务调度平台
一、任务调度概述1、什么是任务调度?就是定时JOB, 在什么时间执行代码任务任务调度场景:网站每天主从新用户1000人, 注册用户信息、登录信息、定时发送到我的邮箱。21:00。 同步job,调用失败之后,有补偿机制,日志+定时JOB分布式解决方案 2、java实现定时任务有几种? Thread:线程来实现 ThreadTask: 线程池,可定...原创 2018-10-24 14:29:22 · 1737 阅读 · 0 评论 -
Java架构学习(三十五)RocketMQ基础&rocketMQ概述&rocketMQ原理&rocketMQ集群&rocketMQ搭建集群&rockeyMQAPI&rocketMQ解决幂等问题
一、rocketMQ概述1、rocketmq:分布式消息中间件,支持集群,效率非常高。2、activityMQ是点对点通讯,发布订阅、 本身不支持集群,不支持分布式。 为什么MQ发生消息堆积,消费者不会宕机? 答:因为MQ中有消息缓存机制。 MQ发生消息堆积,消费者不会宕机,但是消息中间件可能会宕机。3、rocketmq 海量消息堆积、支持上万个队列。4、消息中间件集群的目的是什么...原创 2018-10-17 11:29:38 · 447 阅读 · 0 评论 -
Java架构学习(三十四)ActivityMQ高级&MQ前置知识&设置持久化&JMS可靠消息机制保证可靠消息&SpringBoot整合ActivityMQ&使用AMQ注意事项&解决MQ幂等性问题&消费
一、MQ前置知识 1、什么是消息中间件? 答:是做客户端与服务器端进行异步通讯的。 2、消息中间件的通讯模式有? 答:点对点、发布与订阅。 3、如果生产者发送几万个消息?消息中间件会宕机掉吗? 答:不会,因为MQ本身就拥有解决高并发能力。 4、什么是JMS? 答:JMS是java消息服务应用程序接口,是java面向消息中间件的API。 JMS是java面向消息中间件的API。...原创 2018-09-28 10:27:38 · 1061 阅读 · 0 评论 -
Java架构学习(三十三)ActivityMQ基础&消息中间件概述&异步与同步&MQ作用&MQ件通讯方式&MQ应用场景&ActivityMQ安装&使用ActivityMQ的案例&主题和订阅
ActivityMQ基础一、消息中间件概述什么是消息中间件?与传统的传输通讯有什么区别?答:异步,无需等待,消息存放在队列里面。调用别人的接口时候,返回的是同步还是异步?答:发送请求/响应是同步的。什么是同步?什么是异步?当A项目调用B接口时,B接口有延迟,会产生什么场景?答:1、A会一直等待,等待B影响给我,http有设置超时时间。 2、同步接口中,如果网络延迟...原创 2018-09-23 00:09:36 · 2590 阅读 · 1 评论 -
Java架构学习(三十二) nginx高级&分布式与集群概念&linux中nginx安装&nginx+keepalived实现高可用&session共享解决方案&高并发解决方案总结
nginx高级一、 分布式与集群的区别分布式: 在互联网公司,把一个大的项目拆分成n个多个小项目,(模块化开发) 如商城项目会拆分成会员系统、订单系统、支付系统等其他。 在分布式中会涉及到 面向接口开发、子项目进行通讯、RPC远程调用技术 SpringCloude、Doubbo、HttpClient。 最后分布式是将项目拆分成n个小项目,最后组合一个大项目。集群: 就是减...原创 2018-09-21 10:48:15 · 1092 阅读 · 2 评论 -
Java架构学习(三十一) nginx基础&安全架构体系&windows安装nginx&nginx反向代理&nginx搭建集群&负载均衡策略&容错机制&nginx搭建企业接口网关
nginx基础一、nginx基础与安全体系架构nginx的作用: 1、nginx做反向代理、代理服务器、静态服务器。 2、nginx作用: 做集群(减轻单台服务器的压力)。 反向代理:不暴露真实的ip地址。 3、虚拟服务器。 静态服务器。(动静分离)面试官问安全架构的时候可以说 nignx实现方向代理(不暴露真实ip)....原创 2018-09-19 10:42:02 · 406 阅读 · 0 评论 -
Java架构学习(二十九)redis基础&SpringBoot整合ehcache&非关系型数据库简介&redis安装&linux中redis安装&redis基本数据类型&java中jedis操作red
Redis基础一、Java缓存机制什么是Jvm内置缓存?答:值存放在jvm缓存中。mybatis、hibernate二级缓存机制,是sessionFactory级别。什么是noql缓存?答:相同点:都是存放在内存中。mybatis二级缓存机制默认使用的是oscachehibernate二级缓存机制默认使用的是ehcacheoscache与ehcache : 属...原创 2018-09-10 13:32:33 · 409 阅读 · 0 评论 -
Java架构学习(四十三)Zookeeper实现分布式锁&解决生成订单号的线程安全问题&实现分布式锁解决方案&ZK概述&实现分布式锁基本步骤
一、Zookeeper实现分布式锁概述1、项目中有使用到分布式锁吗?案例:需要生成订单号方案 使用UUID、时间戳+业务ID 幂等:就是重复的意思 重复消费等。高可用:怎么去做就是尽量减少系统宕机的时间。让系统更稳定。高并发:就是同一时刻,请求同一个接口。怎么保证接口幂等性 --- 就是怎么保证接口不允许有重复 不要生产重复的。如订单号 保证幂等性。案例生成订单ID...原创 2018-11-26 14:12:38 · 1164 阅读 · 0 评论 -
Java架构学习(四十四)Zookeeper实现负载均衡和选举策略&ZK负载均衡原理&ZK实现分布式锁步骤&搭建zk负载均衡环境&zk代码实现负载均衡&zk实现轮询机制算法&zk选举策略
一、Zookeeper实现负载均衡原理分布式微服务中的概念:生产者、消费者、服务、注册中心、服务治理dubbo是使用的临时节点。zk使用的是临时节点来存储,服务的地址的。负载均衡是在订单服务里面做的。...原创 2018-11-27 16:17:48 · 1151 阅读 · 0 评论 -
Java架构学习(五十五)支付宝回调核心代码之同步回调实现&支付宝回调接口&同步回调和异步回调&使用form表单隐藏同步回调参数
一、支付宝回调接口回调:分布式事物解决方案。1、通知结果:分为 同步通知: 以浏览器方式重定向到网站上去。 异步通知:支付宝会以httpclient技术更改订单状态。为什么项目要做服务化?服务化的好处是把共同的代码抽象出来封装成接口给别人调用。扩展性高,降低耦合性。分布式事物: A B两个支付服务,调用订单服务进行订单状态更改 payInfo.update(...原创 2019-01-29 14:40:47 · 4986 阅读 · 3 评论 -
Java架构学习(五十三)支付宝平台源码分析&支付概念&支付架构整个流程&支付宝沙箱环境&安全加密方式&支付宝Demo环境运行&支付宝流程源码分析
一、支付概念现在有的支付机构:支付宝、微信支付、京东支付、银联支付、小米支付、百度钱包、平安支付。整个支付体系的流程都是大同小异的。聚合支付平台。二、支付架构整个流程...原创 2019-01-22 15:28:59 · 772 阅读 · 1 评论 -
Java架构学习(五十二)使用框架开发微信&微信框架介绍&整合微信开发框架WxJava&使用微信返回消息模板接口&使用WxJava框架发送模板消息&http协议参数转义知识
一、微信框架介绍1、access_token是公众号的全局唯一调用接口的凭证,它两个小时更新一次。获取access_token方法:https请求方式: GEThttps://api.weixin.qq.com/cgi-bin/token? grant_type=client_credential&appid=APPID&secret=APPSECRET本项目使用g...原创 2019-01-16 14:58:26 · 2348 阅读 · 0 评论 -
Java架构学习(五十一)微信公众号开发&混合开发技术流程&微信推送原理&外网映射工具使用&微信公众号接口认证代码&获取微信客户端信息&解决微信消息幂等问题
一、微信公众号项目SOA架构:面向接口开发,也就是相当于把传统的那种ssh项目的业务逻辑层抽取出来做成接口。SSH架构与分布式架构的区别SSH架构是整个项目的任何模块都在一个项目里面分布式架构相当于把一个项目,拆分成n个子项目二、混合开发技术流程混合开发技术:原生态+H5 什么是原生态:原生态软件,可以理解成桌面应用程序。混合开发就是客户端技术啊+网站这种模式开发。三、微...原创 2019-01-15 15:45:02 · 276 阅读 · 0 评论 -
Java架构学习(五十四)项目整合支付宝接口&支付流程回顾&项目整合支付接口流程&创建支付token接口&支付宝对接步骤支付服务&项目整合支付服务
一、支付宝支付流程回顾支付流程:这个支付流程是一种分布式事务的一种解决方案。异步通知,重试机制。原创 2019-01-25 11:00:01 · 667 阅读 · 0 评论 -
Java架构学习(五十)PC端与第三方登录授权&分布式系统web端控制&使用fegin调用会员服务实现注册&fegin调用登录接口&QQ授权登录流程&OAuth2.0&会员服务提供联合登录接口&关联
一、分布式系统web端控制系统概述:现在已经完成了:1、会员服务2、消息服务平台3、注册中心4、web系统分布式微服务电商项目:SOA就是面向服务开发,提供接口给前端来调用。SOA层就是把传统的项目中的控制层抽取出来,暴露接口给其他平台来进行调用。前端给了两个页面,分别为登录页面和注册页面1、使用ajax调用接口服务,在js里面去控制2、使用java web项目,用r...原创 2019-01-10 14:54:10 · 785 阅读 · 2 评论 -
Java架构学习(四十九)会员登录与注册项目回顾&发送邮件功能实现&移动APP端token登录实现
一、项目回顾会员注册流程会员注册的时候,通过MQ异步推送邮件有什么好处?答:因为通过传统的http来进行同步来推送,是非常耗费时间的,有时候也会因为网络问题而影响了注册的流程。这个时候我们只需要通过MQ进行缓存消息,然后异步推送消息,就可以保证消息的一致性。公司消息服务平台主要是处理什么业务的?答:消息服务平台主要处理公司内部消息请求,比如发送邮件、发送短信、微信发送。...原创 2018-12-23 17:22:17 · 817 阅读 · 0 评论 -
Java架构学习(四十七)微服务电商项目&环境搭建&系统架构&ResponseBase封装&Redis封装&使用AOP日志统一管理
一、技术回顾 1、多线程、线程安全、多线程通讯、java并发包、线程池、 线程池配置多少合适、信号量、锁机制。 2、javase核心只是:反射机制、自定义注解。 3、网络通讯核心:socket、tcp与udp、nio、aio、bio、粘包 netty通讯。 4、jvm核心:垃圾回收算法、新生代和老年代、并行回收、 串行回收、实战调优。5、javaweb核心:dns解析过程、防止重...原创 2018-12-17 14:53:55 · 1301 阅读 · 0 评论 -
Java架构学习(四十六)Dubbo高级&Dubbo-Admin管理平台的搭建&Dubbo使用Admin实现负载均衡&Dubbox的介绍&Dubbo面试题
一、Dubbo-Admin管理平台Dubbo admin作用: 服务治理、日志管理、服务降级、负载均衡、路由策略 权限 Dubbo权重。服务治理:就是管理集群的地址、监控、容错机制、负载均衡、统计。DubboAdmin管理平台搭建使用Dubbo admin管理平台必须要在tomcat8.0以上版本才能启动的起来在WEB-INF里面配置dubbo.properties里面配置...原创 2018-12-07 16:32:00 · 608 阅读 · 0 评论 -
Java架构学习(四十八)会员服务平台搭建&分布式数据库划分&整合数据库访问&会员注册接口&消息服务平台概念&搭建消息服务平台&
一、在分布式中数据库的划分分布式开发中,一个团队一个数据库,一个项目一个数据库。会员系统、订单系统、支付系统....系统与服务的区别:会员服务提供会员接口(SOA)没有页面的。会员系统:包含护院系统,会员后台管理系统。数据库根据系统拆分:垂直分割和水平拆分水平分割:基于同一个系统,将一张表,拆分n多个子表。垂直分割:根据系统划分数据库。所以在分布式领域中:分布式事务问题、...原创 2018-12-20 11:31:05 · 308 阅读 · 0 评论 -
Java架构学习(四十五)Dubbo基础&网站演变过程&SOA和微服务技术总结&微服务架构模式&Dubbo架构原理&Dubbo解决的问题&Dubbo创建项目架构&Dubbo发布服务&Dubbo消费服务
一、网站演变过程什么时候使用到Dubbo框架?答:只有在RPC远程调用的时候才会使用到dubbo框架。网站架构演变过程:单点项目/单点系统架构:MVC这种模式单点系统中,缺点:如果有几百个程序员开发同一个项目,会产生代码冲突的问题。适合小团队开发。互联网公司的特征:人比较多、高并发、高可用、开发人员比较多。敏捷开发:就是把项目拆分很细。分布式开发:将一个项目,拆分成多...原创 2018-12-06 13:46:36 · 259 阅读 · 2 评论 -
Java架构学习(三十)redis高级&redis高可用&主从复制&读写分离&集群&哨兵机制&持久化RDB存储&持久化AOF存储&事务机制&Redis发布订阅
redis高级原创 2018-09-12 13:35:47 · 461 阅读 · 0 评论 -
Java架构学习(二十八)SpringBoot高级&整合多数据源&分布式事务jta+Automikos&整合Log4j&全局AOP&定时任务&异步调用&读取配置参数&多环境配置&yml打包发布
SpringBoot高级一、@SpringBootApplication用法@SpringBootApplication作用:启动项目,整合常用注解,扫包作用。扫包只能在当前同级包下。整合了这三个注解:@Configuration@EnableAutoConfiguration@ComponentScan二、SpringBoot整合多数据源SpringBoot整...原创 2018-09-03 18:00:36 · 2024 阅读 · 1 评论 -
Java架构学习(二十七)SpringBoot概述&创建SpringBoot项目&写第一个接口&SpringBoot启动方式(两种)&访问静态资源&全局捕获异常&整合页面&整合JPA&Mybaties
SpringBoot基础一、SpringBoot概述Springboot主要核心点: 1、敏捷开发(整合框架) ,弊端:封装太死,但是高版本基本没有这 个弊端了。 2、无需tomcat(java应用程序运行的,实际是一个jar包) 内置Tomcat 3、减少xml配置(没有xml),以配置文件.properties文件配置。 4、S...原创 2018-08-24 16:09:16 · 344 阅读 · 0 评论 -
Java架构学习(十二)java内存结构&新生代&老年代&JVM参数调优&堆内存参数配置&解决堆栈溢出
JVM参数调优与垃圾回收机制一、java内存结构Java内存模型:是多线程里面的,jmm与线程可见性有关Java内存结构:是JVM虚拟机存储空间。Java内存结构图Java内存机构分为:方法区、java堆、栈、本地方法栈。方法区(永久区):就是使用static关键字修饰的基本就是存放在方法区内。 一般来说都是存放常量信息,在类加载的时候就会被初始化。 ...原创 2018-07-31 16:01:32 · 1570 阅读 · 0 评论 -
Java架构学习(十一)netty5实现的服务器端代码&客户端代码&TCP 粘包与拆包处理方案
Netty高级原创 2018-07-31 13:26:52 · 1488 阅读 · 1 评论 -
Java架构学习(八)Socket&TCP&UDP
Socket网络通讯基础怎么区分客户端与服务器端?谁发起的请求,谁就为客户端,谁接受请求谁为服务端。一、Socket入门Socket就是为网络服务提供的一种机制通讯的两端都有Socket网络通讯其实就是Socket间通讯IO传输。二、网络模型应用层:传输层:网络层:链路层:任何计算机语言通讯,底层都使用socket技术。Socket计数遵循一个规...原创 2018-07-27 15:35:41 · 294 阅读 · 0 评论 -
Java架构学习(十)NIO同步阻塞IO&NIO同步非阻塞&Netty入门&Netty实现客户端&netty实现服务端 基于netty3的案例
NIO高级编程与Netty入门一、NIO同步阻塞IO&NIO非阻塞IOIO(BIO)与NIO的区别:其本质就是阻塞IO和非阻塞IO的区别。我们所用的IO都是同步阻塞式IO也叫BIO阻塞:应用在获取网络数据的时候,如果网络传输速率很慢,就会一直等待直到 传输完成为止。非阻塞:应用程序可以直接获取已经准备好的数据。无需等待。IO:为同步阻塞NIO:为同步非阻塞...原创 2018-07-30 17:56:41 · 971 阅读 · 0 评论 -
Java架构学习(七)注解&自定义注解&设计模式
自定义注解与Java设计模式一、注解什么是注解? 以后开发中,为了简化代码推荐使用大量注解,简化代码。提高开发效率。注解分类: 自定义注解 内置注解:jdk自带的注解自定义注解:使用@interface自定义注解案例package com.leeue.annotation;import java.lang.annotation...原创 2018-07-27 11:07:26 · 552 阅读 · 0 评论 -
Java架构学习(九)NIO编程&直接缓冲区&非直接缓冲区&Buffer&make()&rest()&通道Channel&字符集Charset
NIO编程基础一、什么是NIO编程? jdk1.4之后在IO的基础上进行改进的。 NIO中有一个非阻塞IO,面向缓冲区的,NIO效率高。 IO是阻塞IO:面向流的 程序读取文件InputStream,类似水管一样传输。NIO图示:IO图示:NIO和IO区别:二、直接缓冲区与 非直接缓冲区缓冲区分为两种:直...原创 2018-07-30 14:04:57 · 250 阅读 · 0 评论 -
Java架构学习(六)jason&fastjson解析&xml使用&dom4j解析&java反射机制&手写SpringIOC框架
数据交换格式&反射机制&SpringIOC原理分析一、什么是数据交换格式客户端常用的数据交换格式有xml、json、html二、JSON数据交换格式json:是一种轻量级数据交换格式xml:是一种重量级的数据交换格式,标记语言json与xml区别:1、json占用宽带小、xml占用宽带大2、微服务是http+json进行通讯。3、json轻量级...原创 2018-07-26 10:19:16 · 2836 阅读 · 0 评论 -
Java架构学习(五)线程池&
一、线程池1、什么是线程池?答: 经常创建、启动销毁一个线程都是非常消耗时间的。 使用线程池进行管理和复用线程,提高程序效率。面试答:Java线程池能带来的3个好处: 1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 3、提高线程的可管理性。线程是稀缺资源,如果无限制...原创 2018-07-26 10:19:01 · 365 阅读 · 0 评论 -
Java架构学习(四)Vector与ArrayList区别&HashTable与HashMap源码分析&ConcurrentHashMap(分段)&CountDownLatch(类似计数的)&Cycl
1、同步容器类1、VectorList实现类中包含Vector和ArrayList,都是通过数组实现的。Vector:是线程安全的,因为方法都加了锁的,sychroinzed。因此他访问的时候耗费的时间更多,效率低。 Vector内部实现原理 add方法 ArrayList实现原理 2、HashTableHashMap是线程不安全...原创 2018-07-23 16:41:18 · 259 阅读 · 0 评论 -
Java架构学习(三)多线程之间的通讯:wait¬ify&JDK1.5里面的Lock锁&停止线程&ThreaLocal使用
1、什么是多线程之间的通讯?多个线程对同一个资源(共享资源),每个线程对共享资源做的动作不同。操作不同。多线程通讯的生产者与消费者。消息中间件。如图2、wait的作用?notify作用?wait的作用: 是让当前线程从运行状态变为休眠状态,释放锁资源notify: 是让当前线程从休眠状态变为运行状态。唤醒线程。注意:wait和notify只有在同步的时候...原创 2018-07-02 16:03:26 · 356 阅读 · 0 评论 -
Java架构学习(一)多线程快速入门
第一节 进程与线程的区别什么是进程?:进程就是正在运行的程序,他是线程的集合。什么是线程?: 线程就是一条执行路径,一个独立的执行单元。什么是多线程?:多线程就是提高程序的效率。注意:多线程并不是提高带宽速度,而是提高程序的效率,如:多线程下载断点续传。具体如图: 第二节 : 为什么要用多线程 多线程就是提高程序的效率,所以要使用多线程...原创 2018-06-05 16:40:00 · 412 阅读 · 0 评论 -
Java架构学习(二十二)mysql主从复制概念&读写分离概念&mysql集群搭建&读写分离实现使用中间件mycat实现&mybatis入门&sql注入防御
MySQL读写分离&Mybatis基础知识SQL注入一、什么是MySQL高可用主从复制。主(master)核心数据访问,负责读和写备(slave)主挂了,主服务器的备胎。mysql服务器集群。一主一备、一主多备、多主多备。备机一般只能有读的权限。主机有读写权限。读写分离会产生数据同步问题。mysql 做集群二、mysql主从复制mysql主从...原创 2018-08-09 18:02:25 · 753 阅读 · 0 评论