- 博客(39)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 4:SpringCloud Eureka高可用集群配置
概念生产环境中注册中心服务一定要集群,不能是单点,不然注册中心服务出现故障后,整个微服务系统都将不可用。微服务系统中从原则上要杜绝一切单点服务,包括注册中心,配置中心,网关服务和业务服务,要使整个系统是一个高可用的状态。其它中间件系统比如Redis,Mq,Mongodb,ElasticSearch以及DB等系统,原则上也要杜绝单点,除了分片集群外,还需要有主从集群来保证系统的高可用。eur...
2019-04-02 11:36:48
672
原创 0:SpringCloud系列文章
背景学习使用SpringCloud的过程中,踩过不少的坑,学习了不少大V的文章。想做个系列文章,总结一下,也当做是以后的参考,便于查找。架构体系核心组件有 Eureka注册中心,Config配置中心,Feign服务间调用,Gateway网关,Hystrix断路由,Ribbon负载均衡,按照各个组件,暂定文章为:1:SpringCloud Eureka服务注册及发现2:SpringCl...
2019-03-29 17:27:00
631
原创 3:SpringCloud Config配置中心的bus动态刷新
概念从上一节 [2:SpringCloud Config配置中心] 中可以看到当配置中心服务中的配置变更后,如果不重启各个客户端服务,客户端服务无法获取到变更后的配置内容。为了解决这一问题,SpringCloud提供了一个消息总线(SpringCloud Bus),它本质上是一个消息系统,目前有rabbitmq和kafka两种实现。原理1,当配置变更后,我们调用刷新接口:默认为 ht...
2019-03-29 16:09:09
3129
6
原创 2:SpringCloud Config配置中心
概念对于微服务系统来说,一个系统内可能有几十个服务,然后可能会启动上百个实例。可能其中十个服务都需要连接DB,二十个服务都需要连接Redis或者MQ。如果把DB连接url及用户名密码分写配置到各个服务的application.yml文件中,将会是一件十分枯燥和容易出错的事情,而且如果DB库更换用户名了话,需要各个服务一个一个去修改然后重启,显然是非常不合理的。在微服务系统中,把配置统一放到配...
2019-03-29 13:39:31
3450
原创 1:SpringCloud Eureka服务注册及发现
概念对于微服务来说,服务注册及发现是万物的核心。所有服务都需要与注册中心进行通信,来注册服务或者获取服务列表所有服务都需要同注册中心维持心跳,让注册中心知道各个服务的状态生产环境中注册中心服务一定要集群,不能是单点,不然风险太大。eureka server服务是对等节点,不是主从节点,集群不必非要是奇数注册中心服务eureka server搭建微服务系统的第一步就是先创建并启动一...
2019-03-29 09:30:07
281
原创 Java之类加载器
目录1. 类加载器是什么?2. 类加载器有几种?3. 类加载器的机制是什么?4. 为什么要采用双亲委派?5. 类加载的步骤?6. 怎么破坏双亲委派?1. 类加载器是什么?当我们在程序中调用一个类的方法或者new一个类的对象时,JVM必须先把.java文件编译后的.class文件加载进去才行。类加载器就是用来加载.class文件的工具。2. 类加载器有几种?启动(Bootstrap)类...
2019-02-13 17:03:57
212
原创 nginx处理静态资源的配置
修改nginx.conf文件,用于nginx处理静态资源。主要配置如下(在server配置中加入location配置即可):server { listen 80; server_name 123.57.162.75; charset utf-8; #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。 locati...
2018-05-04 10:23:42
1024
转载 互联网分层架构,为啥要前后端分离?
转自 58沈剑 架构师之路:https://mp.weixin.qq.com/s/Nhyo969WnEwyCWpr34ECcA通用业务服务化之后,系统的典型后端结构如上:web-server通过RPC接口,从通用业务服务获取数据biz-service通过RPC接口,从多个基础数据service获取数据基础数据service通过DAO,从独立db/cache获取数据db/...
2018-05-03 16:46:14
268
转载 前台与后台分离的架构实践
转自 58沈剑 架构师之路:https://mp.weixin.qq.com/s/d65cXGXp_jcEeELyDZxGVA如果你经历过创业,经历过快速迭代业务,经历过用户量不断上涨,经历过访问并发越来越大,你一定会遇到以下系统问题:用户访问页面越来越慢系统性能下降,数据库扛不住,连接数经常打满,最终数据库挂掉,重启后又快速挂掉改了一个小地方,另外一个看似不相干的地方却挂了...
2018-05-03 16:28:42
1631
转载 数据库读写分离架构,为什么我不喜欢
转自 58沈剑 架构师之路:https://mp.weixin.qq.com/s/6mov6Ke3kyAUcWygDj-uaQRD:单库数据量太大,数据库扛不住了,我要申请一个数据库从库,读写分离。 DBA:数据量多少? RD:5000w左右。 DBA:读写吞吐量呢? RD:读QPS约200,写QPS约30左右。上周在公司听到两个技术同学讨论,感觉对读写分离解决什么问题没有...
2018-05-03 16:12:57
1606
转载 一分钟了解互联网动静分离架构
转自 58沈剑 架构师之路: https://mp.weixin.qq.com/s/Kpsq8MH2TvXQEECyGrmj9A一、静态页面静态页面,是指互联网架构中,几乎不变的页面(或者变化频率很低), 例如:首页等html页面js/css等样式文件jpg/apk等资源文件、静态页面,有与之匹配的技术架构来加速,例如:CDNnginxsquid/v...
2018-05-03 15:55:42
375
转载 SpringCloud Finchley基础教程:7,eureka服务注册和服务发现时间配置
转载:https://blog.youkuaiyun.com/zhxdick/article/details/78560993背景默认的Spring Eureka服务器,服务提供者和服务调用者配置不够灵敏,总是服务提供者在停掉很久之后,服务调用者很长时间并没有感知到变化。或者是服务已经注册上去了,但是服务调用方很长时间还是调用不到,发现不了这个服务。源码解读通过对Spring ...
2018-04-23 15:12:23
4195
1
原创 SpringCloud Finchley基础教程:6,断路由监控hystrix和turbine
1. 开启hystrix dashboard的监控引入pom依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId></...
2018-04-20 15:13:34
4146
2
原创 SpringCloud Finchley基础教程:3,spring cloud gateway网关
1. 引入pom依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.cloud&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-cloud-starter-gateway&amp;lt;
2018-04-20 11:39:08
31235
7
原创 SpringCloud Finchley基础教程:2,注册中心eureka和配置中心config
1. 注册中心eureka1.1 eureka server1,引入pom依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</ar...
2018-04-19 18:48:15
7765
1
原创 SpringCloud Finchley基础教程:4,服务间调用feign
1. 引入pom依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>feign已经包含了rib...
2018-04-19 18:40:50
4146
转载 Java静态内部类
本文转载自 https://www.zhihu.com/question/28197253示例代码static class Outer { class Inner {} static class StaticInner {}}Outer outer = new Outer();Outer.Inner inner = outer.new Inner(...
2018-04-18 11:59:37
173
原创 Java常见加密算法
1.常见加密算法其实加密算法都是不分语言的,常见的加密算法分为单向加密和非对称加密:1.1 单向加密:主要用来作为签名,也可以称为签名算法,验证数据传输的过程中,是否被篡改过。无法从加密后的签名解密出原始数据,加密者自己不能。 例:客户端向服务器传输一个字符串str以及其单向加密后的签名sign,服务器接收到后,对字符串str进行同样的单向加密得到签名sign2,如果sign等于...
2018-04-18 08:56:33
676
原创 springboot2.0 druid数据源配置
1. 引入jdbc,db驱动以及druid的starter这里以oracle为例<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId></depe...
2018-04-17 16:46:12
3644
原创 springboot2.0 websocket连接和集群
1. 引入websocket的starter<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency><...
2018-04-17 11:44:03
7512
2
原创 springboot2.0 连接rabbitmq处理消息
1. 引入rabbitmq的starter<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>2. 配置ra...
2018-04-16 16:54:39
1860
原创 springboot2.0 @Async异步调用
1. App上加@EnableAsync注解@SpringCloudApplication@EnableAsyncpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}...
2018-04-16 16:02:38
1034
原创 springboot2.0 lombok使用
1. springboot 已经默认管理了lombok的版本,只需引入即可<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope>
2018-04-13 17:53:53
2907
原创 eclipse父子项目折叠
先在eclipse里新建几个有父子关系的工程,如下图 哦,看不到关系结构,再来一张 好了,这并不是我们想要的结构,通过以下两步达到我们想要的视图 1. 选择project explorer 视图 2. 选择Project presentation - Hierarchial最后看一下效果...
2018-04-13 17:24:43
3656
1
原创 springboot2.0 auto configuration自动配置
概念springboot auto configuration的本质就是自动配置spring的各种bean。然后使应用可以通过@Autowired等注入方式来直接使用bean。 比如自动配置redisTemplate,jdbcTemplate等bean。原理1. 开启@EnableAutoConfiguration注解如果写了@SpringBootApplication注...
2018-04-13 16:40:22
8284
原创 springboot2.0 actuator端点监控
1. 概念spring boot对应用提供了一系列的监控端点,可以查看应用的配置,监控信息等,非常方便。 ID Description Enabled by default (Web项目) auditevents Exposes audit events information for the current application NO bean...
2018-04-13 14:20:40
4675
原创 Vertx集群配置
vertx集群配置1. pom文件中引入vertx-hazelcast jar<dependency> <groupId>io.vertx</groupId> <artifactId>vertx-hazelcast</artifactId> <version>${vertx-versio...
2018-04-11 13:50:03
4074
原创 SpringCloud Finchley基础教程:1,整体架构
整体架构图主要组件对外网关api gateway(图中的Zuul Proxy):目前springCloud内有两种网关可选,一是netflix(一个公司)的zuul,二是springCloud自己的gateway。netflix的zuul由于不支持websocket和reactor响应式编程,以及zuul2.0的升级一直跳票,所以springCloud自己新开发了一套gatewa...
2018-04-04 12:06:31
3219
1
原创 SpringCloud Finchley基础教程:5,eureka分区的深入讲解
背景用户量比较大或者用户地理位置分布范围很广的项目,一般都会有多个机房。这个时候如果上线springCloud服务的话,我们希望一个机房内的服务优先调用同一个机房内的服务,当同一个机房的服务不可用的时候,再去调用其它机房的服务,以达到减少延时的作用。概念eureka提供了region和zone两个概念来进行分区,这两个概念均来自于亚马逊的AWS:region:可以简单理解为地...
2018-04-02 16:10:11
953
原创 LTS分布式任务框架light-task-scheduler环境搭建
背景LTS是一个很不错的分布式任务框架,不但提供了非常全面的任务功能,而且还提供了一套很强大的监控后台LTS-admin。和功能的强大相比,LTS的文档就显得令人汗颜了。我觉得这是致使LTS没有真正普及的罪魁祸首。由于我本身搭建LTS环境的时候,耗费了不少时间,为了方便想使用LTS的同学不在浪费时间,特把环境搭建这部分总结一下。本文不涉及具体的LTS知识点,环境搭建好后,可以参照文末的链接地址
2017-08-15 13:07:37
5010
1
原创 使用dropwizard对Vertx进行运行状态的监控
普通的java程序可以通过javamelody之类的监控工具来监控程序运行状态,基于vertx搭建的项目需要用vertx专用的监控工具来监控运行状态。 官网中提供了一种通过Dropwizard来监控的方法,由于官网的介绍太过于简介,下面一步步的介绍一下使用流程。1,在vertx项目的pom文件中加入Dropwizard的引用<dependency> <groupId>io.vertx</gro
2016-11-14 17:31:15
2252
原创 jmeter进行websocket压力测试
准备websocket的插件jar包jmeter默认不支持websocket连接,需要下载额外的jar包到jmeter目录的\lib\ext\目录下 下载连接:jmeter的websocket插件jar包配置jmeter1,新建线程组 2,添加websocket sampler 3,添加结果监视器 4,配置websocket sampler 我们在chrome的调试模式下可以找
2016-11-11 11:51:14
7472
1
原创 负载均衡,分布式,高可用,容错的区别
概念集群(Cluster) 集群的概念是和单台服务器相对应的,简单来说集群就是部署多台服务器协同完成一项工作。集群可以分为: 1,负载均衡(Load Balance)集群: 负责均衡服务器根据负载均衡算法(轮询,随机,哈希,权重等)来分发请求到不同的主服务器。 每个主服务器都是等价的,都可以完成相同的功能 容错(fall-over):容错是负载均衡服务器里面的一个概念。是指当一
2016-10-28 10:56:27
5194
2
原创 Vertx执行阻塞代码
Vertx执行阻塞代码前提知识Verticle类型: 1. Standard Verticles:会被eventloop线程执行,Verticle内的异步回调Handler也会被同一个eventloop线程来执行,所以所有的异步回调Handler会被顺序执行 2. Worker Verticles:会被Worker 线程池中的任意一个线程执行,同时Verticle内的异步回调Handle
2016-10-24 11:59:43
6043
2
原创 Maven的profile使用详解
一个项目常常有很多发布环境,比如说测试环境,预发布环境,正式环境等等。而不同的发布环境里面需要配置的信息是有区别的,比如说测试环境需要连接测试DB的url和用户名密码,正式环境就需要连接正式DB的url和用户名密码。如果每次部署项目都需要改pom配置文件的话,不但麻烦而且有可能会改错和漏改。 这时候就需要用到pom的profile标签了。
2016-10-09 10:25:09
8371
原创 Vertx中的verticle详解
Vertx中的verticle详解Vertx中有三类verticle1,Standard verticles:标准Verticles 1,Standard Verticle会被分派到一个event loop线程上, 2,该Standard Verticle里面注册的所有回调handler都会被这个event loop线程来调用也就是说,Standard verticle从属于一
2016-09-24 14:45:16
7841
原创 Vertx的Redis Client进行事务处理
Vertx的Redis Client中主要有两个类RedisClientRedisTransaction其中RedisTransaction是用来处理Redis缓存事务的。场景:Redis缓存中有个数据 i=100;有两个操作,都要对i进行+100的处理如果不做事务处理:操作1读Redis缓存i,得到100操作2读Redis缓存i,也得到10
2016-09-23 19:08:48
3012
Android程序目录里怎么多了个proguard.cfg
2011-03-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人