随笔分类 - 编程语言-[Java]
摘要:比如我们要在Spring Boot中引入Web MVC的支持时,我们通常会引入这个模块spring-boot-starter-web,而这个模块如果解压包出来会发现里面什么都没有,只定义了一些POM依赖。 经过研究,Starter主要用来简化依赖用的。比如我们之前做MVC时要引入日志组件,那么需要去
阅读全文
摘要:继上一篇http://www.cnblogs.com/EasonJim/p/7613595.html介绍了断路器之后,其实它还提供了一个管理页面来监控这些应用的调用数据。 首先,我是基于上一个例子ZooKeeper实现的服务注册与发现:http://www.cnblogs.com/EasonJim/
阅读全文
摘要:Ribbon是什么? Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Rib
阅读全文
摘要:前提: 先安装好ZooKeeper的环境,搭建参考:http://www.cnblogs.com/EasonJim/p/7482961.html 说明: 可以再简单的理解为有两方协作,一个是服务提供这,另一个是服务消费者。 搭建实例: 说明:基于Maven的模块工程 父工程POM: 服务提供者POM
阅读全文
摘要:雪崩效应 在微服务架构中通常会有多个服务层调用,大量的微服务通过网络进行通信,从而支撑起整个系统。各个微服务之间也难免存在大量的依赖关系。然而任何服务都不是100%可用的,网络往往也是脆弱的,所以难免有些请求会失败。基础服务的故障导致级联故障,进而造成了整个系统的不可用,这种现象被称为服务雪崩效应。
阅读全文
摘要:在生产环境中,需要实时或定期监控服务的可用性。Spring Boot的actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。 集成: 如果使用HTTP调用的方式,还需要这个依赖: 配置: application.yml中指定监控的HTTP端口(如果不指
阅读全文
摘要:场景: 在Ubuntu下已经启动了Eclipse,然后通过终端设置了环境变量(export $ENV=123),然后通过System.getenv()获取时显示为空。 解释: 环境变量仅在进程树下方,并且只有在进程启动时。Eclipse是您的Shell的子进程 - 因此,当您启动Eclipse时,它
阅读全文
摘要:系统环境变量(System Environment Variable): 在Linux下使用export $ENV=123指定的值。获取的方式如下: 系统属性(System Properties): 通过java -jar test.jar -Denv=123启动时指定的值,获取方式如下: 启动参数
阅读全文
摘要:热部署是什么 大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件将被虚拟机的ClassLoader加载。 而热部署正是利用了这个特点,它监
阅读全文
摘要:说明:Redis有自身的客户端连接软件,也可以使用Telnet进行连接操作。 来自W3School的Redis教程,基本上涵盖了从安装到状态监控的教程。 W3School:https://www.gitbook.com/book/wizardforcel/w3school-redis/details
阅读全文
摘要:AND type = #{type}
阅读全文
摘要:在Spring中实现字符串清除的方法有很多,原生方法String自带trim()方法,或者使用StringUtils提供的trim...方法。 通常可以将上面的方式封装成自定义注解的形式去实现来节省更多的业务代码。 Trimmed.java: TrimmedAnnotationFormatterFa
阅读全文
摘要:说明:在Spring MVC和Spring Boot中都能正常使用。 首先,我实现了一个自定义的注解,@Trimmed去除字符串String的前后空格。 如果是在Spring MVC的XML配置中,可以这样写: 但是,如果是基于注解类型去配置以上的配置时,我们通常会有以下的几种形式去配置,应该是第一
阅读全文
摘要:Unable to install breakpoint in... Eclipse Unable to install breakpoint in 的问题还是没解决 1、重装eclipse无效 2、到Window->Preferences->Java->Compiler下面,把Add line n
阅读全文
摘要:说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序。且一个项目上要么yml或者properties,二选一的存在。 Bootstrap.yml(bootstrap.properties)在application.yml(applic
阅读全文
摘要:多年来,Java开发人员依赖于属性文件或xml文件来指定应用程序配置。在企业应用程序中,人们可以为每个环境(如开发,分段和生产)创建单独的文件,以定义相应环境的属性。但是,通过Spring引导,我们可以选择在单个“yml”文件中配置所有配置文件。 什么是YAML? YAML是JSON的超集,因此这是
阅读全文
摘要:Memcached的集群方案有很多,不止magent一个,但是单靠集群软件去实现高可用感觉还是会缺少一步,最推荐的方案应该是软件加编码去实现高可用,至少能保证站点的99.5%的可运行行,以下是集群的方案收集: randy_shandong: memcached演练(1) 搭建memcached服务
阅读全文
摘要:@Autowired注入Spring Bean,则当前类必须也是Spring Bean才能调用它,不能用new xxx()来获得对象,这种方式获得的对象无法调用@Autowired注入的Bean。 1、类1,加入Spring Pool 2、类2,@Autowired类1,并且也加入Spring Po
阅读全文
摘要:说明:其实经过研究,在最新版本的Spring Boot中默认使用的是logback进行日志输出,其余的都没有引入。但是网上的教程说只要按照下面的文件列表引入对应的配置文件就会进行输出,这个没有实践过,我测试的版本为1.5.7,估计可能会存在版本问题,比如旧版本是这样实现的,但是新版本就没有了。 Sp
阅读全文
摘要:错误如下: 错误现象: 1、 服务调用了一次后第二次调用就变成了500 2、或者调用的服务直接出现500。错误同样是出现以上信息。 问题排查: 1、排查Spring Cloud的版本问题:Camden.SR7,与这个无关。 2、排查Feign的接口写法问题,也与这个无关。 3、排查引入的包少了,真的
阅读全文