
java
文章平均质量分 83
JAVA@架构
这个作者很懒,什么都没留下…
展开
-
使用Mesos和Marathon管理Docker集群
分布式系统分布式系统是难于理解、设计、构建 和管理的,他们将比单个机器成倍还要多的变量引入到设计中,使应用程序的根源问题更难发现。SLA(服务水平协议)是衡量停机和/或性能下降的标准,大多数现代应用程序有一个期望的弹性SLA水平,通常按"9"的数量增加(如,每月99.9或99.99%可用性)。每个额外的9变得越来越难实现。 分布式系统通常是以静态分区,比如Akka/Play、 Spark...原创 2019-02-20 15:40:19 · 200 阅读 · 0 评论 -
译文:Java 中正确使用 hashCode 和 equals 方法
在这篇文章中,我将告诉大家我对hashCode和equals方法的理解。我将讨论他们的默认实现,以及如何正确的重写他们。我也将使用Apache Commons提供的工具包做一个实现。 目录:hashCode()和equals()的用法 重写默认实现 使用Apache Commons Lang包重写hashCode()和equals() 需要注意记住的事情 当使用ORM的时候特别要注...原创 2019-01-28 17:05:12 · 131 阅读 · 0 评论 -
java面试字符串算法
一、概要本文介绍了有关字符串的算法第一部分的Java代码实现,算法目录:替换字符串中的空格 输入一个字符串,打印出该字符串的所有排列 第一个只出现一次的字符 翻转句子 计算字符串之间的最短距离 二、代码实现2.1 替换字符串中的空格问题描述实现一个函数,将字符串p中的所有空格都替换成为指定的字符串r。解决思路遍历原始的字符串p,统计原先字符串中空格的个数spa...原创 2019-01-28 16:45:02 · 1863 阅读 · 3 评论 -
Spring中Bean的生命周期是怎样的?
概述Spring的ioc容器功能非常强大,负责Spring的Bean的创建和管理等功能。而Spring 的bean是整个Spring应用中很重要的一部分,了解Spring Bean的生命周期对我们了解整个spring框架会有很大的帮助。BeanFactory和ApplicationContext是Spring两种很重要的容器,前者提供了最基本的依赖注入的支持,而后者在继承前者的基础进行了功能...原创 2019-01-28 16:30:30 · 520 阅读 · 0 评论 -
Spring Cloud是什么 ?Spring Cloud和Dubbo对比,优势在哪里?
springcloud是什么?Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来...原创 2019-01-28 16:15:36 · 484 阅读 · 0 评论 -
hibernate性能优化策
悲观锁与乐观锁使用乐观锁在表中加一个version的字段来解决并发性问题悲观锁:就是多个人同时想修改某个数据,乐观锁:乐观锁需要在表中加一version(版本)字段,并要在对应的类中配置 一级缓存1、一级缓存很短,和session的生命周期一致,随着session的关闭而消失 *load/get/iterate(查询实体对象)可以使用缓存数据2、一级缓存它缓存的是实体对象 ...原创 2019-01-22 16:11:53 · 151 阅读 · 0 评论 -
JAVA多线程之线程间的通信方式
一,介绍本总结我对于JAVA多线程中线程之间的通信方式的理解,主要以代码结合文字的方式来讨论线程间的通信,故摘抄了书中的一些示例代码。 二,线程间的通信方式①同步这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信。参考示例:public class MyObject { synchronized public void me...原创 2019-01-22 16:05:58 · 130 阅读 · 0 评论 -
多线程启动 停止线程
线程的概念:线程是进程独立运行的子任务。多线程是异步的。所以,Java代码启动线程的顺序不是线程的执行顺序。 通常实现线程有两种方式。1 继承Thread类 2 实现Runnable接口。下面对这两种方法进行验证。继承Thread类实现public class MyThread extends Thread{ @Override public ...原创 2019-01-22 14:17:41 · 345 阅读 · 0 评论 -
MySQL高可用数据库内核深度优化的四重定制
一、UDB高可用数据库架构UDB以虚拟IP、HAProxy、单节点UDB数据库搭建双节点高可用架构:双节点的UDB数据库保证数据库数据的全量冗余,同时保证数据库的可用性; HAProxy在同一时间只连接一个UDB节点,避免多点写入带来的数据冲突问题; 双节点HAProxy保证Proxy的可用性; 虚拟IP在HAProxy发生宕机时通过IP漂移的方式对HAProxy进行切换,用户不需要...原创 2019-01-16 16:22:28 · 201 阅读 · 0 评论 -
MySQL 统计信息以及执行计划预估方式初探
数据库中的统计信息在不同(精确)程度上描述了表中数据的分布情况,执行计划通过统计信息获取符合查询条件的数据大小(行数),来指导执行计划的生成。在以Oracle和SQLServer为代表的商业数据库,和以开源的PostgreSQL为代表的数据库中,直方图是统计信息的一个重要组成部分。在生成执行计划的时候,通过统计信息以及统计信息的直方图来预估符合条件的数据行数,从而影响执行计划的生成。统...原创 2019-01-16 15:56:28 · 379 阅读 · 0 评论 -
微服务ActiveMQ——知识点整理
1.1 java消息服务:不同系统之间的信息交换,是我们开发中比较常见的场景,比如系统A要把数据发送给系统B,这个问题我们应该如何去处理? 1999年,原来的SUN公司领衔提出了一种面向消息的中间件服务--JMS规范(标准);常用的几种信息交互技术(httpClient、hessian、dubbo、jms、webservice 五种).1.2JMS概述:JMS即Java消息服务(Jav...原创 2019-01-31 15:53:51 · 1116 阅读 · 0 评论 -
渣渣的CVTE、阿里、去哪儿、腾讯面经
CVTE:一面:面试的题目不太记得,只记得一两个:项目介绍Java中异常和错误的区别,说出三个遇到过的程序报异常的情况算法题,在0到n这n+1个数中取n个数,如何找到缺少的那个。hashmap的存储过程,链表使用的循环链表还是双向链表印象中问的并不难,之后立刻二面二面:和一个主管的样子聊,没有什么技术细节,问了一些分布式的问题,另外就是建议入职之前需要学习什么...原创 2019-01-16 14:05:25 · 378 阅读 · 0 评论 -
Zookeeper: 分布式过程协同技术详解
Zookeeper的使命Zookeeper主要作用为在分布式系统中协调多个任务,一个任务可以是协作或者是竞争。协作意味着多个进程需要一同处理某些事情,一些进程采取某些行动使得其他进程可以继续工作,例如在主从模式中,主节点与从节点协作,主节点分配任务给从节点;竞争是指两个进程不能同时处理工作,一个进程必须等待另一个进程,同样在主从工作模式中,通过互斥排它锁的方式保证任何时刻只有一个主。使用Z...原创 2019-01-21 17:29:40 · 2310 阅读 · 1 评论 -
Spring Cloud-微服务架构集大成者
本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义。1 背景2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像抢红包、双十一这样的活动不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思想已经不能满足互联网高并发、大流量的性能要求。系统架构走向分布...原创 2019-01-21 15:57:06 · 239 阅读 · 0 评论 -
通过Spring Boot中的手动Bean定义提高启动性能
前言使用Spring Boot时你不想使用@EnableAutoConfiguration。你应该怎么做?Spring本质上是快速且轻量级的,但是如何让Spring更快?其中一条建议是可以改善启动时间,那就是考虑手动导入Spring Boot配置,而不是自动全部配置。对所有应用程序来说,它不是正确的做法,但它可能会有所帮助,理解选项是什么肯定不会有害。在本文中,我们将探讨各种手动配置方法并...原创 2019-02-14 16:42:12 · 524 阅读 · 0 评论 -
当跳槽遇到互联网公司裁员寒潮,该如何应对?
前言:“正常人员调整和优化”,对于近期互联网行业来说,这句话出现的频率格外高。曾经站在风口上的互联网行业却遭遇寒潮,包括知乎、锤子、美团、腾讯等10余家知名互联网科技公司,相继爆出裁员降薪消息。但是冬天来了,春天还会远吗?近期互联网公司裁员寒潮来临,但该来的终究会来,正如潮起潮落!寒冬过后会是什么情况?视频寒冬过去之后的两三年,在2011年前后,土豆、优酷、乐视分别上市,行业内...原创 2019-01-23 15:37:09 · 728 阅读 · 0 评论 -
Java高级架构面试真题汇总:Nginx、 Netty、Zookeeper、Tomcat、Dubbo
(一)Nginx是什么——相关面试题Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。1、请列举Nginx的一些特性。2、解释Nginx是...原创 2019-01-29 14:06:55 · 535 阅读 · 0 评论 -
成为更好的Java开发人员的10个技巧
这些建议和技巧将帮助您提高编程和编码技能,这对于成为更好的Java开发人员至关重要。这些技巧对核心Java开发人员和Java Web开发人员同样有用。1.学习Java 8 对于Java开发人员来说,这是最重要的事情。这是一个很好的4岁,甚至Java 9在6个月前发布,人们现在正在谈论。无论如何,我知道许多程序员没有使用lambdas和Stream API等Java 8功能编写一行代码。...原创 2019-02-20 15:33:56 · 284 阅读 · 0 评论 -
使用Spring Cloud Config基于本地文件实现微服务配置管理
Spring Cloud的开发基本是以配置为主,三板斧:pom.xml、元注解和property/yaml配置,其中最后一项配置如果服务一旦启动,就无法改变了,这时如果使用Spring Cloud Config进行配置管理,就可以在运行时进行配置统一更新。 在微服务领域,我们系统中可能存在大量微服务,并且这些微服务有多个实例正在运行。手动更新配置属性或甚至使用自动脚本重新启动所有这些实...原创 2019-02-20 14:59:36 · 298 阅读 · 0 评论 -
Spring Cloud Config使用Oracle数据库作为后端配置存储
Spring cloud config可以使用git,svn,数据库 Redis或Consul作为后端库来存储配置参数,大部分默认是使用Git,但是如果在企业私有云等环境,就可能需要连接自己的SVN或数据库,这里介绍使用Oracle数据库作为后端配置库,这样,我们的运维管理软件可以写入Oracle数据库从而对整个运维配置进行修改。Spring cloud config使用数据库作为存储库时,需...原创 2019-02-20 14:56:33 · 646 阅读 · 0 评论 -
使用Spring Cloud Zuul实现过滤器或拦截器功能案例
Spring Cloud的API网关不但可以实现类似NGINX+Lua强大的路由分发,实现动静页面的分流,更重要可以实现对所有发往后端微服务请求的拦截。Zuul主要有四种类型的过滤器,我们可以为特定的url模式添加任意数量的过滤器。“pre” 预过滤器 - 在路由分发一个请求之前调用。 “post” 后过滤器 - 在路由分发一个请求后调用。 “route” 路由过滤器 - 用于路由请求分...原创 2019-02-25 16:13:32 · 5378 阅读 · 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 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 评论 -
年后面试前准备之开源框架面试题
前言:(开源框架学习思维导图) Spring5概述(面试题)Spring5 是一个重要的版本,距离SpringFramework4差不多四年。在此期间,大多数增强都是在 SpringBoot 项目中完成的。Spring 是一个开源的轻量级 Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架, 其目的是用于简化企业级应用程序开发。应用程序是由一...原创 2019-02-13 15:31:59 · 301 阅读 · 0 评论 -
使用Netflix Hystrix的Spring Cloud断路器
在微服务世界中,服务之间通讯时相当频繁,类似单体服务的方法调用,如果某个微服务中断或无法正常运行,则问题可能会级联到上游服务,造成连锁反应,故障爆炸。Netflix创建了Hystrix库,实现了Circuit Breaker断路器模式以解决这些问题。我们可以使用Spring Cloud Netflix Hystrix断路器来保护微服务免受级联故障的影响。 HYSTRIX断路器能够增强系统的...原创 2019-02-18 16:23:18 · 191 阅读 · 0 评论 -
zookeeper是什么?Zookeeper分布式环境指挥官
Zookeeper 概述ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。ZooKeeper框架最初是在“Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ...原创 2019-01-30 15:10:42 · 245 阅读 · 0 评论 -
十几年程序员生涯带给我的几点感悟
眼瞅着毕业快15年了,15年间从一个刚毕业的菜鸟,成长为技术骨干,做到架构师的职位,回头看看,当年听取亲戚的一句话,误入计算机行业,看来并没有走错,编程虽然枯燥辛苦,但是如果真的感兴趣,你就能体会到其中的乐趣,并且获得可观的回报。 1.好奇心 刘慈欣在《朝闻道》中描绘过这么一个情节:在古老的非洲大陆上,有个原始人无意中抬头仰望星空,凝视的时间稍微长了一些,超过了外星人设置的阈值...原创 2019-02-21 17:08:22 · 508 阅读 · 0 评论 -
JVM中的线程行为 -JavaWorld
前言:程化是指同时执行编程过程以提高应用程序性能的实践。虽然直接在业务应用程序中使用线程并不常见,但它们一直在Java框架中使用。例如,处理大量信息的框架(如Spring Batch)使用线程来管理数据。同时操作线程或CPU进程可提高性能,从而实现更快,更高效的程序。 找到你的第一个线程:Java的main()方法即使你从未直接使用Java线程,你也间接使用它们,因为Java的...原创 2019-02-21 15:52:48 · 412 阅读 · 0 评论 -
maven是什么?用项目来解释它
一、简单的小问题? 1.1、假如你正在Eclipse下开发两个Java项目,姑且把它们称为A、B,其中A项目中的一些功能依赖于B项目中的某些类,那么如何维系这种依赖关系的呢? 很简单,这不就是跟我们之前写程序时一样吗,需要用哪个项目中的哪些类,也就是用别人写好了的功能代码,导入jar包即可。所以这里也如此,可以将B项目打成jar包,然后在A项目的Library下导入...原创 2019-02-21 15:49:25 · 27360 阅读 · 7 评论 -
SpringMVC源码阅读:Controller中参数解析
1.前言SpringMVC是目前J2EE平台的主流Web框架本文将通过源码(基于Spring4.3.7)分析,弄清楚Controller是如何匹配我们传入的参数,并定义简单的参数解析器2.源码分析doDispatch方法943行获取了HandlerAdapter,ctrl+h打开类继承图,找到RequestMappingHandlerAdapter,RequestMappin...原创 2019-01-29 16:22:41 · 722 阅读 · 0 评论 -
Mybatis【逆向工程,缓存,代理】知识要点
Spring中Mybatis的配置方案一2.1 多数据源配置案例(1)数据源配置(2)创建sqlSessionFactory(3)配置扫描器,扫描指定路径的mapper生成数据库操作代理类(4)数据源配置(5)创建sqlSessionFactory(6)配置扫描器,扫描指定路径的mapper生成数据库操作代理类(1)(2)(3)是一组配置,(4)(5)(6)是一...原创 2019-01-23 17:02:57 · 167 阅读 · 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 评论 -
如何基于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 评论 -
在Java面试的时候,面试官会怎样问关于框架的问题?
前言经常能够看到网上看到xxx公司的面经,说明公司是有面试套路的。但不只是公司,面试官也可以有自己的面试套路,有些面试官的题可能几年都不变。(1) 历年题或面经,相信你已经知道了。(2)应届生与社招不一样。应届生偏基础知识,社招则可能问一些经验性的东西。(3)跟公司有关,跟公司的业务有关,跟你要进的那个组使用的技术有关,跟它招聘的岗位有关。可以去查一下公司现在热招职位的技术要求有哪...原创 2019-01-15 15:04:33 · 7398 阅读 · 1 评论 -
Spring Boot 揭秘与实战 自己实现一个简单的自动配置模块
为了更好的理解 Spring Boot 的 自动配置和工作原理,我们自己来实现一个简单的自动配置模块。假设,现在项目需要一个功能,需要自动记录项目发布者的相关信息,我们如何通过 Spring Boot 的自动配置,更好的实现功能呢?实战的开端 – Maven搭建先创建一个Maven项目,我来手动配置下 POM 文件。<project xmlns="http://maven....转载 2019-01-17 13:58:41 · 130 阅读 · 0 评论 -
Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!“看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然。所以,无论什么事情,仔细想一想,都没有什么大不了的。这能帮助自己在遇到挫折时稳定心态,想得更开。” – 《腾讯传》本文提纲一、为啥整合 Dubbo 实现 SOA二、运行 springboot-dubbo-server...转载 2019-01-11 15:09:19 · 112 阅读 · 0 评论 -
8年测试工程师+面试官——写给求职心切的求职者
作为一个已经有多年工程师面试经验,并在国内的大企业,小企业,国外的大企业,小企业混迹过的面试官(注意,我是技术人员,不是HR),我面过很多形形色色的求职者,也有自己的思考。这篇文章希望能帮助到正在面试中的人们。每年的校园招聘季,阅读和筛选简历都是我重要的工作之一。在一上午时间内怀着生怕错误优秀人才的心态伏案阅读了接近40份简历的我来说,在简历中看到让自己“情何以堪”的内容吐个槽,似乎也合情...转载 2019-01-10 17:30:06 · 215 阅读 · 0 评论 -
activiti任务监听器获取Spring Bean
hibernate sql server 2005 假分页hibernate3.x版本对Sql Server分页使用的Select Top方式,如果一页显示100条要查看第100页数据hibernate查询语句为Select Top 10000,先查出10000条然后再从里面取100条,解决方法为升级hibernate到4.x版本,设置hibernate.dialect=org.hiberna...原创 2019-01-10 15:13:21 · 2140 阅读 · 0 评论 -
Java 循环结构 - for, while 及 do...while
顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。Java中有三种主要的循环结构:while 循环 do…while 循环 for 循环在Java5中引入了一种主要用于数组的增强型for循环。while 循环while是最基本的循环,它的结构为:while( 布尔表达式 ) { //循环内容 }只要布尔表达式为 true,循环...原创 2019-01-10 14:12:35 · 144 阅读 · 0 评论 -
Spring、SpringMVC、Mybatis整合之工程的搭建
SSM框架整合之环境配置部分学习完了Spring、SpringMVC、Mybatis框架,我们就可以尝试系统将三者进行整合。整合并不复杂,我们只需要实现最基础的配置,即可轻松的掌握SSM框架是如何实际项目中使用的。基于上一篇博文:maven起步,我们应该知道了如何搭建maven项目,那么在此基础上,手把手教你搭建Spring、SpringMVC、Mybatis框架的环境。源码请 点击这里...原创 2018-12-18 17:57:11 · 180 阅读 · 0 评论