
架构
文章平均质量分 83
JAVA@架构
这个作者很懒,什么都没留下…
展开
-
java高级架构师的自我修养;文末有进阶路线思维导图
1.架构师的定义 在互联网圈里架构师这个名号的火热程度堪比产品经理,在产品经理没火之前就已经风生水起。乔布斯是苹果的产品架构师,比尔盖茨是微软的首席架构师,马化腾也号称腾讯的首席架构师。有些人会觉得架构师很神秘,不知道整天脑袋里在想什么。 那么架构师到底是什么样的人?聚焦到IT技术领域,基本可以还原,架构师的本质就是更高级更资深的程序员,架构师的能力要求在程序员或者说工...原创 2018-12-20 17:06:01 · 2372 阅读 · 0 评论 -
MySQL高可用数据库内核深度优化的四重定制
一、UDB高可用数据库架构UDB以虚拟IP、HAProxy、单节点UDB数据库搭建双节点高可用架构:双节点的UDB数据库保证数据库数据的全量冗余,同时保证数据库的可用性; HAProxy在同一时间只连接一个UDB节点,避免多点写入带来的数据冲突问题; 双节点HAProxy保证Proxy的可用性; 虚拟IP在HAProxy发生宕机时通过IP漂移的方式对HAProxy进行切换,用户不需要...原创 2019-01-16 16:22:28 · 201 阅读 · 0 评论 -
多线程启动 停止线程
线程的概念:线程是进程独立运行的子任务。多线程是异步的。所以,Java代码启动线程的顺序不是线程的执行顺序。 通常实现线程有两种方式。1 继承Thread类 2 实现Runnable接口。下面对这两种方法进行验证。继承Thread类实现public class MyThread extends Thread{ @Override public ...原创 2019-01-22 14:17:41 · 345 阅读 · 0 评论 -
hibernate性能优化策
悲观锁与乐观锁使用乐观锁在表中加一个version的字段来解决并发性问题悲观锁:就是多个人同时想修改某个数据,乐观锁:乐观锁需要在表中加一version(版本)字段,并要在对应的类中配置 一级缓存1、一级缓存很短,和session的生命周期一致,随着session的关闭而消失 *load/get/iterate(查询实体对象)可以使用缓存数据2、一级缓存它缓存的是实体对象 ...原创 2019-01-22 16:11:53 · 151 阅读 · 0 评论 -
JavaScript:面试频繁出现的几个易错点
1.前言这段时间,金三银四,很多人面试,很多人分享面试题。在前段时间,我也临时担任面试官,为了大概了解面试者的水平,我也写了一份题目,面试了几个前端开发者。在这段时间里面,我在学,在写设计模式的一些知识,想不到的设计模式的这些知识,就是面试题里面,频繁让人掉坑的考点。所以,今天就总结一下,那些让人掉坑的考点。2.面向对象编程关于面向对象和面向过程,个人觉得这两者不是绝对独立的,而是相...原创 2019-01-28 16:47:51 · 192 阅读 · 0 评论 -
如何让SpringBoot执行起来
程序入口SpringApplication.run(BeautyApplication.class, args);执行此方法来加载整个SpringBoot的环境。1. 从哪儿开始?SpringApplication.java /** * Run the Spring application, creating and refreshing a new * {@...原创 2019-02-22 16:56:32 · 472 阅读 · 0 评论 -
SpringCloud服务发现注册Eureka +Ribbon + Feign教程
什么是服务注册和发现 假设有2个微服务A和B分别在端点http:// localhost:8181 /和http:// localhost:8282 /上运行,如果想要在A服务中调用B服务,那么我们需要在A服务中键入B服务的url,这个url是负载均衡器分配给我们的,包括负载平衡后的IP地址,那么很显然,B服务与这个URL硬编码耦合在一起了,如果我们使用了服务自动注册机制,就可以使用B服务...原创 2019-02-18 16:19:18 · 416 阅读 · 0 评论 -
使用Netflix Hystrix的Spring Cloud断路器
在微服务世界中,服务之间通讯时相当频繁,类似单体服务的方法调用,如果某个微服务中断或无法正常运行,则问题可能会级联到上游服务,造成连锁反应,故障爆炸。Netflix创建了Hystrix库,实现了Circuit Breaker断路器模式以解决这些问题。我们可以使用Spring Cloud Netflix Hystrix断路器来保护微服务免受级联故障的影响。 HYSTRIX断路器能够增强系统的...原创 2019-02-18 16:23:18 · 191 阅读 · 0 评论 -
Spring MVC + Hibernate + Maven: CRUD增删改查教程源码
目标:创建示例Web应用程序,基于Spring MVC HibernateMaven。用户界面接口将是基于HTML的。该应用程序将支持所有的CRUD操作:创建,读取,更新,删除。使用MySQL作为数据库项目目录结构: 准备工作:创建数据库:CREATE TABLE `teams` ( `id` int(6) NOT NULL AUTO_INCREMENT, `n...原创 2019-02-19 16:18:57 · 328 阅读 · 0 评论 -
使用Spring Data + Redis实现缓存
首先,我们给一个服务配置Cache,如下:@Service('helloService')public class HelloServiceImpl implements HelloService { /** * Using SpEL for conditional caching - only cache method executions when * th...原创 2019-02-19 16:22:49 · 373 阅读 · 0 评论 -
Spring Cloud微服务架构介绍
springcloud是什么?Spring Cloud的目标是为Spring开发人员提供一套易于使用的工具来构建分布式系统。它主要通过包装其他实现堆栈,从Netflix OSS堆栈开始。然后,这些堆栈将通过基于注释的配置,Java配置和基于模板的编程的熟悉工具进行消耗。我们来看几个Spring Cloud的组件。Spring Cloud配置服务器Spring Cloud Config ...原创 2019-02-19 16:30:33 · 196 阅读 · 0 评论 -
MySQL 统计信息以及执行计划预估方式初探
数据库中的统计信息在不同(精确)程度上描述了表中数据的分布情况,执行计划通过统计信息获取符合查询条件的数据大小(行数),来指导执行计划的生成。在以Oracle和SQLServer为代表的商业数据库,和以开源的PostgreSQL为代表的数据库中,直方图是统计信息的一个重要组成部分。在生成执行计划的时候,通过统计信息以及统计信息的直方图来预估符合条件的数据行数,从而影响执行计划的生成。统...原创 2019-01-16 15:56:28 · 379 阅读 · 0 评论 -
Spring Cloud-微服务架构集大成者
本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义。1 背景2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像抢红包、双十一这样的活动不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思想已经不能满足互联网高并发、大流量的性能要求。系统架构走向分布...原创 2019-01-21 15:57:06 · 239 阅读 · 0 评论 -
Spring Boot中Jackson ObjectMapper应用详解
Spring Boot支持与三种JSON mapping库集成:Gson、Jackson和JSON-B。Jackson是首选和默认的。Jackson是spring-boot-starter-json的一部分,spring-boot-starter-web中包含spring-boot-starter-json。也就是说,当项目中引入spring-boot-starter-web后会自动引入spr...原创 2019-01-25 16:19:25 · 5418 阅读 · 0 评论 -
要进阶Java架构师你必看的——15本书
1、大型网站技术架构:核心原理与案例分析本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监控等在内的大型网站开发全景视图。本书作者李智慧,曾在阿里巴巴担任技术专家,参与阿里巴巴基础技术平台开发和架构设计。image.png...转载 2018-12-17 17:00:28 · 302 阅读 · 0 评论 -
Java架构师面试题全分享,你离架构师还有多远?
经常面试一些候选人,整理了下我面试使用的题目,陆陆续续整理出来的题目很多,所以每次会抽一部分来问。答案会在后面的文章中逐渐发布出来。基础题目Java线程的状态进程和线程的区别,进程间如何通讯,线程间如何通讯HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别Cookie和Session的区别索引有什么用?如何建索引?...原创 2018-12-17 17:27:04 · 129 阅读 · 0 评论 -
Spring、SpringMVC、Mybatis整合之工程的搭建
SSM框架整合之环境配置部分学习完了Spring、SpringMVC、Mybatis框架,我们就可以尝试系统将三者进行整合。整合并不复杂,我们只需要实现最基础的配置,即可轻松的掌握SSM框架是如何实际项目中使用的。基于上一篇博文:maven起步,我们应该知道了如何搭建maven项目,那么在此基础上,手把手教你搭建Spring、SpringMVC、Mybatis框架的环境。源码请 点击这里...原创 2018-12-18 17:57:11 · 180 阅读 · 0 评论 -
Spring Boot 揭秘与实战 自己实现一个简单的自动配置模块
为了更好的理解 Spring Boot 的 自动配置和工作原理,我们自己来实现一个简单的自动配置模块。假设,现在项目需要一个功能,需要自动记录项目发布者的相关信息,我们如何通过 Spring Boot 的自动配置,更好的实现功能呢?实战的开端 – Maven搭建先创建一个Maven项目,我来手动配置下 POM 文件。<project xmlns="http://maven....转载 2019-01-17 13:58:41 · 130 阅读 · 0 评论 -
RabbitMQ安装配置和基于EasyNetQ驱动的基础使用
RabbitMQ基本概念和原理1.AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。 2.RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写。 3.Channel Channel是我们与RabbitMQ打交道的最重要的一个接口,我们大部分的业务操作是在Chann...原创 2019-01-17 19:23:40 · 277 阅读 · 0 评论 -
七年开发经验教你如何正确、安全地停止 SpringBoot 应用
引言Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行、产品级别的基于Spring框架的应用,大部分Spring Boot应用只需要非常少的配置就可以快速运行起来,是一个与微服务(MicroServices)相当契合的微框架。 网络上关于Spring Boot的Q...原创 2019-01-23 19:08:54 · 209 阅读 · 0 评论 -
一篇文章概括Spring Cloud微服务教程
现在流行的是Spring Cloud基于NetFlix解决方案提供的解决方案。那么让我们来演示如何使用它。 一、 注册中心基于Spring Cloud的MicroServices的Hearth是Eureka Server。也称为Discovery Server。因为该服务器保存有关您的系统可以在其运行位置,健康状况和其他方面使用的所有微服务的信息。很明显,在生产中,这个服务器需要具有高...原创 2019-01-14 13:19:47 · 167 阅读 · 0 评论 -
Java 之 ThreadLocal 详解
1. 概念ThreadLocal 用于提供线程局部变量,在多线程环境可以保证各个线程里的变量独立于其它线程里的变量。也就是说 ThreadLocal 可以为每个线程创建一个【单独的变量副本】,相当于线程的 private static 类型变量。ThreadLocal 的作用和同步机制有些相反:同步机制是为了保证多线程环境下数据的一致性;而 ThreadLocal 是保证了多线程环境下数据...原创 2019-01-14 14:51:14 · 119 阅读 · 0 评论 -
RabbitMQ 幂等性概念及业界主流解决方案
一、什么是幂等性可以参考数据库乐观锁机制,比如执行一条更新库存的 SQL 语句,在并发场景,为了性能和数据可靠性,会在更新时加上查询时的版本,并且更新这个版本信息。可能你要对一个事情进行操作,这个操作可能会执行成百上千次,但是操作结果都是相同的,这就是幂等性。二、消费端的幂等性保障在海量订单生成的业务高峰期,生产端有可能就会重复发生了消息,这时候消费端就要实现幂等性,这就意味着我们的消...原创 2019-01-24 15:57:03 · 11545 阅读 · 3 评论 -
如何基于MySQL及Redis搭建统一的KV存储服务
摘要:本文介绍基于MySQL及Redis搭建统一的kv存储服务:常用部署方式及其特点,Cluster manager,MySQL和Redis集群方案,以及Sync数据同步服务。一、MySQL+Redis 常用部署方式1.1 拓扑 1.2 特点业务层通过双写同时写MySQL及Redis。读通常在Redis,若读取不到,则从MySQL读取,然后将数据同步到Redis,Re...原创 2019-01-15 15:07:51 · 377 阅读 · 0 评论 -
使用Spring Cloud Zuul实现过滤器或拦截器功能案例
Spring Cloud的API网关不但可以实现类似NGINX+Lua强大的路由分发,实现动静页面的分流,更重要可以实现对所有发往后端微服务请求的拦截。Zuul主要有四种类型的过滤器,我们可以为特定的url模式添加任意数量的过滤器。“pre” 预过滤器 - 在路由分发一个请求之前调用。 “post” 后过滤器 - 在路由分发一个请求后调用。 “route” 路由过滤器 - 用于路由请求分...原创 2019-02-25 16:13:32 · 5378 阅读 · 0 评论