- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 如何构建高可用的分布式系统
在公司做了一次高可用的分享,由于keynote的内容为大纲,特此加点注释说明,分享给大家,水平有限,欢迎拍砖~~分布式服务要素 分布式服务主要考虑如下几点:性能主要考虑指标: 响应时间,并发数,吞吐量常用的手段压缩,对传输数据进行压缩(类似合并js,压缩图片
2017-03-25 23:18:46
16584
原创 spring boot实战(第十五篇)嵌入tomcat源码分析
嵌入tomcat源码分析在启动spring boot工程时利用@SpringBootApplication注解,该注解启动@EnableAutoConfiguration自动配置,加载META-INF/spring.factories文件# Auto Configureorg.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2016-08-21 21:53:15
23405
1
原创 zipkin
zipkinzipkin为分布式链路调用监控系统,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。architecture 如图,在复杂的调用链路中假设存在一条调用链路响应缓慢,如何定位其中延迟高的服务呢?日志: 通过分析调用链路上的每个服务日志得到结果zipkin:使用zipkin的web UI可以一眼看出延迟高的服务如图所示,各业务系统在彼此调用时,将特定的跟踪消息传递至zipkin,
2016-07-31 11:18:51
74530
2
原创 consul(第二篇)consul Ops
consul Opsconsul client通过下面的命令可以创建consul clientnohup consul agent -data-dir /tmp/consul -node=liaokailin -bind=192.168.21.48 -join=120.76.145.187 &node 指定client节点名称bind client绑定的ipjoin 指定加入到的consul
2016-06-08 12:16:17
15477
原创 consul(第一篇)consul 入门
consul 入门consul是什么consul包含多个组件,从整体上看可以理解为一个服务发现、配置的工具,包含一下几个特点:服务发现(Service Discovery):客户端通过consul提供服务,其他客户端可以通过consul利用dns或者http发现依赖服务健康检查(Health Checking): consul提供任务的健康检查,可以用来操作或者监控集群的健康,也可以在服务发现时
2016-06-01 21:31:37
32955
原创 springcloud(第九篇)netflix zuul
netflix zuulintroductionzuul用来提供动态路由、监控、授权、安全、调度等等的边缘服务(edge service)ZuulFilterZuulFilter是Zuul中核心组件,通过继承该抽象类,覆写几个关键方法达到自定义调度请求的作用,这里filter不是java web中的filter,不要混淆. new ZuulFilter() {
2016-05-28 17:35:53
66164
原创 springcloud(第八篇)springcloud feign
# spring cloud feignintroductionnetflix feign是一个类似retrofit进行http调用框架,Feign makes writing java http clients easier 使得编写http client代码更加简单netflix feign直接给出一段简单的案例package com.lkl.netflix.feign;import feign
2016-05-21 13:28:01
44982
原创 springcloud(第七篇)springcloud ribbon with eureka
spring cloud ribbon with eurekaintroduction在上一篇中阐述了ribbon的基本用法,但是可以发现服务列表是通过配置得来的,实际 情况通常是由负载均衡+服务发现来实现的,通过服务发现获取服务列表,负载均衡通过rule选择要调用的服务。服务发现可以通过eureka来实现,后期会讲解利用consul做服务发现。eureka discovery serviceeu
2016-05-21 12:24:36
31099
1
原创 springcloud(第六篇)springcloud ribbon
spring cloud ribbon简介ribbon用以实现负载均衡;实现软负载均衡,核心有三点:服务发现,发现依赖服务的列表服务选择规则,在多个服务中如何选择一个有效服务服务监听,检测失效的服务,高效剔除失效服务netflix ribbon一个简单的demo配置文件:# Max number of retries on the same server (excluding the fi
2016-05-10 12:26:30
26421
原创 springcloud(第五篇)springcloud turbine
spring cloud turbine简介turbine是聚合服务器发送事件流数据的一个工具,hystrix的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过 turbine来监控集群下hystrix的metrics情况,通过eureka来发现hystrix服务。netflix turbine使用官方给定的war 放入tomcat中运行,修改turbine-web-1.0.0/WEB
2016-05-08 09:56:22
38467
5
原创 springcloud(第四篇)springcloud hystrix
spring cloud hystrix简介hystrix通过服务隔离、熔断(也可以称为断路)、降级等手段控制依赖服务的延迟与失败。netflix hystrix本篇中主要讲解对spring cloud 对hystrix的集成,至于如何单独使用hystrix可以参考我分享的pdf.spring cloud hystrix引入依赖 <!--hystrix--> <dependenc
2016-05-07 18:35:21
47096
原创 springcloud(第三篇)springcloud eureka 服务注册与发现
spring cloud eurekaeureka 用以服务发现、服务注册,比较流行的有consul简介eureka为netflix开源软件,分为三个部分:eureka服务:用以提供服务注册、发现,已一个war的形式提供 http://search.maven.org/#search%7Cga%7C1%7Ceureka-server 或者编译源码,将war拷贝进tomcat即可提供服务eure
2016-05-04 12:46:58
105903
原创 springcloud(第二篇)springcloud config 修改配置
springcloud(第二篇)springcloud config 修改配置在git端修改配置后如何让客户端生效?访问接口修改refresh post方式执行http://localhost/refresh 会刷新env中的配置restart 如果配置信息已经注入到bean中,由于bean是单例的,不会去加载修改后的配置 需要通过post方式去执行http://localhost/re
2016-05-03 20:48:55
39230
4
原创 springcloud(第一篇)springcloud config 入门
spring cloud config 入门简介Spring cloud config 分为两部门 server client config-server 配置服务端,服务管理配置信息config-client 客户端,客户端调用server端暴露接口获取配置信息config-server创建config-server首先创建config-server工程.文件结构: ├── config-se
2016-05-03 19:48:01
121212
8
原创 spring boot实战(第十四篇)整合RabbitMQ源码分析前言
前言本篇开始讲述Spring Boot如何整合RabbitMQ(实际上Spring就整合了RabbitMQ)。RabbitAdmin在上篇中遗留AmqpAdmin没有讲解,现在来看下该部分代码public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) { return new
2015-11-01 21:39:16
24013
原创 spring boot实战(第十三篇)自动配置原理分析
前言Spring Boot中引入了自动配置,让开发者利用起来更加的简便、快捷,本篇讲利用RabbitMQ的自动配置为例讲分析下Spring Boot中的自动配置原理。在上一篇末尾讲述了Spring Boot 默认情况下会为ConnectionFactory、RabbitTemplate等bean,在前面的文章中也讲到嵌入的Tomcat默认配置为8080端口这些都属于Spring Boo
2015-11-01 17:22:24
81124
3
原创 spring boot实战(第十二篇)整合RabbitMQ
前言本篇主要讲述Spring Boot与RabbitMQ的整合,内容非常简单,纯API的调用操作。 消息生产者不论是创建消息消费者或生产者都需要ConnectionFactoryConnectionFactory配置创建AmqpConfig文件AmqpConfig.java(后期的配置都在该文件中)@Configurationpublic
2015-11-01 16:44:07
115667
2
原创 spring boot实战(第十一篇)初识RabbitMQ
前言最近几篇文章将围绕消息中间件RabbitMQ展开,对于RabbitMQ基本概念这里不阐述,主要讲解RabbitMQ的基本用法、Java客户端API介绍、Spring Boot与RabbitMQ整合、Spring Boot与RabbitMQ整合源码分析。RabbitMQ安装在使用消息中间件RabbitMQ之前就是安装RabbitMQ。安装erlang:yu
2015-11-01 15:31:04
25534
原创 spring boot实战(第十篇)Spring boot Bean加载源码分析
前言前面的文章描述了Application对应Bean的创建,本篇将阐述spring boot中bean的创建过程refresh首先来看SpringApplication#run方法中refresh()方法// Refresh the context refresh(context);调用的是AbstractApplicationContext中的re
2015-10-13 23:30:30
49063
1
原创 spring boot实战(第九篇)Application创建源码分析
前言通过前面的文章了解到在spring boot的启动时,利用的是编写的Application类,使用了注解@SpringBootApplication,本篇将阐述该Bean的加载过程。@SpringBootApplicationpublic class Application { public static void main(String[] args) {
2015-10-11 15:52:02
20432
原创 spring boot实战(第八篇)上下文的创建
前言本篇主要讲解spring boot上下文的创建,为后续源码的解读打下铺垫ApplicationContext在run方法中执行 context = createApplicationContext();创建上下文 protected ConfigurableApplicationContext createApplicationContext()
2015-10-09 23:39:25
16816
2
原创 spring boot实战(第七篇)内嵌容器tomcat配置
spring boot实战(第七篇)内嵌容器tomcat配置默认容器spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / 通过需要用到的就是端口、上下文路径的修改,在spring boot中其修改方法及其简单;在资源文件中配置: server.port=9090 server.contextPath=/lkl启动spr
2015-10-07 12:30:47
76233
1
原创 spring boot实战(第六篇)加载application资源文件源码分析
前言在上一篇中了解了spring配置资源的加载过程,本篇在此基础上学习spring boot如何默认加载application.xml等文件信息的。ConfigFileApplicationListener在spring boot实战(第三篇)事件监听源码分析中可知在构造SpringApplication时加载相关的监听器,其中存在一个监听器ConfigFileAp
2015-10-03 15:25:54
28174
1
原创 spring boot实战(第五篇)配置源码解析
前言前面的文章都采用markdown编写的,但编辑图片上极其不方便,以后还是采用网页的形式。上一篇中讲述了spring boot配置文件的使用,本篇开始从源码的角度来看看配置文件。环境(Environment)学习过spring的同学都清楚,在bean中注入Enviroment实例即可调用配置资源信息,如以下代码package com.lkl.springb
2015-10-02 22:56:51
17278
原创 spring boot实战(第四篇)分散配置
spring boot实战(第四篇)分散配置前言分散配置是系统必不可少的一部分,将配置参数抽离出来为后期维护提供很大的便利。spring boot 默认支持两个格式的配置文件:.properties .yml。.properties与.yml*.properties属性文件;属于最常见的一种; *.yml是yaml格式的文件,yaml是一种非常简洁的标记语言。在*.properties中定义us
2015-09-13 23:38:29
20000
1
原创 spring boot实战(第三篇)事件监听源码分析
spring boot实战(第三篇)事件监听源码分析前言解读源码,知其然知其所以然···监听源码分析首先来看下上一篇中执行的main方法package com.u51.lkl.springboot;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.Sprin
2015-09-03 14:42:27
22482
原创 spring boot实战(第二篇)事件监听
spring boot 实战 2.事件监听前言spring boot在启动过程中增加事件监听机制,为用户功能拓展提供极大的便利。支持的事件类型四种 ApplicationStartedEvent ApplicationEnvironmentPreparedEvent ApplicationPreparedEvent ApplicationFailedEvent实现
2015-09-02 23:54:25
68878
原创 spring boot实战(第一篇)第一个案例
spring boot实战(第一篇)第一个案例前言写在前面的话一直想将spring boot相关内容写成一个系列的博客,今天终于有时间开始了第一篇文章以后有时间就会继续写下去。spring boot 博客内容规划spring boot 基本用法自动配置技术集成性能监控源码解析spring boot 功能强大,后面会细细道来。第一个案例工程的构建构建spring boot工程一般采用两
2015-08-25 23:29:28
67865
8
原创 3、Redis 集群特性之容错、数据迁移
前言:该篇中主要讲解一下redis的容错以及数据的迁移(横向拓展)redis 集群信息在前面章节中讲到将Node加入到cluster以后打印了如下日志:[root@localhost src]# ./redis-trib.rb create --replicas 1 192.168.1.103:7000 192.168.1.103:7001 192.168.1.103:70
2015-08-14 23:45:56
6268
原创 2、Redis集群的调用
前言:在上篇文章中讲到了redis集群环境的搭建,本次将讲解下redis集群的调用,对大多程序员来讲大多数操作还是调用集群环境,对于环境的搭建,后期的维护是不太关心的,不过手动构建测试环境还是很有必要的。redis-cli 调用通过redis-server 启动redis的服务,对应存在命令 redis-cli作为客户端去调用服务器。在redis单机情况下,我们都是
2015-08-13 23:24:02
2133
原创 1、Redis 集群环境的搭建
前言: redis cluster 环境的搭建集群环境的搭建首先声明一下个人的环境:mac + centos(虚拟机),环境搭建在centos上,mac作为客户端调用。redis的集群需要依赖ruby环境,首先安装 zlib 、ruby1.zlib 的安装
2015-08-13 22:08:40
2104
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人