Lovnx

木秀于林,风必摧之;堆高于岸,流必湍之;行高于众,人必非之。

使用Nacos实现Spring Cloud Zuul的动态路由

一.前言 Nacos是阿里巴巴开源的致力于服务发现与管理、动态配置管理,以及动态DNS服务的中间件,目前已发布至0.5.0版本,除了与Spring Cloud更加紧密结合以外,还丧心病狂地支持JDK11。如果您目前的项目碍于Eureka的性能,而又缺乏成本引进Consul,那么Nacos是您最好的...

2018-11-29 00:50:21

阅读数:785

评论数:1

《重新定义Spring Cloud实战》

---- Spring Cloud中国社区(http://springcloud.cn)是国内首个基于Spring Cloud微服务体系创建的非盈利技术社区。自2016年创建以来,在北京,上海,深圳,成都等地举办了多次技术沙龙,提供技术交流平台,帮助数万开发者快速学习Spring Cloud并用于...

2018-09-17 23:20:52

阅读数:3318

评论数:4

Zuul中整合Swagger2,实现对源服务API测试

前言 我们知道,Swagger2整合到项目中,可以非常方便地进行接口测试,是前后端对接效率提高。现在,我们可以在Zuul中整合Swagger2,通过Zuul配置文件配置的映射路径,来生成源服务接口的测试Dashboard。 github项目源码地址 1、Zuul Server工程 pom....

2018-06-06 10:21:27

阅读数:1587

评论数:2

为什么Netflix的API网关Zuul要升级为异步非阻塞架构?

Netflix宣布了通用API网关Zuul的架构转型。Zuul原本采用同步阻塞架构,转型后叫作Zuul2,采用异步非阻塞架构。Zuul2和Zuul1在架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。Zuul1依赖多线程来支持吞吐量的增长,而Zuul 2使用的Netty框...

2018-05-25 10:41:51

阅读数:1018

评论数:0

基于Lua的Spring Cloud网关高可用通用Ngnix插件

项目github地址:点击跳转 场景痛点 在Spring Cloud微服务架构体系中,我们往往会部署一个Zuul集群来横向扩展我们的微服务应用,集群的上层是Nginx软负载,在实际情况中,往往会遇到Zuul宕机的尴尬事情,这时候从Nginx到这台机器的请求就会全部失效。此项目针对此痛点...

2018-05-23 17:10:18

阅读数:587

评论数:0

Nginx整合Lua步骤

1、Nginx: yum install gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel wget -c https://n...

2018-05-21 18:11:42

阅读数:454

评论数:0

CPU-bound(计算密集型) 与 I/O-bound(I/O密集型)

前言在一个技术交流群里面看到有人在问,如何设置应用的线程池大小?有人回复了说,不谈并发类型(计算密集型或者IO密集型)的话,这个问题纯属瞎扯淡。下面是一些个人理解与在网上看到的比较好的解释。1、CPU-bound(计算密集型)计算密集型是说需要这个应用的运行需要充分运用CPU资源,比如说Hadoo...

2018-05-09 17:21:29

阅读数:475

评论数:0

Spring Security 4.x -> 5.x 踩坑记录

1、应用服务基路径问题这个问题应该是Spring Boot 2.0升级带来的,既然遇到了,就在这里写一写。笔者在授权服务器想设置一个统一基路径,按照Spring Boot 1.0,是这样的:server.context-path=/xxx但是升级之后并不好使,最后看官方文档发现改掉了,现在是这样的...

2018-04-15 15:39:56

阅读数:2654

评论数:1

缓存穿透、缓存击穿、缓存雪崩解决方案分析

前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 一、缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。...

2018-03-08 17:52:43

阅读数:1144

评论数:0

使用Allatori对Spring Boot项目进行代码混淆

Allatori混淆技术介绍 Allatori是一个Java 混淆器,它属于第二代混淆器,因此它能够全方位的保护你的知识产权。 Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。对于教育和非商业项目来说这个混淆器是免费的。支持war和jar文件格式,...

2018-02-27 11:31:00

阅读数:1995

评论数:4

Java 10 - 与“var类型推断机制”的第一次亲密接触

引言 官方消息,Java 10 将在2018年3月20号正式发布。(我大Java 9 瞬间成了Vista……….)据传,官方在2017年12月14号已经完成了版本开发的主线合并。 迄今为止,在官方放出了Java 10少数新特性里面,局部变量类型推断(local-variable type inf...

2018-01-18 23:41:09

阅读数:14154

评论数:8

GC调优——XX:TargetSurvivorRatio的使用

使用jmeter对服务进行压测,一个需要吞吐量的应用,2000个线程,JVM参数如下: -Xms4096m -Xmx4096m -Xss256K -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -Xmn3g -XX:+UseAda...

2017-12-27 17:41:42

阅读数:1237

评论数:0

Spring Boot 内嵌容器Undertow参数设置

配置项:# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程,不要设置过大,如果过大,启动项目会报错:打开文件数过多server.undertow.io-threads=16# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow...

2017-12-26 20:50:15

阅读数:8090

评论数:0

一个由-XX:SurvivorRatio失效引发的探索

最近死磕一个关注吞吐量的应用程序,初期参数如下:-Xms4096m -Xmx4096m -Xss256K -XX:PermSize=128m -XX:MaxPermSize=256m -Xmn3g -XX:SurvivorRatio=4 -XX:+UseParallelGC -XX...

2017-12-26 20:36:43

阅读数:1909

评论数:0

大观程序员世界

Donald Knuth — AI之父 Ken Thompson — B语言之父,Unix之父 Dennis Ritchie — C语言之父,Unix之父 Linus Torvalds — Linux之父 … 上个世纪,美利坚孕育了一大批上神级别的软件工程师。(问题一:Unix之母是个什么样的...

2017-12-02 16:48:33

阅读数:2408

评论数:0

线程条件队列ConditionObject源码解读

小记 好久没更博,窗外光芒万丈,冬日的晚晨,多么美好,就不浪费了,循着键盘上的点点星辰,开工! 啥子是条件队列?我们都知道,在万类之祖Object里面定义了几个监视器方法:wait(),notify (),notifyAll(),配合synchronized语义来控制线程的一些状态,在JD...

2017-11-26 15:13:31

阅读数:1188

评论数:0

分布式系统常用思想和技术

一、分布式系统的难点 分布式系统比起单机系统存在哪些难点呢? 1. 网络因素 由于服务和数据分布在不同的机器上,每次交互都需要跨机器运行,这带来如下几个问题: 1. 网络延迟:性能、超时 同机房的网络IO还是比较块的,但是跨机房,尤其是跨IDC,网络IO就成为不可忽视的性能瓶颈了。并且,延迟不是带...

2017-11-16 20:05:33

阅读数:572

评论数:0

每秒处理10万订单支付架构

一、库分表在redis,memcached等缓存系统盛行的互联网时代,构建一个支撑每秒十万只读的系统并不复杂,无非是通过一致性哈希扩展缓存节点,水平扩展web服务器等。支付系统要处理每秒十万笔订单,需要的是每秒数十万的数据库更新操作(insert加update),这在任何一个独立数据库上都是不可能...

2017-11-09 16:47:58

阅读数:1684

评论数:3

分布式后端接口幂等性设计思路

在微服务架构下,我们在完成一个订单流程时经常遇到下面的场景: 一个订单创建接口,第一次调用超时了,然后调用方重试了一次在订单创建时,我们需要去扣减库存,这时接口发生了超时,调用方重试了一次当这笔订单开始支付,在支付请求发出之后,在服务端发生了扣钱操作,接口响应超时了,调用方重试了一次一个订单状态更...

2017-10-30 10:48:14

阅读数:3118

评论数:0

一次线上问题排查:java.lang.OutOfmemoryError: PermGen Space

背景用基于Spring Boot(环境是java7)的系统做了一个报表导出的功能,第一次部署的时候用的默认JVM参数,但是测试人员在点击了一次导出之后,其他功能就疑似挂掉了,过了一会后才能正常使用;再点击导出,又出现这个问题,对这个问题的排查如下。jmap -heap pid查看堆内存使用情况At...

2017-10-25 16:49:28

阅读数:2289

评论数:2

提示
确定要删除当前文章?
取消 删除